Seite 1 von 2
Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 09:43
von SaschaQ
Hallo zusammen,
ich möchte gerne den Temperaturwert meiner Netatmo Wetterstation auf einen KNX GA schreiben.
Folgendermaßen ist die aktuelle Konfiguration:
Things:
Code: Alles auswählen
Type number-control : th_au_ws_terrasse_isttemp "Außentemperatur Ist Temperatur Terrasse" [ ga="9.001:X/X/XX" ]
Items:
Code: Alles auswählen
Number au_wetterstation_netatmo_temperatur "Temperatur [%.1f °C]" <temperature> (gWetterstationNetatmo) { channel="netatmo:outdoor:XXXXXXXXXXXXXXXXXXXXX:temperature#value",channel="knx:device:bridge:generic:th_au_ws_terrasse_isttemp"}
Ich bekomme im OH Log immer den folgenden Fehler:
Code: Alles auswählen
2022-09-15 09:40:56.032 [INFO ] [g.knx.internal.dpt.KNXCoreTypeMapper] - Translator couldn't parse data for datapoint type '9.001' (KNXIllegalArgumentException).
2022-09-15 09:40:56.033 [WARN ] [.internal.handler.DeviceThingHandler] - Ignoring KNX bus data: couldn't transform to any Type (destination='X/X/XX', datapoint='command DP X/X/XX 'knx:device:bridge:generic', DPT 9.001, low priority', data='0x00')
Jemand eine Idee?
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 09:54
von udo1toni
Wie liefert Netatmo die Temperatur an? Ist das tatsächlich eine einfache (ohne Einheit) Zahl? Oder hast Du einfach einen UoM Channel mit einem nicht-UoM-Item gekoppelt? Das wird nicht funktionieren.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 11:49
von SaschaQ
AH okay, das war mein Fehler. Danke Dir.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 14:49
von udo1toni
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 15:14
von SaschaQ
Ich habe aber noch eine ähnliche Frage.
Ich möchte auch den Batterieladezustand meiner PV Batterie auf den Bus bringen. Ich bekomme in den Logs keine Fehler sehe aber das sich der Batterieladezustand im Log aktualisiert und seinen Wert ändert:
Code: Alles auswählen
2022-09-15 15:08:52.632 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE' changed from 5 % to 6 %
Mein ITEM:
Code: Alles auswählen
Number:Dimensionless solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE "Aktueller Ladezustand des Akkus" <batterylevel> (gSolaranlage) { channel="kostalinverter:XXXXXX:deviceLocalBatteryStageOfCharge",channel="knx:device:bridge:generic:th_au_pv_ladezustand_batterie"}
THING:
Code: Alles auswählen
Type number-control : th_au_pv_ladezustand_batterie "Ladezustand Batterie" [ ga="5.001:X/X/X" ]
Auf dem Bus sehe ich aber nicht, dass der Zustand geschrieben wird.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 15. Sep 2022 17:19
von udo1toni
Ja, gleiches Problem, UoM. Soweit ich das verstanden habe, ist das tatsächlich in Arbeit, ich habe aber bisher nicht mitbekommen, dass es auch schon in den aktuellen Snapshots ist. Im Zweifel wirst Du es nur indirekt erledigen können - also mit einer kleinen Rule, die auch nichts anderes macht, als die Zahl von einem Item ins andere Item zu schreiben.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 16. Sep 2022 10:00
von SaschaQ
Bei Number:Energy (Leistung der PV und Hausverbrauch) und wie oben beschrieben Number:Temperature funktioniert es nur aktuell bei dem Batterieladezustand (Number:Dimensionless) nicht. Welche Ansatz hättest du denn um das umzuwandeln? Habe das noch nicht gemacht.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 16. Sep 2022 10:02
von SaschaQ
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 16. Sep 2022 18:39
von udo1toni
Na, Du legst ein Number Item (ohne :Dimensionless) an, welches Du mit dem knx number-control Channel verlinkst, an den der Prozentwert gemeldet werden soll.
Und dann eine Winz-Rule:
Code: Alles auswählen
rule "update knx"
when
Item MyPercentItem changed // Das Item vom Typ Number:Dimensionless
then
if(newState instanceof Number)
MyknxItem.postUpdate((newState as Number).intValue)
end
Die Abfrage ist wichtig, weil das Item ja durchaus auc heinen ungültigen Wert enthalten könnte (NULL oder UNDEV) und wir wollen ja keine Fehler im log.
Re: Temperatur Netatmo auf KNX Bus schreiben
Verfasst: 18. Sep 2022 11:34
von SaschaQ
Danke dir, das habe ich jetzt so gemacht und ich sehe auch im Log:
Code: Alles auswählen
2022-09-18 11:27:54.417 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE' changed from NULL to 6 %
2022-09-18 11:27:57.505 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE_KNX' changed from NULL to 6
Der Wert kommt aber nicht auf dem Bus an, habe Openhab neu gestartet und auch Cache geleert. Im ETS Monitor sehe ich nichts.
Code: Alles auswählen
Thing:
Type number-control : th_au_pv_ladezustand_batterie "Ladezustand Batterie" [ ga="5.001:X/X/X" ]
Items:
Code: Alles auswählen
Number solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE_KNX "Aktueller Ladezustand des Akkus" <batterylevel> {channel="knx:device:bridge:generic:th_au_pv_ladezustand_batterie"}
Number:Dimensionless solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE "Aktueller Ladezustand des Akkus" <batterylevel> (gSolaranlage) { channel="kostalinverter:XXXXXXXX:deviceLocalBatteryStageOfCharge"}
Rule:
Code: Alles auswählen
rule "Batteriestatus KNX"
when
Item solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE changed
then
if(newState instanceof Number)
solaranlage_DEVICE_LOCAL_BATTERY_STATE_OF_CHARGE_KNX.postUpdate((newState as Number).intValue)
end