Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Hansi98b
Beiträge: 5
Registriert: 8. Feb 2025 21:15
Answers: 0

Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von Hansi98b »

Hallo,
ich betreibe einen gekauften Tasmota Messwertaufnehmer für meinen Gaszähler.
Funktioniert wunderbar und zuverlässig.
Die Tasmota Weboberfläche (live) zeigt diverse Werte an (siehe Anlage) wie:
Zählerstand in m³, Verbrauch heute in m³ und kWh, Kosten heute, Verbrauch gestern in m³ und kWh und Kosten gestern.

Aktuell werte ich meine Zähler noch mit PRTG aus und da soll der Gaszähler auch erst mal rein.
Aber über die Status-Anzeige des Tasmota (http://192.168.xx.yy/cm?cmnd=status%208)
bekomme ich immer nur
{"StatusSNS":{"Time":"2025-02-08T21:21:01","COUNTER":{"C1":2332123},"GAS1":{"Stand_Haus1":23321.23}}}
also den Zählerstand (COUNTER: C1) und den aktuellen Zählerstand in m³ (GAS1:Stand_Haus1)

Wir kann ich die anderen Werte aus dem Konsolenscript in diese Ausgabe hinzufügen?
Die Variablen die ich gerne hätte sind:
h1, g1 (Verbrauch im m³ heute/gestern)
hkw1,gkw1 (kWh heute/gestern)
hgp/ggp (Kosten heute/gestern)

Vielen Dank für Eure Hilfe.
MfG
Hans

Das Script aus dem Tasmota habe ich hier mal eingefügt:
>D
p:m1=0
s1=0
p:g1=0
h1=0
hkw1=0
gkw1=0
skw1=0
hgp=0
ggp=0


hr=0
mi=0

;---------------------------------------------------------------------
;HIER BITTE PERSÖNLICHE WERTE EINTRAGEN !!!!

;Zählernummer
Zn=191234567

;Z-Zahl
zu=0.9674

;Brennwert
br=11.378

;Verbauchspreis KwH
gp=15.41763

;---------------------------------------------------------------------

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


hr=hours
if chg[hr]>0
and hr==0
then
m1=s1
g1=h1
svars
endif

if upsecs%tper==0{
=>Publish keller/%topic%/main/td_m3 %2h1%
=>Publish keller/%topic%/main/td_kwh %2hkw1%
=>Publish keller/%topic%/main/yd_m3 %2g1%
=>Publish keller/%topic%/main/yd_kwh %2gkw1%
=>Publish keller/%topic%/main/value %2s1%
=>Publish keller/%topic%/main/json {"value": "%2s1%", "today_m3": "%2h1%", "today_kwh": "%2hkw1%", "yesterday_m3": "%2g1%", "yesterday_kwh": "%2gkw1%"}

;Senden an Homematic Variable xxxxxxxx
;=>websend [ip-adresse_ccu:8181] /cuxd.exe?Status=dom.GetObject('xxxxxxxx').State(%2s1%)

}

>T
s1=GAS1#Stand_Haus1

>W
GAS1 Zählernummer: {m} %0Zn%
============
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% €

>M 1
+1,14,c,1,-500,GAS1
1,1-0:1.8.0*255(@100,Zählerstand:,m³,Stand_Haus1,18
#
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
PeterA
Beiträge: 1103
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von PeterA »

Hi,

vermutlich hab ich das selbe Teil wie Du auch.
Hier mal mein Consolen Script vielleicht kannst Du ja ein Paar Infos rausziehen.

Code: Alles auswählen

>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.9524
br=11.535
gp=8.24
gasinit=10264.090
gastotal=0

>B
=>sensor53 l255


>S
h1=s1-m1
hkw1=h1*br*zu
hgp=(hkw1*gp)/100
gkw1=g1*br*zu
gkw2=g2*br*zu
mkw1=month1*br*zu
mkw2=month2*br*zu
mkw3=month3*br*zu
mkwgs=gesamt*br*zu
g1gp=(gkw1*gp)/100
g2gp=(gkw2*gp)/100
m1gp=(mkw1*gp)/100
m2gp=(mkw2*gp)/100
m3gp=(mkw3*gp)/100
gsgp=(mkwgs*gp)/100
skw1=s1*br*zu

hr=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
endif



if upsecs%tper==0{
=>Publish tele/%topic%/main/td_m3 %2h1%
=>Publish tele/%topic%/main/td_kwh %2hkw1%
=>Publish tele/%topic%/main/td_hgp %2hgp%
=>Publish tele/%topic%/main/yd_m3 %2g1%
=>Publish tele/%topic%/main/yd_kwh %2gkw1%
=>Publish tele/%topic%/main/yd_hgp %2g1gp%
=>Publish tele/%topic%/main/dbyd_m3 %2g2%
=>Publish tele/%topic%/main/dbyd_kwh %2gkw2%
=>Publish tele/%topic%/main/dbyd_hgp %2g2gp%
=>Publish tele/%topic%/main/value %2s1%
=>Publish tele/%topic%/main/m1_m3 %2month1%
=>Publish tele/%topic%/main/m1_gp %2m1gp%
=>Publish tele/%topic%/main/m2_m3 %2month2%
=>Publish tele/%topic%/main/m2_gp %2m2gp%
=>Publish tele/%topic%/main/m3_m3 %2month3%
=>Publish tele/%topic%/main/m3_gp %2m3gp%
=>Publish tele/%topic%/main/gesamt_m3 %2gesamt%
=>Publish tele/%topic%/main/gesamt_gp %2gsgp%
=>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)+gasinit

>W
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%
Hier wirds dann als Json auf Mqtt published:

Code: Alles auswählen

=>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%"}
- OpenHab 2.4
#PWRUP

Hansi98b
Beiträge: 5
Registriert: 8. Feb 2025 21:15
Answers: 0

Re: Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von Hansi98b »

Danke für das Script; deines scheint noch etwas ausgefeilter zu sein mit Anzeige des Monatsverbrauch etc. Vielleicht baue ich das auch in mein Script noch mal ein.

An der Zeile für das publish-ing des MQTT habe ich mich auch schon versucht; aber das hat leider keine Auswirkung auf die Ausgabe mittels "status 8".
Da kommt ja auch "nur" ein Jason raus, aber es fehlen eben einige Werte die ich gerne im PRTG ausgewertet hätte.
Eine MQTT Server Instanz wollte ich momentan noch nicht aufsetzen.

Ich habe so per Google etc. einen Hinweis bekommen, wie festgelegt wird, was beim Status Kommando ausgegeben wird.

Hansi98b
Beiträge: 5
Registriert: 8. Feb 2025 21:15
Answers: 0

Re: Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von Hansi98b »

Ich forsche gerade noch etwas in der Tasmota Script Logik:
Scheint als wenn Status 8 nur die Sensor-Informationen auswirft; aber die m³ ist schon ein berechneter Wert.
>M 1
+1,14,c,1,-500,GAS1
1,1-0:1.8.0*255(@100,Zählerstand:,m³,Stand_Haus1,18
#
weiter suchen ...

Hansi98b
Beiträge: 5
Registriert: 8. Feb 2025 21:15
Answers: 0

Re: Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von Hansi98b »

okay, das sieht alles irgendwie mühsam aus.
Ich werde wohl versuchen müssen die HTML Seite selbst mittels z.B. powershell zu analysieren und die Werte zu extrahieren.
Das ist jedenfalls mein nächster Versuch ...

Hansi98b
Beiträge: 5
Registriert: 8. Feb 2025 21:15
Answers: 0

Re: Variablen des Tasmota Scriptes mittels REST oder Status 8 lesbar machen

Beitrag von Hansi98b »

Das funktioniert leider auch nicht, weil die gesuchten Werte in der HTML Seite gar nicht drin sind, sondern vom Javascript Code in der Seite erst ermittelt und aufbereitet werden.
Muss ich vielleicht doch den MQTT Brokerweg beschreiten und einen einrichten.

Antworten