Seite 1 von 2
Rule / 1000
Verfasst: 12. Okt 2020 21:47
von Jojo
Servus,
sorry, dass ich schon wieder mal mit einer Anfängerfrage hier aufschlage, aber einer der Vorteile dieses Forums ist es, dass man nicht niedergemacht wird egal wie blöd die Frage ist !! DANKE dafür.
Nun aber zum Punkt:
ich empfange per MQTT daten von Thermometern und WLAN Steckdosen und habe 2 Herausforderungen:
1. Steckdose 1 sendet den Verbrauch in Wh, ich hätte den gerne bin kWh, folgende Rule klappt nicht:
Code: Alles auswählen
rule "Temperatur und Zeit"
when
Item ptotaltv changed
then
ptotaltvkw.postUpdate(ptotaltv.state as Number / 1000)
end
ptotaltv ist das item das aktuell angezeigt wird, ptotaltvkw soll das sein in kWh
2. Der ESP / Tasmota schickt irgendwie aus der falschen Zeitzone, kann ich das dort einstellen oder wie müsste eine Rule aussehen, die die Zeit anpasst. Es geht mir darum, zu wissen von wann der angezeigte Wert ist um zu sehen, ob die Sensoren noch laufen.
Vielen Dank im Voraus
Re: Rule / 1000
Verfasst: 13. Okt 2020 18:21
von violine21
Jojo hat geschrieben: ↑12. Okt 2020 21:47
1. Steckdose 1 sendet den Verbrauch in Wh, ich hätte den gerne bin kWh, folgende Rule klappt nicht:
Code: Alles auswählen
rule "Temperatur und Zeit"
when
Item ptotaltv changed
then
ptotaltvkw.postUpdate(ptotaltv.state as Number / 1000)
end
ptotaltv ist das item das aktuell angezeigt wird, ptotaltvkw soll das sein in kWh
Möglicherweise hat das Item "ptotaltv" eine Einheit (UoM). Zum Rechnen muss die entfernt werden:
Code: Alles auswählen
ptotaltvkw.postUpdate(ptotaltv.state as Number).floatValue / 1000
Beide Items müssen vom Typ Number sein.
Re: Rule / 1000
Verfasst: 13. Okt 2020 18:22
von PeterA
Hi Jojo,
So etwas ähnliches mache ich mit meinen Shellys.
Hier muss ich den Wert aber durch 60000 Teilen:
Code: Alles auswählen
rule "Shelly25_01 kWh"
when
Item Shellyswitch25_745118_energy received update
then
Shellyswitch25_745118_kWh.postUpdate(Shellyswitch25_745118_energy.state as DecimalType / 60000)
end
Alle Items sind vom Typ "Number"
Code: Alles auswählen
Number Shellyswitch25_745118_energy "Shelly2501energy [%.0f W*min]"
Number Shellyswitch25_745118_kWh "Shelly2501energy [%.2f kWh]"
Re: Rule / 1000
Verfasst: 13. Okt 2020 18:59
von peter-pan
Jojo hat geschrieben: ↑12. Okt 2020 21:47
2. Der ESP / Tasmota schickt irgendwie aus der falschen Zeitzone,
Gehe in die Konsole und tippe "Timezone 99" (ohne Anführungszeichen) ein, das war's. Wenn du danach noch z.B.: "Status 0" eingibst, siehst du die richtige Zeit.
"Timezone" ohne Parameter zeigt dir die momentane Zeitzone an, dass dürfte wahrscheinlich 1 sein.
Re: Rule / 1000
Verfasst: 13. Okt 2020 19:04
von peter-pan
Jojo hat geschrieben: ↑12. Okt 2020 21:47
1. Steckdose 1 sendet den Verbrauch in Wh
Wie ist denn die Item-Definintion/Thing-Definition und welche Firmware kommt zum Einsatz ?
Re: Rule / 1000
Verfasst: 13. Okt 2020 22:37
von Jojo
Tach euch dreien,
Timezone 99 funktioniert !!
Die Rule auch ( keine Ahnung warum )
DANKE !!!
EDIT: kann es sein, dass die Umstellung auf Timezone 99 auch auf kWh umstellt ?
Re: Rule / 1000
Verfasst: 13. Okt 2020 22:46
von peter-pan
Jojo hat geschrieben: ↑13. Okt 2020 22:37
EDIT: kann es sein, dass die Umstellung auf Timezone 99 auch auf kWh umstellt ?

Nicht wirklich
timezone 2 könnte evtl. auch gehen.
Nur "timezone" zeigt die aktuelle timezone an. Mehr dazu findest du auch in der
Tasmota-Doku
Re: Rule / 1000
Verfasst: 14. Okt 2020 12:19
von udo1toni
Jojo hat geschrieben: ↑12. Okt 2020 21:47
Servus,
sorry, dass ich schon wieder mal mit einer Anfängerfrage hier aufschlage, aber einer der Vorteile dieses Forums ist es, dass man nicht niedergemacht wird egal wie blöd die Frage ist !!
Nein, das geht natürlich nicht, Du (hier bitte beliebige schlimme Beschimpfung einfügen)!
Jojo hat geschrieben: ↑12. Okt 2020 21:47
1. Steckdose 1 sendet den Verbrauch in Wh, ich hätte den gerne bin kWh, folgende Rule klappt nicht:
Code: Alles auswählen
rule "Temperatur und Zeit"
when
Item ptotaltv changed
then
ptotaltvkw.postUpdate(ptotaltv.state as Number / 1000)
end
ptotaltv ist das item das aktuell angezeigt wird, ptotaltvkw soll das sein in kWh
Das Problem ist hier im Zweifel, dass da Klammern fehlen...

openHAB versucht, Number durch 1000 zu teilen. Korrekt wäre also
Code: Alles auswählen
ptotaltvkw.postUpdate((ptotaltv.state as Number) / 1000)
Natürlich unter der Voraussetzung, dass ptotaltvkw ein Number Item ist.
Da MQTT kein UoM unterstützt, können wir ausschließen, dass es irgendwelche magischen Nebeneffekte gibt

GELÖST Re: Rule / 1000
Verfasst: 14. Okt 2020 21:09
von Jojo
Servus udo1toni,
danke für den Kommentar, made my day ???
Ach ja,. gelöst ist das Thema auch, ich habe den Wert OHNE Rule mit [%.2f KwH] formatiert. Und schon geht´s
Aber keine Bange, ich frage wieder ( frei nach Arnold S. )
Re: GELÖST Re: Rule / 1000
Verfasst: 15. Okt 2020 19:56
von udo1toni
Jojo hat geschrieben: ↑14. Okt 2020 21:09
Ach ja,. gelöst ist das Thema auch, ich habe den Wert OHNE Rule mit [%.2f KwH] formatiert. Und schon geht´s
Ah. Aber dann war der Wert vorher schon in kWh, nur fehlte die Formatierung. MQTT unterstützt keine Units of Measurement...