Openhab 3 Analog Wert umrechnen
-
- Beiträge: 5
- Registriert: 2. Apr 2021 19:00
Openhab 3 Analog Wert umrechnen
Hallo zusammen,
Ich habe heute mein Openhab 2 nach 3 Jahren Nutzung frisch auf Openhab 3 aufgesetzt. Soweit so gut. Bin recht zufrieden mit dem neuen Openhab, ich finde es recht einfach zu programmieren und übersichtlich. Nur bin ich auf eine kleine Hürde gestoßen die ich nicht alleine bewältigen kann. Ich bekomme über ein Tasmota Device einen Analog Wert von meinen Akku. Voll geladen bekomme ich den Wert 1024. Ich würde den Wert gerne umrechnen das ich die aktuelle Spannung angezeigt bekomme. Also 1024 x 4,2 / 1000. Meine Frage ist wie mache ich das in Openhab 3? In Openhab 2 habe ich das mit einer Rule gelöst und das hat auch recht gut funktioniert aber in Openhab 3 komme ich nicht weiter. Über eure Ratschläge wär ich recht froh.
Gruß Zeina_
Ich habe heute mein Openhab 2 nach 3 Jahren Nutzung frisch auf Openhab 3 aufgesetzt. Soweit so gut. Bin recht zufrieden mit dem neuen Openhab, ich finde es recht einfach zu programmieren und übersichtlich. Nur bin ich auf eine kleine Hürde gestoßen die ich nicht alleine bewältigen kann. Ich bekomme über ein Tasmota Device einen Analog Wert von meinen Akku. Voll geladen bekomme ich den Wert 1024. Ich würde den Wert gerne umrechnen das ich die aktuelle Spannung angezeigt bekomme. Also 1024 x 4,2 / 1000. Meine Frage ist wie mache ich das in Openhab 3? In Openhab 2 habe ich das mit einer Rule gelöst und das hat auch recht gut funktioniert aber in Openhab 3 komme ich nicht weiter. Über eure Ratschläge wär ich recht froh.
Gruß Zeina_
- peter-pan
- Beiträge: 2774
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openhab 3 Analog Wert umrechnen
Hast du das schon mal auf die gleiche Weise wie in OH2 probiert ? Einfach die Regel nach OH3 kopieren!
Ansonsten wäre evtl. noch die Möglichkeit über eine "Expression" in den "Pages". Das geht aber auch nur bei bestimmten Widgets. Es wäre vielleicht besser, wenn du mal dein Setup(Items/Rule,etc.) dazu posten würdest und was du genau wo angezeigt haben möchtest.
Ansonsten wäre evtl. noch die Möglichkeit über eine "Expression" in den "Pages". Das geht aber auch nur bei bestimmten Widgets. Es wäre vielleicht besser, wenn du mal dein Setup(Items/Rule,etc.) dazu posten würdest und was du genau wo angezeigt haben möchtest.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian
-
- Beiträge: 600
- Registriert: 20. Sep 2019 05:49
Re: Openhab 3 Analog Wert umrechnen
Schau mal hier, ähnliches Szenario:
viewtopic.php?f=15&t=4697&start=20
Umrechnung via JavaScript-Transformation
viewtopic.php?f=15&t=4697&start=20
Umrechnung via JavaScript-Transformation
-
- Beiträge: 5
- Registriert: 2. Apr 2021 19:00
Re: Openhab 3 Analog Wert umrechnen
Ich hatte diese Rule in Openhab 2 laufen und die funktionierte einwandfrei. Nur in Openhab 3 will sie nicht funktionieren. Ich bekomme bei meinen Item nur immer den Wert NULL.
rule "Wetterstation_Batteriestatus"
when
Item Wetterstation_WetterstationANALOGA0 received update
then
var Number Volt = Wetterstation_WetterstationANALOGA0.state as DecimalType
var Number xx = Volt * 4.1
var Number XX = xx/1000
postUpdate(Wetterstation_Batteriestatus, XX)
end
rule "Wetterstation_Batteriestatus"
when
Item Wetterstation_WetterstationANALOGA0 received update
then
var Number Volt = Wetterstation_WetterstationANALOGA0.state as DecimalType
var Number xx = Volt * 4.1
var Number XX = xx/1000
postUpdate(Wetterstation_Batteriestatus, XX)
end
- peter-pan
- Beiträge: 2774
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openhab 3 Analog Wert umrechnen
Ich habe mal deine Regel bei mir in OH2 und OH3 getestet und so wie ich das sehe, sieht das alles ganz gut aus.
Rule 1:
Rule 2 (etwas verkürzt):
Vielleicht baust du einfach mal ein LOG ein, dann siehst du sicher gleich, ob deine Berechnungen in Ordnung sind. Wenn das der Fall ist, dann stimmt irgend etwas mit dem Item "Wetterstation_Batteriestatus" nicht bzw. du kannst das Problem eingrenzen.
Das Item "Wetterstation_Batteriestatus" habe ich als Number-Item angelegt. Als Basis habe ich mir ein Number-Item aus mein SetUp (ESP32) genommen.
Im Logger kann ich die folgenden Ergebnisse der Berechnungen sehen:
Rule 1:
Code: Alles auswählen
rule "Wetterstation_Batteriestatus"
when
Item esp_32_01_smoke1 received update
or Item Dummy_4 changed to ON
then
var Number Volt = esp_32_01_smoke1.state as DecimalType
var Number xx = Volt * 4.1
var Number XX = xx/1000
logInfo("Batterie","XX ist {} Original {}", XX, esp_32_01_smoke1.state)
postUpdate(Wetterstation_Batteriestatus, XX)
end
Code: Alles auswählen
rule "Wetterstation_Batteriestatus1"
when
Item esp_32_01_smoke1 received update
or Item Dummy_4 changed to ON
then
var Number Volt = (esp_32_01_smoke1.state as DecimalType * 4.1) / 1000
logInfo("Batterie1","Original {} Volt {}", esp_32_01_smoke1.state, Volt)
//postUpdate(Wetterstation_Batteriestatus, Volt)
end
Das Item "Wetterstation_Batteriestatus" habe ich als Number-Item angelegt. Als Basis habe ich mir ein Number-Item aus mein SetUp (ESP32) genommen.
Im Logger kann ich die folgenden Ergebnisse der Berechnungen sehen:
Code: Alles auswählen
2021-04-03 16:09:03.414 [INFO ] [g.openhab.core.model.script.Batterie] - XX ist 4.85030000 Original 1183
2021-04-03 16:09:03.414 [INFO ] [.openhab.core.model.script.Batterie1] - Original 1183 Volt 4.85030000
2021-04-03 16:12:52.559 [INFO ] [g.openhab.core.model.script.Batterie] - XX ist 4.85850000 Original 1185
2021-04-03 16:12:52.563 [INFO ] [.openhab.core.model.script.Batterie1] - Original 1185 Volt 4.85850000
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian
-
- Beiträge: 5
- Registriert: 2. Apr 2021 19:00
Re: Openhab 3 Analog Wert umrechnen
Also ich bekomme im Log immer diese Meldung.
Code: Alles auswählen
2021-04-03 21:04:29.727 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Batteriestatus-1' failed: Could not cast 986 to org.openhab.core.library.types.DecimalType; line 43, column 25, length 56 in Batteriestatus
-
- Beiträge: 5
- Registriert: 2. Apr 2021 19:00
Re: Openhab 3 Analog Wert umrechnen
OK hab meinen Fehler selbst gefunden.
Ich hatte mein Item von dem ich den Analog Wert bekomme als String definiert.
Habs als Number eingestellt und nun funktionierts.
Danke nochmal.
Ich hatte mein Item von dem ich den Analog Wert bekomme als String definiert.
Habs als Number eingestellt und nun funktionierts.
Danke nochmal.
- peter-pan
- Beiträge: 2774
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Openhab 3 Analog Wert umrechnen
Hab's mir fast gedacht, deshalb auch noch mal mein Hinweis auf das Number-Item
.

Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian