Bin jetzt bei 8.1.0 gelandet, 8.2.0 und darüber funktioniert schon leider nicht mehr.
Beiträge von Longlive
-
-
Jetzt noch einmal einen Clean Install, Flash Speicher komplett gelöscht (Speicher mit FF Bytes 1MB übersprieben), und dann die 8.3.1.6 aufgespielt.
Selbes verhalten, sobald er in die Nähe der Abschaltbedingung kommt schaltet er ein und aus.
-
Danke das du die Rule mal getestet hast, da komischerweise sie bei mir auch im standart nicht gelaufen ist habe ich jetzt von 8.3.1 auf 7.2.0 geflascht, und auf anhieb funktioniert die etwas abgeänderte rule:
Coderule1 ON DS18B20-1#temperature DO event t1=%value% ENDON ON DS18B20-2#temperature DO event t2=%value% ENDON ON event#t1<%mem3% DO var1 1 ENDON ON event#t1>=%mem3% DO var1 0 ENDON ON event#t1 DO Backlog var2 %value%; add2 3 ENDON ON event#t1 DO Backlog var3 %value%; add3 6 ENDON ON event#t2>%var3% DO Power1 %var1% ENDON ON event#t2<%var2% DO Power1 0 ENDON
auf anhieb auf dem Basic, sowie auf einen Wemos d1 Mini (lief vorher auf beiden nicht).
Auch habe ich jetzt anscheinend keine Probleme mehr mit dem speichern der rule.
Ist doch verdammt komisch das ganze.
Die 8.3.1 habe ich gefunden, war ja auch drauf, aber 8.3.1.6? wo finde ich die? dann würde ich es auch hiermit noch einmal versuchen.
Edit.
Doch die Hysterese ist von mem3 völlig unberührt, und wird auch nicht direkt zum schalten benutz, ok schon, aber erst wenn, wie schon richtig von dir angemerkt, der seltene Fall von 40° im Pool eintrifft.
-
Komisch bei mir funktioniert auch die nicht, kommt die Temperatur nahe der abschaltbedingung fängt er an zu blinken.
Welche Tasmota Version benutzt du?
Gerade dabei die eine ältere zu flashen, mal schauen ob es daran liegt.
-
Hallo, Einstein67
da musst du dich verzählt haben, es sind 499 Zeichen, und somit noch 12 frei, funktioniert aber dennoch nicht.
Ein Fehler hat sich bei meinen Gefühlt schon 1000 Versuchen eingeschlichen:
muss natürlich heißen:
Damit und mem3 40 soll verhindert werden das Pumpe über 40Grad noch läuft, ansonsten Freigabe.
Eich, du scheinst fit mit den Rules zu sein.
Ob du mir eine Komplette Lösung liefern könntest?
Ich verzweifle hierdran schon so ziemlich, es hat schon ein paar mal funktioniert, irgendwie, aber es war leider nicht reproduzierbar.
Soll:
wenn "DS18B20-2" 6 Grad mehr als "DS18B20-1" hat, Pumpe an, sind es nur noch 3 Grad mehr, wieder aus.
Sollte "DS18B20-1" 40Grad erreichen Pumpe sperren, und somit Pool nicht weiter aufheizen.
-
Ich habs nachlanger Suche selbst gefunden:
savedata 1
Danach speichert er korrekt, hatte ich wohl irgendwann mal auf 0 geändert, kein Wunder wenn ich solche Schwierigkeiten damit habe.
Und dennoch Probleme mit dem Speichern....
Das ist doch wie verhext, es hatte alles funktioniert mit der obigen Rule, dann habe ich die beiden vermeintlichen Fehler korrigiert, damit lief es allerdings nicht:
Code
Alles anzeigenrule1 ON DS18B20-1#temperature DO event t1=%value% ENDON ON DS18B20-2#temperature DO event t2=%value% ENDON ON event#t2>%mem3% DO var1 1 ENDON ON event#t2<=%mem3% DO var1 0 ENDON on event#t1 do backlog var2 %value%; var3 %value%; event a2=3; event a3=5 endon on event#a2 do add2 %value% endon on event#a3 do add3 %value% endon ON event#t2>%var2% DO Power1 %var1% ENDON ON event#t2<%var3% DO Power1 0 ENDON ON power1#state=1 Do RuleTimer1 1800 ENDON ON rules#timer=1 do Power1 off ENDON
Also wieder zurück, das dumme daran ist das das jetzt auch nicht mehr mit der vorherigen rule geht.
Wobei mir hier aufgefallen war das wenn ich es richtig gelesen habe (Pool zb. 20°) var2 23° und var3 25° entspricht.
Demnach hätte es so nicht funktionieren dürfen (Pumpe ein bei über 23°, aus bei unter 25°), und dennoch ging es.
Hatte einschalt und ausschaltbedingung, vermeintlich richtig, getauscht, danach ging es nicht mehr.
Node-Red sagt mir nix, aber würde es versuchen.
-
Super danke dir, es funktioniert nun endlich so wie es soll
Code
Alles anzeigenrule1 ON DS18B20-1#temperature DO event t1=%value% ENDON ON DS18B20-2#temperature DO event t2=%value% ENDON ON event#t2>%mem3% DO var1 1 ENDON ON event#t2<=%mem3% DO var1 0 ENDON on event#t1 do backlog var2 %value%; var3 %value%; event a2=3; event a3=5 endon on event a2 do add2 %value% endon on event a3 do add3 %value% endon ON event#t2>%var2% DO Power1 %var1% ENDON ON event#t2<%var3% DO Power1 0 ENDON ON power1#state=1 Do RuleTimer1 1800 ENDON ON rules#timer=1 do Power1 off ENDON
Ich habe zusätzlich noch einen Timer eingefügt, für den Fall das mal ein Fühler ausfällt die Pumpe nicht ständig Läuft.
Eine Kleinigkeit hätte ich aber noch, er weigert sich beharrlich neue Rules an zu nehmen, dh. wenn ich den Basic vom Strom nehme hat er oftmals die abgeänderte rule nicht gespeichert, und noch alte Daten drinnen.
Also speichere ich etliche male, mitunter lösche ich die Rule mit " Rule1 " " und schaue ob nun endlich die Rule nach Stromlos gespeichert wurde.
Das weitere ist das die Rule grundsätzlich nach Strom abklemmen neu gestartet werden muss.
Kann ich das irgendwie einstellen das nach einem neuen Booten die Rule weiterhin Läuft?
Gerne auch über den Zeitplan, scheint aber nicht zu funktionieren?
-
danke eich,
hatte mir schon gedacht das add nicht so funktioniert wie es soll.
mit dem mem3 40 definiere ich ja lediglich das wenn der Pool mal seine 40° erreicht die Pumpe gesperrt wird, hierüber möchte ich keine Schalthysterese machen, eine starre Schalthysterese kann meine bisherige steuerung bereits.
Im Beispiel soll die Pumpe starten sobald am Solarteil 6° oder mehr sind als im Pool, und stoppen sobald es nur noch 3° oder weniger sind.
wie müsste der Teil:
ON event#t1 DO Backlog var2 %value%; add2 3 ENDON
richtig aussehen damit korrekt addiert wird?
Deinen Link hatte ich schon gefunden, werde es noch einmal studieren.
-
Danke Einstein67 für deine Hilfe,
Irgendwie ist das aber unbefriedigend, sollte doch auch ohne diese Lösung funktionieren, aber lieber so als das es überhaupt nicht funktioniert.
Testweise erst einmal auf 1 Minute reduziert.
Coderule2 ON DS18B20-1#temperature DO event t1=%value% ENDON ON DS18B20-2#temperature DO event t2=%value% ENDON ON event#t1<%mem3% DO var1 1 ENDON ON event#t1>=%mem3% DO var1 0 ENDON ON event#t1 DO Backlog var2 %value%; add2 3 ENDON ON event#t1 DO Backlog var3 %value%; add3 6 ENDON ON event#t2>=%var3% DO Power1 %var1% ENDON ON event#t2<=%var2% DO Backlog Power1 0; Rule2 0 ENDON
Das habe ich jetzt mal in den Rules, er macht hierbei anscheinen ständig neustarts, zumindest fangen die Nachrichten der Konsole immer von neuen an.
Habe ich hier einen Fehler drinnen?
-
Ich möchte mit dem Basic und 2 angeschlossenen DS18B20 Fühler meine Pumpe für den Solar- Kreislauf steuern, um meinen Pool (Whirlpool) auf zu heizen.
Auf dem Basic läuft Tasmota 8.3.1
Ich habe dafür aus den Beispielen von Tasmota Solar heater control die Rule auf meine Anforderung umgestrickt.
Die Rule sieht nun so aus:
t1: Fühler im Pool
t2: Fühler im Solar Panel
mem3 40
rule1
ON DS18B20-1#temperature DO event t1=%value% ENDON
ON DS18B20-2#temperature DO event t2=%value% ENDON
ON event#t1<%mem3% DO var1 1 ENDON
ON event#t1>=%mem3% DO var1 0 ENDON
ON event#t1 DO Backlog var2 %value%; add2 3 ENDON
ON event#t1 DO Backlog var3 %value%; add3 5 ENDON
ON event#t2>%var3% DO Power1 %var1% ENDON
ON event#t2<%var2% DO Power1 0 ENDON
Sobald am Fühler t2 5 Grad mehr als an Fühler t1 herschen läuft die Pumpe, sobald es weniger als 3 Grad sind soll abgeschaltet werden, bis sich das Wasser wieder aufgeheizt hat.
Funtioniert soweit auch, das Problem ist ständiges ein und aus schalten sobald er die abschalt Bedingung erreicht, dieses hin und her geklicke kann nicht gesund sein.
Code
Alles anzeigen18:27:38 RUL: EVENT#T1 performs "Backlog var2 22.1; add2 3" 18:27:38 RUL: EVENT#T1 performs "Backlog var3 22.1; add3 5" 18:27:38 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:38 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:39 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:39 RSL: stat/tasmota_1877F0/POWER = ON 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:39 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:39 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:39 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:39 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:39 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:39 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:39 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:39 RSL: stat/tasmota_1877F0/POWER = ON 18:27:40 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"21.9"} 18:27:40 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:40 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:40 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:40 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:40 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:40 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:40 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:40 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"21.9"} 18:27:40 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:40 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:41 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:41 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:41 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:41 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:41 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:41 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"21.9"} 18:27:41 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:41 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:41 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"21.9"} 18:27:41 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.0"} 18:27:41 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:41 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"Add2":"25.000"} 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:42 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:42 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:42 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:42 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:42 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:42 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:42 RSL: stat/tasmota_1877F0/POWER = ON 18:27:42 RUL: EVENT#T2<%VAR2% performs "Power1 0" 18:27:42 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"OFF"} 18:27:42 RSL: stat/tasmota_1877F0/POWER = OFF 18:27:43 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.0"} 18:27:43 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:43 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:43 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:43 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:43 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:43 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:43 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:43 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:43 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:43 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:43 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:43 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:43 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:43 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:44 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:44 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:44 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:44 RSL: stat/tasmota_1877F0/POWER = ON 18:27:44 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.0"} 18:27:44 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:44 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:44 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.0"} 18:27:45 RSL: stat/tasmota_1877F0/RESULT = {"Add2":"25.000"} 18:27:45 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:45 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:45 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:45 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:45 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:45 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:45 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:45 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:45 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:45 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:45 RUL: EVENT#T1 performs "Backlog var2 22.1; add2 3" 18:27:45 RUL: EVENT#T1 performs "Backlog var3 22.1; add3 5" 18:27:45 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:45 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:46 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:46 RSL: stat/tasmota_1877F0/POWER = ON 18:27:46 RUL: EVENT#T2<%VAR2% performs "Power1 0" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"OFF"} 18:27:46 RSL: stat/tasmota_1877F0/POWER = OFF 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.1"} 18:27:46 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:46 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:46 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:46 RUL: EVENT#T1 performs "Backlog var2 22.1; add2 3" 18:27:46 RUL: EVENT#T1 performs "Backlog var3 22.1; add3 5" 18:27:46 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.1"} 18:27:46 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:46 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:47 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:47 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:47 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:47 RUL: EVENT#T1 performs "Backlog var2 22.1; add2 3" 18:27:47 RUL: EVENT#T1 performs "Backlog var3 22.1; add3 5" 18:27:47 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.1"} 18:27:47 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:47 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:47 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.1"} 18:27:47 RSL: stat/tasmota_1877F0/RESULT = {"Var2":"22.0"} 18:27:48 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.1" 18:27:48 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:48 RSL: stat/tasmota_1877F0/RESULT = {"Add2":"25.000"} 18:27:48 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:48 RUL: EVENT#T1<%MEM3% performs "var1 1" 18:27:48 RSL: stat/tasmota_1877F0/RESULT = {"Var1":"1"} 18:27:48 RUL: EVENT#T1 performs "Backlog var2 22.0; add2 3" 18:27:48 RUL: EVENT#T1 performs "Backlog var3 22.0; add3 5" 18:27:48 RUL: DS18B20-1#TEMPERATURE performs "backlog event t1=22.0" 18:27:48 RUL: DS18B20-2#TEMPERATURE performs "backlog event t2=23.6" 18:27:49 RSL: stat/tasmota_1877F0/RESULT = {"Event":"Done"} 18:27:49 RUL: EVENT#T2>%VAR3% performs "Power1 1" 18:27:49 RSL: stat/tasmota_1877F0/RESULT = {"POWER":"ON"} 18:27:49 RSL: stat/tasmota_1877F0/POWER = ON
Hoffe damit kann jemand was anfangen.
Gruß
Karsten