Beiträge von HoerMirAuf

    Moin.


    Man kann auch den mosquitto client mit einem "Namen" starten, falls mehrere Clients laufen sollen:



    mosquitto_sub -i <NAME> -v -t <topic> >> meinstatus.log &


    Der Vorteil ist das man den Prozess dann gezielt killen kann:


    kill -9 $(ps aux | grep '[m]osquitto_sub -i <NAME>' | awk '{print $2}')

    Moin.

    Beim ESP01 gib es ja nur GPIO0 - GPIO3


    Setz Einfach Tasmota in den EInstellungen mal auf Modul "Generic", alle GPIO auf Relais. Eben von 0 - 3.

    Dann hast Du 4 Webbutton, einfach mal klicken auf welchem das Relais hängt. Wenn das nichts bringt, dann scheint wohl ein Hardwaredefekt vorzuliegen.

    Hi.

    Daher war mein Gedanke, ob ich an dieser zusätzlichen Schaltstelle einen Shelly per Taster schalten kann, der dann aber nur per WLAN mit dem "HauptShelly" kommuniziert und den Schaltvorgang auslöst.

    Das geht.


    Mit Tasmota (z.B.mit Rules über Websend oder MQTT) und auch mit der Orginal FW (z.B. mit DDD) ganz ohne IoBroker.

    Läßt sich aber natürlich ganz einfach im IOBroker verknüpfen.

    Wieso nicht? Die App sollte doch über die mobilen Daten auf ihre Grund Daten zugreifen können usw.

    Und dann per WLAN direkt mit dem Shelly kommunizieren.

    Weil die APP vermutlich wenn es mit dem LTE Netz verbunden ist seine Daten darüber routet, bzw. andersherum.


    Mach einen Verbesserungsvorschlag an die Entwickler. Aber ich vermute das wird nicht so einfach sein innerhalb einer APP das routig auf 2erlei Gateways zu switchen.

    Hi.


    Hab's jetzt nicht ins kleinste Detail überprüft aber wenn die Rule so geht, passt doch.


    Event brauchst du, weil eine Änderung einer Varibale innerhalb einer Rule <on ... endon> während deren Laufzeit nicht berücksichtigt wird.

    Wenn also in der Variable der Wert geändert wird, kommt das erst in einer weiteren Rule <on ... endon> zum tragen.

    Bei jedem event trigger wird der aktuelle vorher veränderte Variablen Wert verwendet.

    Deshalb ist es auch nicht unwichtig in welcher Reihenfolge Rules angewendet werden.

    Moin


    Du musst zuerst Timer anlegen die als Befehl "Regel" verwenden, nicht on oder off.

    Dann wird dieser Timer wie du in deinem Beispiel aufzeigts in den Rules auch so ausgwertet.


    Steht der Timer auf "Regel" und du willst doch etwas schalten muss das dann eben mit in die Rule.

    Bsp:

    Clocktimer1 soll folgendes tun: Power1 on UND Event Timer1

    Clocktimer2 soll folgendes tun: Power1 off UND Event Timer2

    Code
    Rule1
    on clock#timer=1 do backlog power1 1; <was auch immer>; event Timer1 endon
    on clock#timer=2 do backlog power1 0; <was auch immer>; event Timer2 endon
    on event#timer1 do <dies oder das> endon
    on event#timer2 do <dies oder das> endon


    Dein Code schaut soweit i.O aus ich denke das du den Timer nicht auf Regel gestellt hast, ;)

    Moin. Welche FW Version?

    Bei mir passt das spielend in den Speicher zumal dir Rules seit geraumer Zeit kompermiert werden und deswegen weit über 1000 Zeichen fassen.


    Oder du hast es abgetippt und immer "Enter" gedrückt nach jeder Zeile.


    Zitat

    rule2 on system#boot do backlog var1 0; var2 0; var3 1 endon on SR04#distance>%var1% do backlog var4 %value%; var5 %value%; event checklimit=%value%; event senddistance endon on SR04#distance<%var2% do backlog var4 %value%; var5 %value%; event checklimit=%value%; event senddistance endon on event#checklimit>30 do var4 31 endon on event#checklimit<5 do var4 4 endon on event#senddistance do backlog scale1 %var4%, 31, 4, 0, 100; event pubdata endon on event#pubdata do backlog publish stat/Wassertank_Distance/RESULT {"Wassertank_prozent":"%var4%"}; var1 %var5%; var2 %var5%; add1 %var3%; sub2 %var3% endon

    Hi


    Code
    on system#boot do backlog var1 0; var2 0; var3 1 endon
    on SR04#distance>%var1% do event checklimit=%value%; var4 %value% ; event senddistance endon
    on SR04#distance<%var2% do event checklimit=%value%; var4 %value% ; event senddistance endon
    on event#checklimit>30 do var1 31 endon
    on event#checklimit<5 do var1 4 endon
    on event#senddistance do backlog scale1 %var1%, 31, 4, 0, 100; event pubdata endon
    on event#pubdata do backlog publish stat/Wassertank_Distance/RESULT {"Wassertank_prozent":"%var1%"}; var1 %var4%; var2 %var4%; add1 %var3%; sub2 %var3% endon

    EDIT

    Ups ... mir ist eben aufgefallen, das ich 2 backlogs vergessen habe. var1 hatte ich auch doppelt verwendet.

    Das sollte zwar nicht machen aber nicht elegant.


    Hier Überarbeitet:

    Code
    Rule1
    on system#boot do backlog var1 0; var2 0; var3 1 endon
    on SR04#distance>%var1% do backlog var4 %value%; var5 %value%; event checklimit=%value%; event senddistance endon
    on SR04#distance<%var2% do backlog var4 %value%; var5 %value%; event checklimit=%value%; event senddistance endon
    on event#checklimit>30 do var4 31 endon
    on event#checklimit<5 do var4 4 endon
    on event#senddistance do backlog scale1 %var4%, 31, 4, 0, 100; event pubdata endon
    on event#pubdata do backlog publish stat/Wassertank_Distance/RESULT {"Wassertank_prozent":"%var4%"}; var1 %var5%; var2 %var5%; add1 %var3%; sub2 %var3% endon

    Moin.


    Ach so, jetzt checke ich das. Die Polaritatsumschaltung für die Laufrichtung erfolgt vor dem Auswahlschalter.

    Das muss ja dann eine komplette 2 polige Umschaltung sein damit die Motoren umgepolt werden.


    Wenn du genug Auswahlpositionen hast dann kannst du die Gruppen für auf und ab über Dioden separat definieren.

    Nicht ganz so schön, weil bei die Gruppen UND Schaltung dann jeweils nur bei der richtigen Polarisierung arbeiten, aber besser als nix.


    Auf dem Bild schaltet z.B. Pos4 {[G1 und G2] Aufwärts} und Pos5 {[G1 und G2] Abwärts}.

    Pos4 ist nur funktional bei Auf und Pos5 nur bei Ab.


    Pos6 und Pos7 dasselbe. Nur für G1/G3



    EDIT:

    oder du ersetzt den Um - und Positionsschalter durch einen 2 poligen Positionsschalter:

    Bsp. 6 Pos / 2 pol.

    Dann kannst Du nur mit dem Auswahlschalter jede beliebige Kombi ohne Dioden verklemmen,

    Ich suche aber eigentlich (habe das nicht richtig beschrieben) einen dreistufigen Sonoff, der 1-0-2 schalten kann und denke, daß es sowas nicht gibt.

    Wie der User mafrei gesagt hat. Einen Sonoff DUAL oder Shelly 2. Haben 2 Relais mit Schließer.

    Das lässt sich dann, zumindest mit Tasmota, wie ein Wechsler einstellen (Interlock) oder eben frei zuordnen.


    Oder eben ein Wechsler Relais nachscchalten

    Hi.


    Die var1 kannst du nicht toggeln. Toggeln kann man nur etwas das 2 oder mehrere definitierte Zustände hat.

    Eine Variable kann aber alles sein. String jeder Wert ... zwischen was soll sie da toggeln?


    Versuch es mal mit %value% und immer den aktuellen switch1#state bei änderung übertragen:

    rule3 on switch1#state do var1 %value% endon on switch1#state=2 do websend [192.168.188.101] power toggle endon

    So,


    hab nochmal nachgesehen. Ohne Zeit, also ohne NTP Sync (offline) arbeiten weder Timer noch Rules.

    Tasmota ist eben nicht für den Standalone Betrieb konzipiert.


    Einen Versuch gäbe es noch:

    Code
    Rule1
    on system#boot do time 1622628000 endon
    on Power1#State=1 do backlog Power2 1; delay 10; Power1 0 endon
    on Power1#State=0 do Power2 0 endon

    Der trigger system#boot geht ja auch schon ohne Zeitsync.

    mit "timer 1622628000" sollte der NTP deaktiviert und die zeit im Epoche Format auf heute 12:00 gesetzt werden.


    Das Tasmota Teil hat zwar nie ne richtige Zeit sollte aber dann mit den Rules bzw. Pulsetime arbeiten ... in der theorie.