Fehler nach Upgrade auf 4.0

Moderator: seppy

Gugu
Beiträge: 4
Registriert: 26. Jul 2023 16:56
Answers: 0

Fehler nach Upgrade auf 4.0

Beitrag von Gugu »

Hallo,
ich habe nach dem Upgrade auf Openhab 4.0 auf meinem Raspberry Pi folgenden Fehler und werde diesen nicht los.
"Can't convert type DecimalType with value '5' to FLOAT value with QuantityTypeConverter for 'INT0000005:1#SET_POINT_TEMPERATURE', please check the item type and the commands in your scripts"
Homematic Binding sowie alle Things habe ich schon entfernt und neu hinzugefügt. Hat leider nichts geholfen. Hat noch einer einen Tipp für mich?

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Fehler nach Upgrade auf 4.0

Beitrag von udo1toni »

Das Problem wird hier vielleicht das Item sein. Speziell im Zusammenhang mit UoM (QuantityType) hat es wesentliche Änderungen gegeben, die Anpassungen an allen UoM Items erforderlich machen. Sind die Items per UI erstellt und das Upgrade wurde direkt durchgeführt (also eine bestehende openHAB3.4.4 Version wurde per apt upgrade auf openHAB4.0.0 gehoben - openHABian nutzt auch apt), dann sollten die Items automatisch die vorhandenen Einstellungen aus dem pattern übernommen haben. Ist hier etwas flaches eingetragen, führt das natürlich zu Folgefehlern.
Ist das Item per Textdatei angelegt, so muss der Anwender den zusätzlichen Parameter unit="..." selbst zur Definition hinzufügen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Gugu
Beiträge: 4
Registriert: 26. Jul 2023 16:56
Answers: 0

Re: Fehler nach Upgrade auf 4.0

Beitrag von Gugu »

Hallo,
danke für die schnelle Antwort. Ich habe das Upgrade über apt-get upgrade durchgeführt.
Meine Items habe ich über Textdatei angelegt. Das liegt mir einfach besser. Was bedeutet Parameter unit=? Das verstehe ich nicht so ganz.

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Fehler nach Upgrade auf 4.0

Beitrag von udo1toni »

Du musst bei jedem UoM Item (also z.B. Number:Dimensionless) bei der Channel Definition noch die unit ergänzen, z.B.

Code: Alles auswählen

Number:Dimensionless Test "Mein Item [%d %%]" {channel="irgendwas", unit="%"}
unit bestimmt, wie der Wert im Item vorliegt, die Formatierung im Label bestimmt, wie der Wert in der Sitemap angezeigt wird. Nutzt Du auch die stateDescription als Teil der Textdefinition, gibt es dort das Feld pattern, das ist für die Darstellung überall zuständig (auch in der Sitemap, wenn das Label keine extra Formatierung enthält).
Die unit sollte zu der vom Channel gesendeten unit passen, also z.B. der Channel sendet °F, Du setzt die unit des Items auf K und das Label auf "[%.1f °C]", dann wird das Item den Wert vom Channel als Grad Fahrenheit angeliefert bekommen. Intern speichert es den Wert aber als Kelvin. In Deiner Anzeige schließlich steht der Wert als Grad Celsius.
Bisher war es so, dass die Werte der Persistence abhängig von der gewählten Einheit in der Anzeige waren, das führte dazu, dass die gesamte Historie unbrauchbar wurde, wenn man die Anzeigeeinheit angepasst hat. Mit dem zusätzlichen Parameter für den Status passiert das jetzt nicht mehr.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Gugu
Beiträge: 4
Registriert: 26. Jul 2023 16:56
Answers: 0

Re: Fehler nach Upgrade auf 4.0

Beitrag von Gugu »

Danke. Wäre es so in etwas richtig? Es funktioniert leider immer noch nicht.

