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