ist denn die Rule2 überhaupt aktiv?
klar - dort stehen ja alle Regeln für die Änderungen der mem1...3 ...
und sonst würde es auf "mem1 30" überhaupt nicht reagieren
in den anderen Rules stehen keine Kommandos zu den memX
ist denn die Rule2 überhaupt aktiv?
klar - dort stehen ja alle Regeln für die Änderungen der mem1...3 ...
und sonst würde es auf "mem1 30" überhaupt nicht reagieren
in den anderen Rules stehen keine Kommandos zu den memX
hier mal der Ablauf....
13:04:21 CMD: mem3 50
13:04:21 RSL: stat/sonoff/RESULT = {"Mem3":"50"}
13:04:26 CMD: mem1 30
13:04:26 RSL: stat/sonoff/RESULT = {"Mem1":"30"}
13:04:26 RUL: MEM1#STATE performs "backlog websend [192.168.178.61] mem1 30; var5 30; add5 15; add5 15; mem3 0"
13:04:26 RSL: stat/sonoff/RESULT = {"WebSend":"Done"}
13:04:26 RSL: stat/sonoff/RESULT = {"Var5":"30"}
13:04:26 RSL: stat/sonoff/RESULT = {"Add5":"45.000"}
13:04:27 RSL: stat/sonoff/RESULT = {"Add5":"60.000"}
13:04:27 RSL: stat/sonoff/RESULT = {"Mem3":"0"}
13:04:35 CMD: mem3
13:04:35 RSL: stat/sonoff/RESULT = {"Mem3":"0"}
Alles anzeigen
... und DANN tut sich nichts ....
es scheint, dass die "on memX#State .." pro Systemstart nur EINMAL ausgeführt werden - egal welches memX danach verändert wird ....
also: wenn ich "mem1 xx" mehrfach aufrufe wird es genau nur einmal ausgeführt - danach tut sich nichts mehr ...
verstehe ich nicht!
... es funktioniert doch nicht vollständig - inzwischen bin ich irgendwie Fehlerblind....
Rule2
on mem1#State do backlog websend [192.168.178.61] mem1 %mem1%; var5 %mem1%; add5 %mem2%; add5 15; mem3 0 endon
on mem2#State do backlog websend [192.168.178.61] mem2 %mem2%; var5 %mem1%; add5 %mem2%; add5 15; mem3 0 endon
on mem3#State==0 do backlog rule2 0; mem3 %Var5%; rule2 1; var5 0 endon
on Var1#State<=3 do backlog websend [192.168.178.61] var1 %var1%; ruletimer3 %mem3%; ruletimer1 %mem1%; ruletimer2 15 endon
on var1#State>3 do var1 1 endon
Zur besseren Übersicht habe ich die einzelnen Anweisungsblöcke HIER in separate Zeilen geschrieben - im Orginal fehlen die "CR"
Der 1. RuleAnweisungsBlock startet ordnungsgemäß mit z.B. "mem1 30" - es kommt bei [x.x.x.61] mem1 und bei var5 und auch bei mem3 alles richtig an
der 2. RuleAnweisungsBlock verweigert sich obwohl er identisch zum 1.Block von mem1 ist - es tut sich bei z.B. "mem2 15" NIX
der 3. RuleAnweisungsBlock startet auch nicht obwohl nach dem 1. und dem 2. RuleAnweisungsBlock jeweils mem3 der Wert 0 zugewiesen wird und dort auch landet.
Komischer Weise funktioniert aber die 5. und 6. RuleAnweisungsBlöcke wieder - z.B. wenn ich "var1 5" eingebe
ICH VERSTEHE ES NICHT!
Eine Aktualisierung von was?
... des Systemdatums manuell auslösen ....
Jetzt habe ich tagelang nach dem Problem gesucht und dachte schon, dass mein SonnoffPow defekt wäre ...
ABER - ich hatte "nur" das "backlog" im Commandoblock vergessen ....
KOMISCH dass dann die Befehle falsch ankommen
Jetzt geht es
GRRRRRRRRRR ...
( die Storry vom Wald und den vielen Bäumen ...)
war die Tage unterwegs ...
"HoerMirAuf" : super - ein DICKES DANKE für deine zahlreichen Hilfestellungen!
Leider funktioniert es nicht - wo kann ich die aktuelle Systemzeit erkennen - bzw. ist die Zeit am Anfang der Logzeilen die Systemzeit?
Im "Log" sehe ich dannz.B. "00:02:00 RSL: tele/sonoff/UPTIME = {"Time":"1970-01-01T00:02:00","Uptime":"0T00:02:00"}"
Die tatsächlich Zeit wäre "2019-05-06 10:31:15" ...
Ich war zu ungeduldig - jetzt klappt es doch!
... gibt es auch ein Command, mit dem ich manuell eine Aktualisierung starten kann?
so - ich war viel anderweitg unterwegs - aber JETZT will ich mein Projekt wieder in Angriff nehmen.... ( und vielleicht auch als Version 1 abschließen)
Wie ihr schon vermutet habe - es ist ziemlich kompliziert...
Ein Problem habe ich noch:
Da das System in einem abgeschlossenen Bereich laufen wird - und das WLAN per Fritzbox zur Verfügung gestellt bekommt ...
Wie kann ich die interne Systemzeit von der Fritzbox holen?
das Kommando "ntpserver [192.168.x.x]" habe ich schon abgesetzt - aber es tut sich nichts ...
Die Fritzbox ist als interer Zeitserver konfiguriert und - soweit ich das sehen kann - funktioniert das auch...
vielen Dank
Vermutlich habt ihr Recht ..... bin noch am Basteln....
nächste Frage:
kann man in einer Rule den aktuellen Zählerstand von ruletimer1 ermitteln/auswerten?
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...
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...
JAAAAAAaaaaaaa - DAS hatte ich gesucht aber nicht gefunden ....
Die Story mit dem Wald und den Bäumen ....
Gut - jetzt möchte ich meine Ring-Steuerung durch VARx aufbauen... mal sehen ob DAS klappt
also nur einzelne Befehle im WebSend und keine Zuweisungen darin (var1 100 ... klappt nicht).
DOCH - bei mir klappt das!
In in meinem Versuchsaufbau hinterlegt ....
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...
super ! jetzt klappt die erste Version mit ZWEI SonOff-Basic...
Jetzt würde ich gerne das Ganze mit DREI Geräten ausprobieren
Frage: kann ich die Tasmota-Firmware von einem der funktionierenden Gerät herunterladen(sichern) und anschließend auf ein anderes Gerät flashen?
Gruß und Danke
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:
DIESER Befehl klappt leider nicht!
2.Frage= kann ich den Status auch als WERT per Websend weiterleiten ...
etwas wie:
habe jetzt schon ne ganze Weile im Web gesucht - es aber leider nicht gefunden...
Danke & mfg stepfl
Danke "CREATIONX", gerade hatte ich die Frage abgeschickt, da hat es dann DOCH funktioniert - warum weiß ich nicht ... RÄTSEL!
Der nächste Schritt wird dann das flashen sein - nach Möglichkeit ohne Löten - ich werde suchen...
Ich habe heute meinen ersten Sonoff basic erhalten gleich (ungeflasht - mit der StandardFirmware) ausprobiert.
... und stoße gleich auf ein Problem:
in meinem Ungestüm hatte ich die Anmeldung über mein normales WLAN durchgeführt und ein wenig damit herumgespielt.
Dann wollte ich das Ganze auf ein neu eingerichtetes Gast-WLAN umstellen und hänge nun fest.
Leider finde ich keinen Weg, die WLAN-Einstellungen zu verändern
ODER das gute Teil in seinen Auslieferungszustand zurück zu versetzen (um eine neue Einrichtung durchzuführen)
WO finde ich dazu Informationen oder hat eine(r) von euch einen Tip?
Das Suchen mit "sonoff werkreset" hat leider keine Ergebnisse gebracht...
... 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 )
"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)
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 ....
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 !
danke - da hab ich ja wieder einiges zu verinnerlichen/verstehen ... DANKE
HoerMirauf: zu deinen Beispiel-rules habe ich folgende VerständnisFragen:
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 ENDON; websend [<IP4>,<user>:<password>] POWER1 0; websend [<IP3>,<user>:<password>] POWER1 0; websend [<IP5>,<user>:<password>] POWER1 0 endof
1) warum steht nach dem ersten "websend [IP3....]...." ein endon? Ist das Absicht oder ein Kopierfehler?
2) warum kommt "websend [IP3....] " zweimal vor? Kopierfehler?
3) könnte ich auch erst alle Anderen IPx ausschalten und am Schluß das nächste Relais EIN-schalten? (Lastbegrenzung!)
4) könnte ich auch per "websend" beim Empfänger ein "ruletimer2 5" senden/einstellen ... oder "mem1 10" ?
oder....
5) funktioniert bei "websend" auch "backlog" - sprich könnte ich so zu IPx mehrere Kommandos als Paket senden?
... und in rule3 verstehe ich in der Sequenz "on rules#timer=2 do websend do backlog websend ...." nicht.
Bitte nicht falsch verstehen - ich möchte deine rules für mich nachvollziehen/ verstehen können
und für mich überlegen, wie ich das Ganze aufbauen könnte ... DANN werde ich hier sicherlich wieder fragen
HoerMirAuf - super - vielen Dank!
Ich sehe schon, DAS muß ich mir erst einmal näher ansehen, um deine Ausführungen wirklich verstehen zu können
Auf die Idee mit Python bin ich nur gekommen, weil ich beim Stöbern im Web über "Getting started with MicroPython on the ESP8266" hier gestolpert bin....
und auch "Getting MicroPython on a SonOff Smart Switch" hier - ob das funktioniert - und wie bekomme ich dann meine Wunschfunktionalität dort rein... ?!?
DAS scheint jetzt aber erst mal eine andere Baustelle zu sein ...
Ich melde mich wieder... sänks!