NEWS
Tasmota D1 Mini gerechnete Werte via Mqtt übertragen
-
Hallo Gemeinde, ich hab ein kleines Problem, es fing alles mit einen Gaszähler an, wollte Ihn Smart machen und dacht ich nehme Tasmota, Zähler ist drin und Zählt. Nun habe ich das Problem das die ganzen Datenpunkte fehlen bis auf den Counter. der wird immer aktualisiert. Ich hab ein Scripting Tasmota auf einen D1MINI. Soweit funktioniert alles, bis auf die fehlenden Datenpunkte.Das markierte ist der counter der im IObroker via Mqtt broker angezeigt wird. Ich möchte das die berechneten Werte via MQTT übertragen werden. Oder funktioniert das so nicht was ich da vor habe???
-
@wuffi26 sagte in Tasmota D1 Mini gerechnete Werte via Mqtt übertragen:
Scripting Tasmota
mal zeigen was drin steht
-
@ralla66 ```
D
p:m1=0
p:g1=0
p:g2=0
p:month1=0
p:month2=0
p:month3=0
p:gesamt=0
c1=0
s1=0
h1=0
hkw1=0
gkw1=0
gkw2=0
mkw1=0
mkw2=0
mkw3=0
mkwgs=0
skw1=0
hgp=0
g1gp=0
g2gp=0
m1gp=0
m2gp=0
m3gp=0
gsgp=0
hr=0
dy=0
zu=0.9617
br=11.233
gp=17.956
gasinit=0.0
gastotal=0B
=>sensor53 l255S
h1=s1-m1
hkw1=h1brzu
hgp=(hkw1gp)/100
gkw1=g1brzu
gkw2=g2brzu
mkw1=month1brzu
mkw2=month2brzu
mkw3=month3brzu
mkwgs=gesamtbrzu
g1gp=(gkw1gp)/100
g2gp=(gkw2gp)/100
m1gp=(mkw1gp)/100
m2gp=(mkw2gp)/100
m3gp=(mkw3gp)/100
gsgp=(mkwgsgp)/100
skw1=s1br*zuhr=hours
dy=day
if chg[hr]>0
and hr==0
then
m1=s1
g2=g1
g1=h1
month1=month1+h1
gesamt=gesamt+h1
if chg[dy]<2
and dy==1
then
month3=month2
month2=month1
month1=0
endif
svars
endifif upsecs%tper==0{
=>Publish tasmota/%topic%/main/td_m3 %2h1%
=>Publish tele/%topic%/main/td_kwh %2hkw1%
=>Publish tele/%topic%/main/yd_m3 %2g1%
=>Publish tele/%topic%/main/yd_kwh %2gkw1%
=>Publish tele/%topic%/main/dbyd_m3 %2g2%
=>Publish tele/%topic%/main/dbyd_kwh %2gkw2%
=>Publish tele/%topic%/main/value %2s1%
=>Publish tele/%topic%/main/gastotal %2gastotal%
=>Publish tele/%topic%/json {"gastotal": "%2gastotal%", "value": "%2s1%", "today_m3": "%2h1%", "today_kwh": "%2hkw1%", "yesterday_m3": "%2g1%", "yesterday_kwh": "%2gkw1%", "db_yesterday_m3": "%2g2%", "db_yesterday_kwh": "%2gkw2%"}
}T
s1=Counter#C1/100
c1=Counter#C1
gastotal=(c1/100)+gasinitW
GAS gezählt: {m} %3s1% m³
Zählerstand: {m} %gastotal% m³
============
Zustandszahl: {m} %zu%
Brennwert: {m} %br% kWh/m³
Gaspreis: {m} %gp% Cent/kWh
============
Verbrauch:
Heute: {m} %2h1% m³ | %2hkw1% kWh
Kosten: {m} %2hgp% €Gestern: {m} %2g1% m³ | %2gkw1% kWh
Kosten: {m} %2g1gp% €Vorgestern: {m} %2g2% m³ | %2gkw2% kWh
Kosten: {m} %2g2gp% €Aktueller Monat: {m} %2month1% m³ | %2m1gp% €
Letzter Monat: {m} %2month2% m³ | %2m2gp% €
Vorletzter Monat: {m} %2month3% m³ | %2m3gp% €
Gesamt: {m} %2gesamt% m³ | %2gsgp% € -
deine Telemetrieperiode hat den Wert ?
mal auf 10 stellen,
teste mal unter D eine var anlegen mit eigen=365,
unter T das einfügen,
=>publish tele/%topic%/Test %eigen%dann sollte im Mqtt Adapter unter tele Datenpunkt Test der Wert 365 stehen.
-
@ralla66 ok danke sehr, werde es gleich mal testen.
-
@Ralla66 habe es mal getestet, er legt kein solchen Datenpunkt an, nutze dem Sonoff Mqtt adapter. liegt es vielleicht an der Tasmota Version oder an den Mqtt server?
-
@wuffi26 ,
in meinen Skripten nehme ich 'stat' nicht tele und RESULT am Ende unter '>T'>T =>publish stat/%topic%/RESULT {"Sensor.Indoor.Temperatur":%1tin%}
und im Adapter muss die automatische Erstellung der Datenpunkte aktiviert sein.
Edit: Der Datenpunkt wird unter 'sonoff.0.%topic%.Sensor.Indoor.Temperatur' erstellt.
-
für Sonoff Adapter verwende ich diese Syntax :
teste mal unter D eine var anlegen mit
eigen=365
unter
J
,"Test":{"Eigen":%eigen%}
einfügen
Nach Änderung des Scriptes immer Sonoff Adapter neu starten !
Besser Datenpunkte komplett löschen und Neustart. -
@wal Ok danke für Deine Antwort, mit dem automatischen Erstellen hab ich eigentlich noch nie Probleme gehabt, die Datenpunkte waren alles bisher da. Ich werde es gleich mal probieren.
-
Test Script, damit festgestellt werden kann ob der Weg geht, ESP nach Sonoff Adapter.
Tasmota ist Paul 12.4
>D ;Variablen eigen=365 ;Web Gui >W Eigen{m}%eigen% ;Tasmota Sonoff Adapter >J ,"Test" :{"Eigen":%eigen%}
Telemetrie Tasmota auf 10 stellen
Nach Änderung des Scriptes immer Sonoff Adapter neu starten !
Besser Datenpunkte komplett löschen und Neustart. -
@Wal Hallo und Grüße, endlich hab ich es so wie ich mir das gedacht habe, herzlichen Dank, alleine wäre ich NIeeeeee drauf gekommen.
-
Prima, passt ja dann.
woran lag es nun ? -
@ralla66 Kann ich leider nicht sagen aber ich denke, das es was mit dem code und der telemetry Übertragung zu tun hat. Wie gesagt , bin nicht so fit mit tasmota, was eigentlich sehr schade ist weil man sehr viel machen kann damit.
-
@ralla66 Übrigens habe ich das image genauso wie Du sagtest auf den D1 mini geschrieben.
-
@wuffi26
Telemetrie ist die Erneuerung der Daten / Werte im Sonoff Adapter nach Zeit.
300 bedeutet das es 5 minuten dauert ( 5 x 60 sec) bis die Werte erneuert werden.
Schreibst du das Script um dauert es halt 5 min bis neue Daten kommen. -
@ralla66 ok Danke sehr, ich habe jetzt eine 60 draus Gemacht damit es nicht so lange dauert
-
@wuffi26 Darf ich höflich nach dem Script fragen.
Ich habe momentan "Heute und Gestern" in meinem Tasmota Script, aber würde gerne auch Monat, letzter Monat / Gesamt haben.
Wenn ich die snips aus dem Forum nehme fehlt mir immer irgendeine Variable.
Bei mir seiht es im Moment so aus:>D p:m1=0 s1=0 p:g1=0 h1=0 hkw1=0 gkw1=0 skw1=0 hgp=0 ggp=0 akw1=0 hr=0 mi=0 zu=0.9702 br=9.835 gp=7.26 farbe1="#008000" farbe2="#f00000" farbe3="#00fdfd" >B ->sensor53 r tper=10 >S h1=s1-m1 hkw1=h1*br*zu hgp=(hkw1*gp)/100 gkw1=g1*br*zu ggp=(gkw1*gp)/100 skw1=s1*br*zu akw1=(skw1*gp)/100 hr=hours if chg[hr]>0 and hr==0 then m1=s1 g1=h1 svars endif >T s1=GAS1#Stand_Haus1 >W ============ Zustandszahl: {m} %zu% Brennwert: {m} %br% kWh/m³ Gaspreis: {m} %gp% Cent/kWh ============ Verbrauch: --------------------- Heute: {m} %2h1% m³ | %2hkw1% kWh Kosten: {m} %2hgp% € --------------------- Gestern: {m} %2g1% m³ | %2gkw1% kWh Kosten: {m} %2ggp% € <p style="color:#00d6e9;">Gas gesamt: {m} <p style="color:#00d6e9;">%2s1% m3 | %2skw1% kWh</p> <p style="color:#00d6e9;">Kosten: {m} <p style="color:#00d6e9;">%2akw1% €</p> >M 1 +1,4,c,1,-25,GAS1 1,1-0:1.8.0*255(@100,Zählerstand,m³,Stand_Haus1,18 #
-
@ralla66 habe es genau wie du es erklärt hast gemacht, leider bekomme ich keinen Datenpunkt im iobroker erstellt!
Woran kann es liegen? Ich habe einen Durchflussmesser. In dem Script wird Liter/min, Liter/h berechnet und auf einem oled ausgegeben. Diesen Wert hätte ich gerne via mqtt übertragen an den iobroker.
Zum Test habe ich dein Beispiel eingefügt. In der Tasmota Oberfläche wird die 365 angezeigt, aber nicht an den iobroker übertragen. Es wird nur der Counter übertragen.
>D p:pAktuell=0 p:pVorherige=0 p:pDiff=0 p:qLiter_sec=0 p:qLiter_min=0 p:qLiter_h=0 p:qLiter_Total=0 eigen=365 >S pVorherige=pAktuell pAktuell=pc[1] pDiff=pAktuell-pVorherige qLiter_sec=(pDiff/450) qLiter_min=(qLiter_sec*60) qLiter_h=(qLiter_min*60) qLiter_Total=(pc[1]/450) ->displaytext [zs4x-8y11] %0qLiter_h%[s1x80y38] l/min ;Rahmen ;->DisplayText [x0y0r128:64] >W ;Durchfluss{m} %qLiter_sec% Liter/s Durchfluss{m} %qLiter_min% Liter/min Durchfluss{m} %qLiter_h% Liter/h Total{m} %qLiter_Total% Liter Eigen{m}%eigen% ;Tasmota Sonoff Adapter >J ,"Test" :{"Eigen":%eigen%}