SonOff Basic als eigenständige ReihenUmschaltung

  • warum kommt "websend [IP3....] " zweimal vor? Kopierfehler?

    In der Tat ein Kopierfehler. Sorry, da haben sich mehrere Flüchtigkeitsfehler eingeschlichen.

    Das kommt davon wenn man nicht mehr Korrektur liest ... und manchmal zeigt der Bowser ein merkwürdiges Verhalten beim Zeilenspung wenn ich poste.:/X/


    Code
    1. rule2 on Energy#Power<WERT do backlog Power1 0; ruletimer1 600 endon on rules#timer=1 do backlog websend [<IP2>,<user>:<password>] POWER1 1; websend [<IP3>,<user>:<password>] POWER1 0; websend [<IP4>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0 endon


    Code
    1. rule3 on power#state=0 do ruletimer2 3600 endon on rules#timer=2 do backlog websend [<IP3>,<user>:<password>] POWER1 1; websend [<IP4>,<user>:<password>] POWER1 0 endon; websend [<IP5>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0; websend [<IP2>,<user>:<password>] POWER1 0 endon

    Die Rule3 macht im Prinzip dasselbe wie die Rule 2 nur das als Trigger nicht die Energiemessung verwendet wird sondern das fehlen eines Ausschaltbefehls der ja regelmäßig von den anderen gesendet wird. Kommt der nicht innerhalb einer Stunde wird dann nicht der nächste sondern der übernächste eingeschaltet. Ob das wirklich so sinnvoll ist bin ich mir nicht ganz sicher, weil hier ja keine Energieabfrage durchgeführt wird.

    Mein Gedanke war: Schalten alle immer schön gleichmäßig der Reihe durch aber einer bekommt mal aufgrund WLAN Probleme etc. keinen Einschaltbefehl, ist die Kette ja unterbrochen und es werden keine Ein und auch keine Ausschaltbefehle an die anderen SOnoffs geschickt.

    In dem Falle würde egal bei welchem irgendwann der Timer ablaufen, er schaltet dann aber den ein der nicht als nächstes (falls der das Problem ist sondern den übernächste) und die Kette wird wieder aufgenommen. Ist der übernächste defekt, läuft bei irgendeinem anderen der Timer aus und dort wird dann der übernächste geschaltet.


    Da fällt mir ein eigentlich muss der ruletimer auch noch zurückgesetzt werden wenn der Sonoff einschaltet sonst könnte er ja während der Heizzeit ablaufen und einen anderen einund somit sich selbst ausschalten.

    Code
    1. rule3 on power#state=0 do ruletimer2 3600 endon on power#state=1 do ruletimer2 3600 endon on rules#timer=2 do backlog websend [<IP3>,<user>:<password>] POWER1 1; websend [<IP4>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0; websend [<IP2>,<user>:<password>] POWER1 0 endon


    Und die IP's müssen natürlich bei jedem Sonoff versetzt sein das er eben immer den nächsten und im Störungsfall nach einer Stunde den übernächsten schaltet.


    funktioniert bei "websend" auch "backlog" - sprich könnte ich so zu IPx mehrere Kommandos als Paket senden?

    Sicher! Das mach ich ja in den Rules hier. Ein Trigger und im do Befehl wird durch backlog meherer Befehle also Websend's an alle anderen ausgelöst. Bsp. Rule des 1.Sonoff's schaltet den 2. ein, den 3 aus, den 4 und 5 aus. (und setzt mit dem Auschaltbefhl deren Timer2 zurück)


    könnte ich auch per "websend" beim Empfänger ein "ruletimer2 5" senden/einstellen ... oder "mem1 10" ?

    oder....

    Hmmm musste eigentlich auch gehen. Aber an der Stelle steig ich dann aus. :)


    Kleiner Tipp:https://github.com/arendst/Sonoff-Tasmota/issues/4372


    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini

    2 Mal editiert, zuletzt von HoerMirAuf ()

  • rule2 on Energy#Power<WERT do backlog Power1 0; ruletimer1 600 endon

    Ach ja .... In der rule2 muss das power 0 für das eigene Relais eigentlich raus:

    Code
    1. rule2 on Energy#Power<WERT do ruletimer1 600 endon

    Weil doe Ausschaltung ja dann über den Websend des nächsten erfolgt der eingeschaltet wird. Und das passiert ja nur dann wenn schon 10 Minuten nicht mehr geheizt wurde, also auch kein Überlastung. Und dadurch hab ich einen Versatz von 10 Minuten bei dem Timer der Rule3

    oder muss deshalb, wenn schon nach den Timer:


    Code
    1. rule2 on Energy#Power<WERT do ruletimer1 600 endon on rules#timer=1 do backlog Power1 0;websend [<IP2>,<user>:<password>] POWER1 1; websend [<IP3>,<user>:<password>] POWER1 0; websend [<IP4>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0 endon

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini



  • "funktioniert bei "websend" auch "backlog" - sprich könnte ich so zu IPx mehrere Kommandos als Paket senden?"

    DAS hatte ich anders gemeint - in etwa so etwas wie: (ein Kommandoblock an <IP4> senden)

    Code
    1. websend [<IP4>,<user>:<password>] backlog POWER1 0;var1 100;ruletimer1 600;rule1 1


    und noch eine Verständnisfrage:

    bedeutet "rule2 1" dass "rule2" aktiviert wird - und im Gegenzug "rule2 0" dass sie ausgeschaltet / deaktiviert wird?


    und ...

    wie lange darf eine rule maximal werden (Anzahl der Zeichen)?

    Kann es sein, dass in "rule3" (in der Mitte nach dem "websend[<IP4>,..") ein endon zuviel drin steht ?


    hier nun mein erster Gehversuch - Soll verhindern, dass 2 Geräte gleichzeitig auf AN stehen.

    Ziel: erst mal alle Geräte ausschalten und dann - nach einer Schutzzeit von 5 sek. (ruletimer3) - <IP3> das AN-Kommando senden ....

    Code
    1. rule3 on power#state=0 do ruletimer2 3600 endon on rules#timer=2 do backlog power1 0;websend [<IP2>,<user>:<password>] POWER1 0; websend [<IP3>,<user>:<password>] POWER1 0; websend [<IP4>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0;rueltimer3 5 endon on rules#timer=3 do websend [<IP3>,<user>:<password>] POWER1 1 endon


    ich bitte um kritische Komentare - DANKE !

  • und noch eine Verständnisfrage:

    bedeutet "rule2 1" dass "rule2" aktiviert wird - und im Gegenzug "rule2 0" dass sie ausgeschaltet / deaktiviert wird?


    und ...

    wie lange darf eine rule maximal werden (Anzahl der Zeichen)?

    Kann es sein, dass in "rule3" (in der Mitte nach dem "websend[<IP4>,..") ein endon zuviel drin steht ?

    Das steht alles da, bitte in die Basics einlesen.

    Rules



    "funktioniert bei "websend" auch "backlog" - sprich könnte ich so zu IPx mehrere Kommandos als Paket senden?"

    DAS hatte ich anders gemeint - in etwa so etwas wie: (ein Kommandoblock an <IP4> senden)

    Da bin ich mir nicht sicher. Ich hab mit websend nich nicht wirklich was realisiert. (Mqtt Server) Aber ich vermute nicht.

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini

  • ... und wieder eine Frage

    kann man die automatische Koppelung des Tasters mit dem Relais unterbinden und als Trigger abfangen?


    Es wäre blöd, wenn ein Relais mit Taster AN-geschaltet würde währen ein anderes per rule schon AN ist.

    ... habe leider im Web nichts dazu gefunden ( oder falsch gesucht )

  • Sicher.

    Indem du deinen Sonoff auf Generic stellst, den GIO's zwar das Relais und die LED zuweist aber keinen GPIO als Button1.


    geht glaub ich auch über sein SezOption aber ich weiß ad hoc nicht welcher.

    Müsstest du mal im Wiki recherchieren

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini

  • so nun habe ich 2 SonOff-Basic zum "spielen" ...


    hänge aber gerade leider...

    Frage:

    wie kann ich den "Power"-Status als Trigger einsetzen ? Mir schwebt etwas wie ... vor:

    Code
    1. on <power1#status>=1 do var5 1 endon

    DIESER Befehl klappt leider nicht!


    2.Frage= kann ich den Status auch als WERT per Websend weiterleiten ...

    etwas wie:

    Code
    1. ..... websend [IP] var3 %powerStatus% ....


    habe jetzt schon ne ganze Weile im Web gesucht - es aber leider nicht gefunden...


    Danke & mfg stepfl

  • Hi, muss so lauten:


    on Power1#State=1 do ...


    und


    do WebSend [192.168.x.x] %var3% endon


    var3 vorher den Wert von powerStatus zuordnen z,B.


    on Power1#State do var3 %value% endon



    Beispiele hier: Rules oder

    https://github.com/arendst/Son…smota/wiki/Rules#examples

  • von einem der funktionierenden Gerät herunterladen(sichern) und anschließend auf ein anderes Gerät flashen?

    Ja, das funktioniert

    Backup - Sichern der Original Firmware (Sonoff, Shelly & andere ESP8266-Geräte)


    in den meisten Fällen reicht auch unter Tasmota

    'Einstellungen' --> 'Konfiguration sichern'

    und wieder einspielen (Rule wird mitgespeichert).



    Zum backlog von WebSend...

    funktioniert nur nach dem Muster:


    do backlog WebSend ... ; WebSend ... ; Websend ... endon


    also nur einzelne Befehlsfolgen im WebSend und keine Zuweisungen darin (var1 100 ... klappt nicht).

  • also nur einzelne Befehle im WebSend und keine Zuweisungen darin (var1 100 ... klappt nicht).

    DOCH - bei mir klappt das!

    In in meinem Versuchsaufbau hinterlegt ....

    Code
    1. on .... do websend [192.168.179.24] var5 10 endon

    beim <IP..24> in Var 5 den Wert 10 ....


    weitergehendes ( z.B. "add5 2" ) habe ich noch nicht ausprobiert :-)

    [Nachtrag: auch "add5 2" funktioniert!]


    Auch " ...websend [xxx] ruletimer1 10" hat geklappt.....


    Was ich noch suche, ob es einen event gibt, den ich nach einem Verändern/Speichern einer Variablen abfragen kann

    bzw. ob es für rules ein Konstrukt " on var1=7 do ..." gibt - da bin ich noch am Suchen...

  • DOCH - bei mir klappt das!

    Stimmt :thumbup: , ich hab da um die Ecke gedacht,


    und nur den Sender ohne Auswirkung betrachtet -

    auf dem Ziel aber schon, ja auch ADD etc... funktioniert.


    ob es für rules ein Konstrukt " on var1=7 do ..." gibt


    Direkte Abfragen und Vergleiche sind in Tasmota ab v6.4.1.14 möglich:

    https://github.com/arendst/Sonoff-Tasmota/wiki/Rules#trigger


    und lösen ein event aus z.B.

    on Var1#State=7 do WebSend [192.168.x.x] Power1 2 endon

  • Gut - jetzt möchte ich meine Ring-Steuerung durch VARx aufbauen... mal sehen ob DAS klappt :-)

    Ich bin neugierig. Was bringt dir das für einen Vorteil??

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini

  • Ich suche nach einer Möglichkeit die Kommunikation zwischen den SonOffs ohne (zusätzlichen) WLAN-Server zu betreiben.

    Dort, wo ich die Geräte einsetzen will darf ich das vorhandene WLAN aus Datenschutzgründen nicht nutzen.

    Und NUR um ein WLAN aufzubauen möchte ich kein Raspy einsetzen - es wäre noch ein Gerät, das Störungen verursachen könnte.


    Gibt es irgend eine Möglichkeit, den AccessPoint - der bei der ersten Anmeldung ja existiert - auch innerhalb Tasmota aktiv zu nutzen?

    Im Web gibt es ja mehrere Bescheibungen zu "ESP8266 + AccresPoint" - aber dann müsste ich mich mit noch einer weiteren Programmiertechnik auseinander setzen ... als Hobby ja etwas schönes - aber nicht um hier und jetzt (schnell) eine Lösung zu finden...


    zu "ich bin neugierig. Was bringt das für einen Vorteil??" ...

    DAMIT kann ich per Wertezuweisung verschiedene Verhalten/Aufgaben auslösen.

    z.B.
    Var1 := 0 => Schalte das Relais aus und warte /

    Var1 := 1 => schalte das Relais für xx Sekunden ein und danach schicke danach zum Nachfolger "websend [..] var1 1", danach setze var1:=0

    Var1 := 3 => Rundsignal "Alles Ausschalten"; schicke zum Nachfolger Var1=3, danach setze Var1 := 0

    Var1 := 4 => Rundsignal "restart" (z.B. wenn der Fallback-Timer auslöst => schicke zu Nachfolger "restart" und dann "do restart"


    Hier habe ich noch eine Ergänzungsfrage:

    da alle Sonoffs mit den selben Rules laufen (sollen) und sich nur die Ziel-IP von einander unterscheiden, wäre es schön wenn ich die Ziel-IP von "websend" in einer mem ablegen könnte. Ist so etwas möglich?

    VIELEN Dank für eure Geduld und Herzliche Grüße + schöne Ostern

    stepfl


    PS: wenn alles zufriedenstellend läuft werde ich die rules hier zeigen - momentan geniere ich mich noch für den Kauderwelsch...

  • Gibt es irgend eine Möglichkeit, den AccessPoint - der bei der ersten Anmeldung ja existiert - auch innerhalb Tasmota aktiv zu nutzen?

    Wenn das Tasmota Gerät keine SSID bzw. WLAN Daten hat geht es immer nur in den AP Mode.

    Als Startseite wird zwar dann immer die WLAN Config aufgerufen aber die anderen Seiten lassen sich mit:

    <IP>

    /cn [Einstellungen]

    /co [andere Einstellungen]

    /md [Module Einstellungen]

    /cs [Konsole]

    /wi [Wifi EInstellungen]

    /lg [logging]

    /dl [Backup]

    /rt [Einstellungen reset]

    /rs [EInstellungen restore]


    direkt anseuern. Ob sowas im Regulärbetrieb taugt, hab ich keine Erfahrungswerte.


    Im Web gibt es ja mehrere Bescheibungen zu "ESP8266 + AccresPoint" - aber dann müsste ich mich mit noch einer weiteren Programmiertechnik auseinander setzen ... als Hobby ja etwas schönes - aber nicht um hier und jetzt (schnell) eine Lösung zu finden...

    Hmmm ... mit welcher Programmiertechnik möchtest du dich den auseinander setzen? Vielleicht wäre DAS ja was für dich?


    Ich hab hier mal vor einiger Zeit einen MQTT Broker/Repeater (mit AP-Mode) der auf nem Sonoff flashbar ist und im AP-Mode bis zu 8 Geräte unterstüzt gepostet: MQTT Broker/Repeater für den Sonoff Basic

    Mit ein bisschen Programmierkentnissen in "C" bzw. "Ardunio" lässt sich da in der loop Funktion relativ einfach eine Logik bzw. Steuerung schreiben. Du wärst zumindest nicht mehr an die Rule-Einschränkungen gebunden, kannst mit if's usw. arbeiten ganz nach Vergnügen.


    aber nicht um hier und jetzt (schnell) eine Lösung zu finden.

    Ich fürchte mit dem was du vorhast, bist du davon sowieso weit entfernt. ^^

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini

  • vielen Dank - ein wenig Programmierkenntnisse (python / Starbasic etc.) sind ja vorhanden.
    Ich will nur nicht mich durch X verschiedene Konzepte durchwutzeln um dann festzustellen, dass es NICHT funktioniert.


    Ob die Geräte im AP-Mode (ohne Router) im AutomatikModus mit einander kommunizieren können wäre die Hauptfrage - und dann, wie ich diese Regeln in den "rule-modus" bringe. Es soll ja so sein, dass mit auflegen der Netzspannung der Ablauf ( erts (A) dann(B) dann (C) dann wieder (A) ...) automatisch startet.


    Ich werde mir also deinen Link genauer ansehen und mich dann wieder melden.
    Für mich sind wichtig:
    a) ein unabhängiges, eigenständiges WLAN in dem bis zu 4 Bausteine mit einander kommunizieren können.

    b) die an sich einfachen Regeln umsetzen zu können (siehe oben) - das wäre mit if's und gekoppelten Bedingungen deutlich einfacher.

    c) FallBacks damit auch bei Störungen/Fehlern nicht alles steht bzw. das Problem eingrenzbar wird.


    Erstmal - bis dahin - eine Gute Zeit...

  • wäre es schön wenn ich die Ziel-IP von "websend" in einer mem ablegen könnte. Ist so etwas möglich?

    IP wird bei Speicherung (als String) in Mem<x> abgeschnitten,

    bei Var<x> bleibt die IP ganz erhalten -


    ein Abrufen über WebSend [...] ist mir aber nicht gelungen.



    ... ähnliche 'Klimmzüge' hatte ich auch mal vor (kein WLAN im Keller),

    gelandet bin ich bei einem RasPi Zero (~10,- €) + alten/unbenutzten Router :)


    LG

  • .. ähnliche 'Klimmzüge' hatte ich auch mal vor (kein WLAN im Keller),

    gelandet bin ich bei einem RasPi Zero (~10,- €) + alten/unbenutzten Router :)

    Meine Rede .... sowas ohne Server zu lösen macht wesentlich mehr Aufwand mit wesentlich schlechteren Ergebnissen.

    Tasmota 6.6.0 - Arduino-IDE - 1.8.7

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro / HomeMagic / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/3xGoogle-Home-Mini