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

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
3.JPG
4.JPG

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