Über Eingang (GPIO) einen Ausgang schalten

  • Hallo Leute!

    Ich hab jetzt vieles rumprobiert und komme grad nicht weiter, vielleicht kann mir ein Profi hier kurz auf die Sprünge helfen...

    Ich möchte über einen GPIO (bei mir wäre es GPIO14 - als Button 1 deklariert) einen Ausgang schalten (bei mir GPIO4 - als Relay 1 deklariert) schalten.

    Über einen Optokoppler habe ich 3.3V auf den GPIO14 gelegt. D.h. wenn ich 24V auf den Optokoppler legen werden 3.3V auf den GPIO14 gelegt. Aber irgendwie schaltet das Ding nicht.

    Ich hab mal diese Rule probiert:

    rule1 on button1#On do power1 On; ruletimer1 60 endon on rules#timer=1 do power1 Off endon

    Mit der Rule soll bei GPIO14=High das Relay1 für 60sec geschaltet werden. Geht aber nicht.... :(

  • Leider war es das nicht! Kann es sein, dass ich über Widerstände den Eingang beschalten muß als PullDown (oder so)? Weil komischerweise messe ich 3.3V an GPIO-Eingang obwohl keine Spannung anliegt. Hmmm..... :/

  • Bei Button gibt es mehrere Spezifizierungen !

    Ohne Release und CPU vermute ich ESP8266 und 12.3. ?

    Template Button:

    ButtonX Button active low, internal pull-up resistor

    Button_nX Button active low, no internal pull-up resistor

    Button_iX Button inverted, active high with internal pull-up resistor

    Button_inX Button inverted, active high no internal pull-up resistor

    Damit kannst du sicherlich deine Optokoppleranschaltung verbessern.


  • Okay, das funzzt jetzt. Der Relais wird getriggert. Habe GPIO14 als Switch_n definiert. Leider schaltet das Relais jetzt nur solang ich den Eingang beschalte (Eingang mit 20kOhm auf Masse gepullt). Wie kann ich denn jetzt einen Timer einbinden? Der Eingang (Switch) kommt als Lichtschranke --> das Relais soll dann für 60sec eingeschaltet bleiben. Zu dem hätte ich gern noch die Astrofunktion eingebunden, d.h. das Relais soll nur arbeiten nach Sonnenuntergang.
    Ich bin Anfänger, versuche mich aber einzuarbeiten. Einiges geht schon ganz gut, bei anderen Sachen brauche ich dann doch Hilfe...

    Einmal editiert, zuletzt von Loco (12. Januar 2023 um 15:28) aus folgendem Grund: Ich habs, es geht damit: Rule1 ON Switch1#state DO Backlog Power1 On; RuleTimer1 600 ENDON ON Rules#Timer=1 DO Power1 off ENDON