Beiträge von HoerMirAuf

    Ja, passt so.

    Für Rule1 wäre ONCE nicht unbedingt notwendig. Wenn Rule2 deaktiviert passiert ja nix wenn sie erneut deaktiviert wird.

    Aber solange du in Rule1 nix zusätzliches hast, das mit dem ONCE kollidiert reduziert das natürlich Trigger-Ausführungen.


    Mich wundert etwas, dass Rule2 dennoch auf State=ON steht, obwohl im Moment Watt=0, sowie Power=OFF ist.

    Hast du doch so vorgegeben:

    on Energy#Power<8 do rule2 1


    Und wenn der Power off ist bliebt das auch so weil ja die Leistung solange niemals größer-gleich 8 wird und damit die Rule1 wieder greift (ONCE !!!)

    Hi.


    ich denk mal das größere Problem ist ein sauberes EIN Signal zu erkennen gerade bei langen Leitungen.

    Deshalb würd ich es mit einem PullUp versuchen. Also VCC über den 10K an den GPIO und der Magnetschalter schaltet dann den GPIO auf GND.

    Ach ja - Im Falle von Pull-Down kann ich da eigentlich den Widerstand einfach zwischen die beiden Leitungen vom Magnetschalter klemmen,

    denn das ist doch dann wie GPIO gegen GND oder ist das Unsinn?

    So würde der 10K weder Pullup noch Pulldown Sinn machen. Du schaltest da ja den Widerstand patallel zum Magnetschater und "brückst" den somit.

    Nachdem ich da zufällig beim freundlichen Chinesen eine 4x4 Folientatstatur für unter 2€ gesehen hab, hab ich mir das Teil mal bestellt mit dem Hintergrund das mit Tasmota an den Start zu bekommen.


    Die Idee war die Tastenmatrix über Widerstände abzufragen und über den Analog Eingang auszuwerten. (Siehe Schaltbild und Foto)

    Dazu muss im Tasmota-Binarie die VCC Auswertung auskommentiert werden:


    #ifdef USE_ADC_VCC

    #undef USE_ADC_VCC


    Damit werden am GPIO17 die ADC-Input Varianten auswählbar, ich hab hier einfach "ADC input" verwendet.

    Die Tastatur mit 5V vom Wemos versorgen.


    Dann noch eine Rule die die Tastenwerte abfragt:

    Damit die Tasten nicht prellen ist eine Timeout von 3 Sekunden eingebaut bevor dieselbe Taste erneut auslöst.

    In der letzten Zeile kann man den Wert z.B. per publish übertragen. Ich lasse einfach mal die BuildIn LED (GPIO2) als Bestätigung blinken.


    Kann natürlich individualisiert werden indem das mit anhängt für jede Taste:

    on var2#state=123..ABCD do <was auch immer> endon


    oder am besten in eine extra Rule:

    Code
    rule2
    on var2#state=1 do publish cmnd/DECKENFLUTER/Power1 1 break
    on var2#state=2 do publish cmnd/DECKENFLUTER/Power1 0 break
    on var2#state=3 do publish cmnd/Pflanzenleuchte/Power1 1 break
    on var2#state=4 do publish cmnd/Pflanzenleuchte/Power1 0 break
    on var2#state=A do backlog publish cmnd/DECKENFLUTER/Power1 1; publish cmnd/Pflanzenleuchte/Power1 1 break
    on var2#state=B do backlog publish cmnd/DECKENFLUTER/Power1 0; publish cmnd/Pflanzenleuchte/Power1 0 endon


    Zugegeben, die Reaktionsgeschwindigkeit ist nicht die schnellste. Ich denk mal als echtes Codeschloss macht das wenig Sinn aber wenn man viele Tastenbefehle braucht ist das eine echte günstige Option.


    Moin.


    Wurzel3 brauchst nur wenn du beim messen auch mit einer Strangspannung von 380 bzw 400V arbeitest.

    Nachdem du aber bei allen 3 Phasen mit Leiterspannung 230V misst ist Wurzel3 (Verhältnis von 380V zu 230V) ja schon berücksichtigt.

    Moin.


    Was mich schon irritiert:

    Beim dem zweiten Modul habe ich eine Wechselschaltung:

    Wenn jemand den Taster 1 oder 2 drückt so wird immer das Relais1 eingeschaltet oder ausgeschaltet.

    Wenn jemand den Taster 1 oder 2 betätigt und damit das Licht einschaltet dann soll ein Timer mit X min. gestartet werden und das Licht wieder ausschalten.

    Wenn jemand den Taster für mehr als 5 Sec hält dann bleibt das Licht immer an bis jemand wieder den Taster betätigt.

    Du hast eine Wechselschaltung.

    Mit Schaltern !! Sprichst aber von Tastern?

    Was ist den nun vorhanden? Taster oder Schalter? Bei ner Wechselschaltung geh ich von Schaltern aus. Wie willst Du damit eine 5 Sek. Tastfunktion realisieren?


    EDIT:

    Mit "button#state" funktioniert vermutlich deshalb nicht weil dein GPIO vermutlich auch als Switch (schalter) deklariert ist und nicht als Button (taster).

    Im Prinzip müsstest du auf ne Tasterschaltung umbauen, was von der Verdrahtung her kein Problem wäre.

    Moin.


    andere Timer stören nicht. Es werden nur die in den Rule verwendet die auch auf "Regel" stehen und in den Rule auch ausgewertet werden.

    Du hättest testhalbe ja auch mal andere Zeiten einstellen können, ;) ansonsten erst ab heute 09:00h,

    Hi.


    In den Einstellungen -> Zeitplan Einstellungen zwei Timer konfigurieren und die Zeitpläne auch aktivieren.

    Timer1 09:00 (ein) auf Regel stellen

    Timer2 21:00 (aus) auf Regel stellen


    In der Konsole folgendes Copy & Paste eingeben:

    Code
    rule1
    on clock#timer=1 do backlog rule2 1; power1 1; ruletimer1 600 endon
    on clock#timer=2 do backlog rule2 0; power1 0; ruletimer0 0 endon
    Code
    rule2
    on rules#timer=1 do backlog power1 0; ruletimer2 3600 endon
    on rules#timer=2 do backlog power1 1; ruletimer1 600 endon

    rule1 1

    Und, muss man beide I2C Devices am gleichen GPIO-Paar verwenden?

    Hab ich noch nie getestet aber ich denk mal du kannst auch meherere GPIO als I2C konfigurieren. Ob sich da gleiche Adressen stören wäre interessant zu testen.

    Also SDA von beiden Devices an den GIPO, welcher auf "IC2 SDA" eingestellt ist, analog für SDL.
    Korrekt, oder muss noch mehr beachtet werden bei der Verkabelung?
    (Aber das hat ja nicht funktioniert)

    Mehr muss nicht beachtet werden bei der Verkabelung. Nur die beiden Bus-Adern SDA und SDL unbd natürlich braucht der Sensor die passende Spannungsversorgung!


    Was natürlich am wichtigsten ist:

    Du brauchst ein Binary bei dem Deine Sensoren-Treiber auch mit einkomopiliert sind. Die Sensor.bin z.B oder eben eine slebst kompilierte.

    Hi ...


    eine ähnlich Frage gabs neulich erst im "Füllstand Öltank messen" - Thread:

    Hi.


    So wie Du das gezeichnet hast darfst du das auf KEINEN FALL machen ! Denn die derzeitge Ausschaltposition des Wechselschalters würde keine Kurzschluss zwischen Phase und Neutraleiter erzeugen.


    Leider geht das mit dem Schalter so nicht, denn in der Wechselschalter bestromt in einer Schaltposition IMMER die Kontrolleuchte, egal wie der Schaltausgang des Shelly's ist.


    EDIT:

    zu eich Vorschlag:

    Das würde gehen, dazu darf die Glimmelampe keinen Kontakt mehr zu dem Anschluß oben rechts haben !!!


    Hi.


    Ruletimer werden nur in den Rule verwendet und hab nix mit den Timer zu tun die man im WebIF einstellen kann, falls Du das meinst:

    RuleTimer<x>Up to eight timers to be used as countdown event (x = 1..8) 
    0..65535 = set countdown rule timer in seconds
    RuleTimer0 0 = stops and clear all timer simultaneously


    Wenn der ein Ruletimer abläuft wird je nach Ruletimer der Trigger rule#timer=<1...8> getriggert:

    Ruletimer1 ergibt den Trigger rules#timer=1

    Ruletimer2 ergint den Trigger rules#timer=2

    usw.

    siehe: https://tasmota.github.io/docs/Commands/#rules


    Das was der Event macht könnte auch mit in die Befehlskette von AM2301#Humidity mit reinschreiben aber ich hab das um Zeichen zu sparen in den Event ausgelagert.

    Wird in unserer Rule2 ein Trigger: AM2301#Humidity ausgeführt werde zum einen die LED angesteuert und der Event event x ausgeführt, der Zum einen die Rule2 deaktiviert um nicht dauernd Mess-Loops zu erzeugen und zum anderen wird der Ruletimer1 gestarten mit dem Zeitwert der in var1 hinterlegt ist. Ist dann der Ruletimer erneut abgelauf, wird Rule2 aktiviert, in Rule2 der Trigger: AM2301#Humidity ausgeführt und zum einen die LED angesteuert und der Event event x ausgeführt. "Event x" deaktiviert dann wieder Rule2 und startet den Ruletimer für den nächsten Mess-Loop nach Ablauf des Timers usw. usw.


    Du kannst ja mal zum spielen var1 auf 1 setzen ... das funktioniert schon auch, nur wirst zu sehen wie die dauernden Mess-Loops die die Konsole und auch den MQTT (falls aktiviert) mit Ereignissmeldungen zumüllt. ;)