Number Soll_TemperaturBadezimmerwand "SOLL Badezimmer [%.1f °C]" {channel="homematic:HmIPHEATING:3014F711A0001F9D8997981E:INT0000005:1#SET_POINT_TEMPERATURE, unit="%"}

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Fehler nach Upgrade auf 4.0

Beitrag von udo1toni »

Nein, das ist kein UoM Item, sondern ein normales Number Item.
Frage: bietet das Binding hier eventuell UoM an? Dann müsste das Item so aussehen:

Code: Alles auswählen

Number:Temperature Soll_TemperaturBadezimmerwand "SOLL Badezimmer [%.1f °C]" {channel="homematic:HmIPHEATING:3014F711A0001F9D8997981E:INT0000005:1#SET_POINT_TEMPERATURE", unit="°C"}
Beachte auch, dass channel und unit zwei Parameter sind, unit ist nicht Bestandteil des Channel Parameters (es fehlt bei Dir das schließende Anführungszeichen vor dem Komma).

EDIT: In vollständiger openHAB4-Manier:

Code: Alles auswählen

Number:Temperature Soll_TemperaturBadezimmerwand "SOLL Badezimmer" {channel="homematic:HmIPHEATING:3014F711A0001F9D8997981E:INT0000005:1#SET_POINT_TEMPERATURE", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Eventuell kannst Du den Rest des Labels statt vorne auch noch im Feld stateDescription eintragen, das habe ich bisher noch nicht ausprobiert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Gugu
Beiträge: 4
Registriert: 26. Jul 2023 16:56
Answers: 0

Re: Fehler nach Upgrade auf 4.0

Beitrag von Gugu »

Das weiß ich leider nicht. Das Item sieht so aus, wie ich es oben geschrieben habe. Es funktioniert leider mit Ihrem Code auch nicht. Was kann ich noch machen?

rbeudel
Beiträge: 225
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Fehler nach Upgrade auf 4.0

Beitrag von rbeudel »

Das Item sieht so aus, wie ich es oben geschrieben habe
Da steht als unit % und nicht °C
Viele Grüße,
Ralf


Debmatic und Openhab 4.1.0 in Proxmox 8 VM debian x86_64 auf Intel NUC mit influxdb und Grafana zur Visualisierung

AGH
Beiträge: 21
Registriert: 18. Okt 2019 17:44
Answers: 0

Re: Fehler nach Upgrade auf 4.0

Beitrag von AGH »

Moin,
ich habe das gleiche Problem mit Homematic Heizungsreglern:

Code: Alles auswählen

Can't convert type DecimalType with value '30.5' to FLOAT value with QuantityTypeConverter
Unter OH 3.4 funktionierte es noch
Mein Item sieht so aus:

Code: Alles auswählen

Number EG_Kueche_Therm1_SollTemp		"Solltemperatur  [%.1f °C]"				(gEG_Kueche, AllThermostatSetpoints)	{channel="homematic:HM-CC-RT-DN:3014F711A0001F58A992F80F:NEQ1010269:4#SET_TEMPERATURE"}
Alle Werte werden manuell in der Sitemap mittels "Setpoint" geändert. Es gibt keine Rule.

System Raspberry 4, Debian Buster, Java 17 (Original Repositorie Buster, kein Zulu).

Irgend eine Idee?

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Fehler nach Upgrade auf 4.0

Beitrag von udo1toni »

Im Zuge des Umstiegs auf openHAB4 wurde in vielen Addons UoM eingeführt.
Bitte prüfe die Dokumentation dahingehend.

Falls ein Channel UoM anbietet, wird dringend empfohlen, das Item ebenfalls als UoM Item anzulegen. In zukünftigen openHAB Versionen wird das Verknüpfen einfacher Number Items mit UoM Channels eventuell unterbunden (so interpretiere ich zumindest die Doku)
UoM ist bei manchen Addons wohl etwas hakelig.

Wichtig: Du musst unbedingt im Item den Parameter unit setzen, wenn es sich um ein UoM Item handelt. für bestehende UoM Items hat openHAB das beim Upgrade automatisiert (und dabei kann es auch zu Fehlern kommen... ist also immer einen Blick wert)
Weiterhin kann es gut sein, dass Du zwingend die Unit für die Anzeige manuell setzen musst, obwohl das eigentlich nicht notwendig sein sollte.
So sähge Dein Number Item als UoM Item aus:

Code: Alles auswählen

Number:Temperature EG_Kueche_Therm1_SollTemp "Solltemperatur [%.1f °C]" (gEG_Kueche, AllThermostatSetpoints) {channel="homematic:HM-CC-RT-DN:3014F711A0001F58A992F80F:NEQ1010269:4#SET_TEMPERATURE",unit="°C",stateDescription=""[pattern="%.1f °C"]}
Das Feld unit gibt vor, in welcher Einheit das Item den Wert hält (und z.B. auch persistiert). Die stateDiscription liefert die Metadaten für die Main UI (überall dort)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten