Openhab 3 Analog Wert umrechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Zeina_
Beiträge: 5
Registriert: 2. Apr 2021 19:00
Answers: 0

Openhab 3 Analog Wert umrechnen

Beitrag von Zeina_ »

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_

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openhab 3 Analog Wert umrechnen

Beitrag von peter-pan »

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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Openhab 3 Analog Wert umrechnen

Beitrag von violine21 »

Schau mal hier, ähnliches Szenario:
viewtopic.php?f=15&t=4697&start=20
Umrechnung via JavaScript-Transformation

Zeina_
Beiträge: 5
Registriert: 2. Apr 2021 19:00
Answers: 0

Re: Openhab 3 Analog Wert umrechnen

Beitrag von Zeina_ »

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

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openhab 3 Analog Wert umrechnen

Beitrag von peter-pan »

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:

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
Rule 2 (etwas verkürzt):

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
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:

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

Zeina_
Beiträge: 5
Registriert: 2. Apr 2021 19:00
Answers: 0

Re: Openhab 3 Analog Wert umrechnen

Beitrag von Zeina_ »

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

Zeina_
Beiträge: 5
Registriert: 2. Apr 2021 19:00
Answers: 0

Re: Openhab 3 Analog Wert umrechnen

Beitrag von Zeina_ »

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.

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openhab 3 Analog Wert umrechnen

Beitrag von peter-pan »

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

Antworten