Sollte hiermit machbar sein oder?
AdcParam 6, 0, 1023, 0, 3200
auf deine Werte halt anpassen.
Sollte hiermit machbar sein oder?
AdcParam 6, 0, 1023, 0, 3200
auf deine Werte halt anpassen.
hast du hier eine Idee?
Das wäre klasse wenn er sich melden würde
EDIT:
wenn Script einfacher wäre? dann muss ich halt die Firmware neu bauen, sollte aber kein Problem sein!
Hi,
hab an meinen Rollläden die Sonoff t1 touch Schalter.
Dies hab ich jetzt mit dem LD2410 erweitert um in den Räumen Presence zu erkennen.
Funktioniert soweit bekomme Distanz Werte. In dem Beispiel 0 also keiner da.
10:20:32.230 MQT: tele/RolladenKueche/STATE = {"Time":"2024-12-13T10:20:32","Uptime":"4T20:22:04","UptimeSec":418924,"Heap":28,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":13,"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"Privat","BSSId":"74:AC:B9:21:DC:4B","Channel":6,"Mode":"11n","RSSI":54,"Signal":-73,"LinkCount":3,"Downtime":"0T00:00:07"}}
10:20:32.236 MQT: tele/RolladenKueche/SENSOR = {"Time":"2024-12-13T10:20:32","LD2410":{"Distance":[0.0,0.0,0.0],"Energy":[0,0]},"Shutter1":{"Position":100,"Direction":0,"Target":100,"Tilt":0}}
Ist es möglich eine Rule zu machen die bei einem Abstand z.b. 200cm ein Datenpunkt (virtuell, MQTT) "Präsenz True" sendet ?
Grüße und danke schon mal
gibt es wo eine Scriptsammlung die man auf seine bedürfnisse anpassen kann?
hier mal meins mit fehlern!
Gas tagesverbrauch bekomme ich einfach nicht hin.
>D
s1="Tagesverbrauch: {m}<b><span style="
v2=0
v3=0
hr=0
md=0
yr=0
;Strom
p:sm=0
sd=0
p:sma=0
smn=0
p:sya=0
syn=0
sspr=0.35
yspr=0
ysgp=172.92
y€=0
;Gas
p:gm=0
p:gv=0
gt=0
gd=0
sgf=0.9507
sgz=11.279
sgk=0
>T
v2=SML#DJ_TPWRIN
v3=GAS#Total_In
>B
->sensor53 r
>S
;Tagesverbrauch_Strom und GAS
hr=hours
if chg[hr]>0
and hr==0
and v2>0 {
sm=v2
gv=gt
gm=v3
svars
}
if upsecs%tper==0 {
sd=v2-sm
gd=v3*sgf*sgz-gm
gt=sgk-gd
}
;Monatsverbrauch
md=day
if chg[md]>0
and md==1
and v2>0
then
sma=v2
svars
endif
if upsecs%tper==0{
smn=v2-sma
}
;Jahresverbrauch
yr=year
if chg[yr]>0
and hr==0
and md==1
and v2>0
then
sya=v2
svars
endif
if upsecs%tper==0{
syn=v2-sya
;Kosten
yspr=syn*sspr+ysgp
;Gas in KWh
sgk=v3*sgf*sgz
}
>J
,"Verbrauch Tag":"%sd%"
,"Verbrauch_Monat":"%smn%"
,"Verbrauch_Jahr":"%syn%"
,"Zählerstand_0:00Uhr":"%3sm%"
,"Zählerstand_Monatsanfang":"%3sma%"
,"Zählerstand_Jahrenanfang":"%3sya%"
,"Kosten_dieses_Jahr":"%2yspr%"
,"Gas_in_KWh":"%2sgk%"
,"Gas_Zählerstand_0:00Uhr":"%2gd%"
,"Gas_tagesverbrauch":"%2gt%"
>W
==============
Strom:
Tagesverbrauch: {m} %3sd% KWh
Monatsverbrauch: {m} %3smn% KWh
Jahresverbrauch: {m} %3syn% KWh
==============
Gas:
Tagesverbrauch: {m} %2gt% KWh
==============
Strom Preis/kWh: {m} %4sspr% €
Strom Grundpreis: {m} %2ysgp% €
Gas Faktor: {m} %4sgf%
Gas Zustandszahl {m} %3sgz%
--------------
Strom kosten lfd. Jahr:{m} %2yspr% €
==============
Strom Zählerstände:
aktuell: {m} %3v2% KWh
0:00 Uhr: {m} %3sm% KWh
Monatsanfang: {m} %3sma% KWh
Jahresanfang: {m} %3sya% KWh
==============
Gas Zählerstand:
Aktuell in KWh: {m} %2sgk% KWh
0:00 Uhr: {m} %2gd% KWh
>M 2
+1,3,s,16,9600,SML
+2,4,c,1,50,GAS
1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,4
1,77070100100700ff@1,Akt. Verbrauch,W,DJ_TPWRCURR,0
//1,77070100240700ff@1,Verbrauch L1,W,DJ_TPWRCURR1,0
//1,77070100380700ff@1,Verbrauch L2,W,DJ_TPWRCURR2,0
//1,770701004C0700ff@1,Verbrauch L3,W,DJ_TPWRCURR3,0
//1,77070100000009ff@#,Service ID,,Meter_id,0
2,1-0:1.8.0*255(@100,Zählerstand,m³,Total_In,2
#
vielen Dank dafür.
kleinen Fehler habe ich entdeckt
User Parameter für den Online Compiler:
fehlt in der ersten zeile eine #.
ifdef USE_I2C
durch
#ifdef USE_I2C
ersetzen.
grüße
Super, vielen Dank. Werde ich demnächst testen.
Habe das mal nachgebaut in ein selbst gedrucktes Gehäuse von Thingiverse. Soweit funktioniert alles, habe dort noch ein am312 Bewegungsmelder verbaut. Um die Messung und die Led´s ausschalten und wieder einschalten zu können.
Da ist auch schon meine Frage!
Kann man in die Rule einbauen, dass die Messung und der Led Ring nach z.b. 300sek aus gehen und sobald der Bewegungsmelder Bewegung registriert die Messung und Led wieder für 300 sek an gehen!?!
und erst die minimal.bin.gz und dann die de.bin.gz?
verwende mal die gezippte firmware, tasmota-DE.bin.gz
ahhh.. super
habe jetzt mal etwas rumgespielt!
Rule2
on clock#timer=2 do backlog power1 0; rule3 1 endon
on clock#timer=4 do backlog power1 0; rule3 1 endon
rule3
ON DS18B20-1#temperature DO event t2=%value% ENDON
ON DS18B20-2#temperature DO event t1=%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
on clock#timer=1 do backlog power1 1; rule3 0 endon
on clock#timer=3 do backlog power1 1; rule3 0 endon
Alles anzeigen
so funktioniert es mal nach meinen paar Tests, kann man die Rules so machen?
Benötige ich "event Timer1 endon" und dann "on event#timer1 do blabla endon" überhaupt, was macht das für ein Unterschied?
Vielen Vielen Dank für deine Hilfe
Vielen
Hallo,
habe diese Rule auch bei mir am laufen, funktioniert auch soweit.
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 6 ENDON
ON event#t2>%var3% DO Power1 %var1% ENDON
ON event#t2<%var2% DO Power1 0 ENDON
ich filtere das Wasser aber auch mit dieser Pumpe. Habe mir somit 4 timer angelegt die mir die Pumpe einschalten und wieder ausschalten.
Mit der oberen Rule schalte ich mir ja die Pumpe aus wenn ich umwälzen will. Ist es möglich die Rule1 abzuschalten wenn der Timer läuft?
hatte mir das so vorgestellt.
rule1
on Clock#Timer=2 do rule2 1 endon
on Clock#Timer=4 do rule2 1 endon
rule2
ON DS18B20-1#temperature DO event t2=%value% ENDON
ON DS18B20-2#temperature DO event t1=%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 ENDON
on Clock#Timer=1 do rule2 0 ENDON
on Clock#Timer=3 do rule2 0 ENDON
Alles anzeigen
er reagiert aber nicht auf die Timer.
ahh mein Fehler, hatte eine alte Tasmota Firmware noch drauf. Er nimmt die Rule nun.
Aber da passt noch was nicht!
19:32:58.499 MQT: stat/Wassertank_Distance/RESULT = {"Wassertank_prozent":"8.193"}
19:32:58.809 MQT: stat/Hochbeet94/RESULT = {"Var1":"8.193"}
19:32:59.031 MQT: stat/Hochbeet94/RESULT = {"Var2":"8.193"}
19:32:59.266 MQT: stat/Hochbeet94/RESULT = {"Add1":"8.193"}
19:32:59.497 MQT: stat/Hochbeet94/RESULT = {"Sub2":"8.193"}
19:33:07.795 RUL: SR04#DISTANCE<%VAR2% performs "backlog var4 8.175; var5 8.175; event checklimit=8.175; event senddistance"
19:33:07.914 MQT: stat/Hochbeet94/RESULT = {"Var4":"8.175"}
19:33:08.240 MQT: stat/Hochbeet94/RESULT = {"Var5":"8.175"}
19:33:08.493 MQT: stat/Hochbeet94/RESULT = {"Event":"Done"}
19:33:08.727 MQT: stat/Hochbeet94/RESULT = {"Event":"Done"}
19:33:08.785 RUL: EVENT#SENDDISTANCE performs "backlog scale1 8.175, 31, 4, 0, 100; event pubdata"
19:33:08.873 MQT: stat/Hochbeet94/RESULT = {"Scale1":"84.537"}
19:33:09.110 MQT: stat/Hochbeet94/RESULT = {"Event":"Done"}
19:33:09.173 RUL: EVENT#PUBDATA performs "backlog publish stat/Wassertank_Distance/RESULT {"Wassertank_prozent":"8.175"}; var1 8.175; var2 8....
19:33:09.186 MQT: stat/Wassertank_Distance/RESULT = {"Wassertank_prozent":"8.175"}
19:33:09.506 MQT: stat/Hochbeet94/RESULT = {"Var1":"8.175"}
19:33:09.740 MQT: stat/Hochbeet94/RESULT = {"Var2":"8.175"}
19:33:09.949 MQT: stat/Hochbeet94/RESULT = {"Add1":"8.175"}
19:33:10.200 MQT: stat/Hochbeet94/RESULT = {"Sub2":"8.175"}
Alles anzeigen
Add1 und Sub2 passen nicht, sowie scale1 wird die Falsche Zahl gepublished. Var4 passt doch eigentlich wieso nimmt er 8.175 und nicht die 84.537?
Edit: Add1 und Sub2 passen nur der Wert der gesendet wird ist der falsche noch.
Moin,
Hehe ja, dass habe selbst ich langsam kapiert
In meinem Fall:
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
als Ergebnis bekomme ich dann:
vielen Dank, aber das frisst er nicht!
Kann es sein, dass das zu viel Zeichen sind für eine Rule?