Unterschiedliche Source-Adressen KNX Telegramme Busmonitor vs. Wiregate-Script
Verfasst: Mi Jan 01, 2020 11:10 am
Hallo und einen wunderschönen 1. Januar, 
beim Migrieren meiner Scripts (was übrigens ziemlich reibungslos geklappt hat, bravo Elabnet!) bin ich auf die folgende Merkwürdigkeiten gestoßen.
Situation:
- Script A sendet ein Telegramm auf den Bus und beendet sich danach.
knx_write($light->{controlGA},1,'1.001');
- Script B reagiert auf dieses Telegram, setzt einige Statusvariablen und beendet sich danach.
Hierbei schaut Script B u.a. nach der Source-Adresse um zu schauen ob das Telegramm durch den Timberwolf ausgelöst wurde oder z.B. händisch durch einen Schalter. Zu Wiregate-Zeiten war diese Addresse 1.1.254.
Problem:
Sah im KNX Busmonitor dass die neue Adresse 1.1.171 ist:

Also Script B angepasst, das wollte aber immer noch nicht.
Debugging zeigt dass die Source-Addresse im Telegramm auch nicht 1.1.171, sondern 0.0.0 ist:
Was ist hier los?
Wenn Script B auf 0.0.0 filtert funktionierts, aber ist doch schon komisch dass der Busmonitor und das Script unterschiedliche Werte anzeigen.
Kann ich davon ausgehen dass "interne" knx_writes (also von einem Script zum anderen innerhalb des wiregate Containers) immer 0.0.0 als Source haben?
Vielen Dank für die Hilfe und viele Grüße
Koen

beim Migrieren meiner Scripts (was übrigens ziemlich reibungslos geklappt hat, bravo Elabnet!) bin ich auf die folgende Merkwürdigkeiten gestoßen.
Situation:
- Script A sendet ein Telegramm auf den Bus und beendet sich danach.
knx_write($light->{controlGA},1,'1.001');
- Script B reagiert auf dieses Telegram, setzt einige Statusvariablen und beendet sich danach.
Hierbei schaut Script B u.a. nach der Source-Adresse um zu schauen ob das Telegramm durch den Timberwolf ausgelöst wurde oder z.B. händisch durch einen Schalter. Zu Wiregate-Zeiten war diese Addresse 1.1.254.
Problem:
Sah im KNX Busmonitor dass die neue Adresse 1.1.171 ist:

Also Script B angepasst, das wollte aber immer noch nicht.
Debugging zeigt dass die Source-Addresse im Telegramm auch nicht 1.1.171, sondern 0.0.0 ist:
2020-01-01T10:37:49.243137218+01:00 PLUGIN setSwitchingStatusLight.pl msg field: class
2020-01-01T10:37:49.243153683+01:00 PLUGIN setSwitchingStatusLight.pl msg field: low
2020-01-01T10:37:49.243198555+01:00 PLUGIN setSwitchingStatusLight.pl msg field: dst
2020-01-01T10:37:49.243215413+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 1/0/3
2020-01-01T10:37:49.243254067+01:00 PLUGIN setSwitchingStatusLight.pl msg field: rcount
2020-01-01T10:37:49.243282491+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 7
2020-01-01T10:37:49.243298607+01:00 PLUGIN setSwitchingStatusLight.pl msg field: buf
2020-01-01T10:37:49.243316297+01:00 PLUGIN setSwitchingStatusLight.pl msg field: bc00000803f1008138
2020-01-01T10:37:49.243356870+01:00 PLUGIN setSwitchingStatusLight.pl msg field: sequence
2020-01-01T10:37:49.243373041+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 0
2020-01-01T10:37:49.243416475+01:00 PLUGIN setSwitchingStatusLight.pl msg field: src
2020-01-01T10:37:49.243432433+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 0.0.0
2020-01-01T10:37:49.243475585+01:00 PLUGIN setSwitchingStatusLight.pl msg field: tpdu_type
2020-01-01T10:37:49.243491412+01:00 PLUGIN setSwitchingStatusLight.pl msg field: T_DATA_XXX_REQ
2020-01-01T10:37:49.243507597+01:00 PLUGIN setSwitchingStatusLight.pl msg field: repeated
2020-01-01T10:37:49.243534109+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 0
2020-01-01T10:37:49.243580245+01:00 PLUGIN setSwitchingStatusLight.pl msg field: apci
2020-01-01T10:37:49.243596820+01:00 PLUGIN setSwitchingStatusLight.pl msg field: A_GroupValue_Write
2020-01-01T10:37:49.243612979+01:00 PLUGIN setSwitchingStatusLight.pl msg field: data
2020-01-01T10:37:49.243628723+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 01
2020-01-01T10:37:49.243644645+01:00 PLUGIN setSwitchingStatusLight.pl msg field: datalen
2020-01-01T10:37:49.243660364+01:00 PLUGIN setSwitchingStatusLight.pl msg field: 1
2020-01-01T10:37:49.243706091+01:00 PLUGIN setSwitchingStatusLight.pl msg field: value
2020-01-01T10:37:49.243722374+01:00 PLUGIN setSwitchingStatusLight.pl msg field:
Was ist hier los?
Wenn Script B auf 0.0.0 filtert funktionierts, aber ist doch schon komisch dass der Busmonitor und das Script unterschiedliche Werte anzeigen.
Kann ich davon ausgehen dass "interne" knx_writes (also von einem Script zum anderen innerhalb des wiregate Containers) immer 0.0.0 als Source haben?
Vielen Dank für die Hilfe und viele Grüße
Koen