Gebe ich bei den Temperaturen zum Beispiel 22,5° ein, muss ich hier mit , oder . trennen?
Mit Punkt "."
Gebe ich bei den Temperaturen zum Beispiel 22,5° ein, muss ich hier mit , oder . trennen?
Mit Punkt "."
Ok danke
Das läuft jetzt mal soweit.
Wenn ich jetzt einen SSD1306 OLED Display anschließen will und den Status ausgeben will.
Wie muss ich jetzt den display konfigurieren?
Die rule hab ich
Displaymode 0 damit ich eigene Daten anzeigen kann
Und wieviele zeilen bzw spalten hat dieser display?
Oder wird das hier anders dargestellt?
EDIT: Habs schon hinbekommen.
Jetzt gehts noch an die Positionierung
on system#init do backlog var1 %mem1%; sub1 %mem2%; var2 %mem1%; add2 %mem2% endon
backlog var1 %mem1% in der Konsole
ergibt bei mit schon RESULT = {"Var1":"%mem1%"}
- ja das sieht mit einem event dann schon anders aus, macht es mit testen anstrengend oder gibt es dazu einen Trick ?
Moin
bei mir nicht
mem1 20
mem2 5
on system#init do backlog var1 %mem1%; sub1 %mem2% endon
EDIT:
Ach es geht um das backlog var1 %mem1% ... stimmt, da wird mem1 als String eingelesen. Kurios !!
Könntest du so umgehen:
on mem1 do var1 %value% endon
Das funktioniert wenn du einfach mem1 oder mem in der Konsole aufrufst.
Ja - es geht um das backlog var1 %mem1% ..
Phase 1 - 12:54:53.844 CMD: on mem3 do var3 %mem3% endon
Fehler ? (R. 9,5,0.9) - 12:54:53.849 RSL: RESULT = {"Command":"Unknown"}
Phase 2 - 12:54:59.608 CMD: mem
Zielausgabe: - 12:54:59.617 RSL: RESULT ={"Mem1":"","Mem2":"","Mem3":"1","Mem4":"","Mem5":"","Mem6":"","Mem7"..,"Mem16":""}
- 12:55:20.983 CMD: var
- 12:55:20.990 RSL: RESULT = {"Var1":"1","Var2":"","Var3":"0","Var4":"","Var5":"","Var6":"","Var7":"...":"","Var16":""}
Super Idee - wie erhofft von dir - aber die Übernahme in die Variable 3 erfolgt nicht
Ich geb zu, ich hab mit mem<x> bisher nur im system#init gearbeitet aber offenbar funktioniert das mit %mem<x>% nicht im Normalbetrieb
Super Idee - wie erhofft von dir - aber die Übernahme in die Variable 3 erfolgt nicht
Doch, doch, das funktioniert schon aber du musst schon, wie im obigen Beispiel, den %value% nehmen nicht %mem3%, das Problem scheint ja eben genau da zu liegen das sich der memory nicht mit %mem<x>% auslesen lässt.
rule1 on mem1 do var1 %value% endon on mem2 do var2 %value% endon on mem3 do var3 %value% endon
backlog rule1 1; mem1 5; mem2 10; mem3 15; mem
15:02:48.592 MQT: stat/FLURLICHT/RESULT = {"Mem1":"5","Mem2":"10","Mem3":"15" ..... }
15:02:48.603 RUL: MEM1 performs "var1 5"
15:02:48.610 MQT: stat/FLURLICHT/RESULT = {"Var1":"5"}
15:02:48.619 RUL: MEM2 performs "var2 10"
15:02:48.627 MQT: stat/FLURLICHT/RESULT = {"Var2":"10"}
15:02:48.636 RUL: MEM3 performs "var3 15"
15:02:48.643 MQT: stat/FLURLICHT/RESULT = {"Var3":"15"}
Ich hab tatsächlich keine Ahnung aber mir kam auch schon der Gedanke, das das ein Bug sein könnte.
Wie gesagt arbeit ich kaum mit mem<x> daher ist mir das bisher nicht aufgefallen aber ich war auch der Meinung das das mal ging mit mem<x> außerhalb vom system#init.
Aber ich hab nirgends eine Version unter 10 am laufen um das zu verifizieren .....
Ah beim Changelog von:
[9.0.0.2] - 20201025
Fixed
Rule handling of Var or Mem using text regression from v8.5.0.1 (#9540)
on Power3#state do Backlog VAR3 5; ADD3 %mem3% endon
sowas geht schon, ist aber sehr schlecht im Test, da ein Konsolentest andere Daten zurück gibt
Aber die Kommunikation hat sich für mich gelohnt - ich nehme die Idee der var; mem; - Ausgabe mit in die Aktion auf, das macht einen Test schon wesentlich besser.
Ziel ist: in Abhängigkeit vom Inhalt mem3 Aktionen vorbereiten
Rule1
on Power3#state do Backlog VAR3 5; ADD3 %mem3% endon
...
19:07:49.758 RUL: POWER3#STATE performs "Backlog VAR3 5; ADD3 1; var; mem"
19:07:49.938 RSL: RESULT = {"Var3":"5"}
19:07:50.135 RSL: RESULT = {"Add3":"6.000"}
19:07:50.278 RUL: VAR3#STATE==6 performs "Backlog Power2 1; delay 120; Power2 0; VAR3 0"
19:07:50.465 RSL: RESULT = {"Var1":"","Var2":"","Var3":"6.000","Var4":"","Var5":"","Var6":"","Var7":"","Var8":"","Var9":"","Var10":"","Var11":"",","Var16":""}
19:07:50.698 RSL: RESULT = {"Mem1":"1","Mem2":"","Mem3":"1","Mem4":"","Mem5":"","Mem6":"","Mem7":"","Mem8":"","Mem9":"","Mem10":"","Mem16":""}
Ich verstehe noch nicht ganz, was dich verwirrt oder stört. Die Konsolenausgaben erscheinen mir schlüssig.
Für etwas mehr Komfort, vor allem, was eine Editierbarkeit der Rules betrifft, sorgt bspw. der "Tasmota Device Manager".
Er ist afaik allerdings auf MQTT Kommunikation angewiesen, was einen MQTT Broker voraussetzt.
Er hat zwar eine Macke, ist aber insgesamt hilfreich.
Es geht um das backlog var1 %mem1% bei einer Konsoleneingabe, da wird mem1 als String eingelesen und nicht sein Inhalt !.
Im Rule-Ablauf läuft es wie geplant - das war im Test für mich etwas verwirrend.
Kurios !! wie "HoerMirAuf" schreibt !
Das haben wir ab und an leider bei Tasmota - mal geht es gut in der Konsoleneingabe aber nicht in der Rule und hier mal anders rum !
Bisher haben wir aber für alles Abhilfe gefunden.
Ah ja.
Ich habe es in Version 8.3.0 und in 9.5.0 getestet, sowohl Web-Konsole als auch TDM.
Stimmt, bei diesen Eingaben gibt es diesen Fehler. Aber meine vollgestopften Rules funktionieren wie gewünscht.
Ich habe das vorher nicht festgestellt, weil ich eine selbst erstellte Konsole verwendete, wo es diesen Fehler wohl nicht gab.
Ich habe vor ca. 2 Jahren sehr ausgiebig mit den Rules experimentiert, um das Rule-Verhalten zu verstehen und meine Anwendungen zu implementieren. In den Abarbeitungen/Interpretationen der Rules habe ich nie einen solchen Fehler festgestellt, solange ich diese geeignet erstellte.
Deshalb vermute ich den Fehler eher in der Konsole, also dieser Mensch-Maschinen-Schnittstelle.