OH3 KNX-Binding schreibt keine KNX-Szenen auf den Bus
Verfasst: 19. Nov 2021 11:59
Hi zusammen,
ich migriere gerade meine OH2 Installation auf OH3. Gleichzeitig implementiere ich meine bestehenden DSL Regeln neu in JavaScript. Beim Schreiben von KNX-Szenen transportiert das KNX Bindung meine Skript Befehle aber nicht auf den Bus, währende openHAB allerdings Veränderungen der KNX Szenen vom Bus tadellos empfängt. Ich habe folgende Konfiguration:
KNX Thing mit einem Szenen Channel Typ Number:
... daran hängt ein Item Typ Number (... hmm, warum wir der Screenshot so klein angezeigt, naja egal...)
wenn ich die Szenen an einem Taster (also ohne openHAB) durchschalte, kann ich in den openHAB Logs Folgendes sehen:
Mit folgendem Code-Snippet will ich die Szenen aus einem JavaScript heraus ändern:
Im Ergebnis sehe ich zwar folgende Ausgabe in der events.log:
... aber wenn ich gleichzeitig in der ETS den Gruppenmonitor laufen lasse sehe ich, dass openHAB keinen Befehl auf den KNX Bus schreibt. Andere KNX Befehle funktionieren problemlos, nur das Schreiben der Szene will irgendwie nicht klappen.
Auffällig ist natürlich, dass openHAB die von KNX gesendeten Kommandos im Log als Float darstellt, die von openHAB selbst ausgesendeten Ziffern allerdings als Integer. Ich bin mir nicht sicher, ob hier vielleicht das Problem liegt, und das KNX-Bus Gateway den Befehl aufgrund eines falschen Formats direkt ablehnt. Ein erzwungenes casten auf Float im Code ändert daran übrigens nichts. Mit folgendem Code
bleibt die Ausgabe in den Logs genau gleich.
Unter openHAB 2.5 hat mit folgender Regel in DSL alles reibungslos funktioniert, an der Konfiguration im Bus habe ich nichts geändert:
Hat irgendjemand eine Idee? Wir schreibt ihr KNX Szenen in OpenHAB3 auf den Bus?
Gruß,
Kuczerek
ich migriere gerade meine OH2 Installation auf OH3. Gleichzeitig implementiere ich meine bestehenden DSL Regeln neu in JavaScript. Beim Schreiben von KNX-Szenen transportiert das KNX Bindung meine Skript Befehle aber nicht auf den Bus, währende openHAB allerdings Veränderungen der KNX Szenen vom Bus tadellos empfängt. Ich habe folgende Konfiguration:
KNX Thing mit einem Szenen Channel Typ Number:
... daran hängt ein Item Typ Number (... hmm, warum wir der Screenshot so klein angezeigt, naja egal...)
wenn ich die Szenen an einem Taster (also ohne openHAB) durchschalte, kann ich in den openHAB Logs Folgendes sehen:
Code: Alles auswählen
Item 'KNXLichtEGWohnzimmerSzene' changed from 1.0 to 2.0
Item 'KNXLichtEGWohnzimmerSzene' changed from 2.0 to 5.0
...
Code: Alles auswählen
events.postUpdate("KNXLichtEGWohnzimmerSzene", 4.0);
Code: Alles auswählen
Item 'KNXLichtEGWohnzimmerSzene' changed from 5.0 to 4
Auffällig ist natürlich, dass openHAB die von KNX gesendeten Kommandos im Log als Float darstellt, die von openHAB selbst ausgesendeten Ziffern allerdings als Integer. Ich bin mir nicht sicher, ob hier vielleicht das Problem liegt, und das KNX-Bus Gateway den Befehl aufgrund eines falschen Formats direkt ablehnt. Ein erzwungenes casten auf Float im Code ändert daran übrigens nichts. Mit folgendem Code
Code: Alles auswählen
events.postUpdate("KNXLichtEGWohnzimmerSzene", parseFloat("4.0"));
Unter openHAB 2.5 hat mit folgender Regel in DSL alles reibungslos funktioniert, an der Konfiguration im Bus habe ich nichts geändert:
Code: Alles auswählen
rule "Wohnzimmer Szene Essen"
when
Item KNXLichtEGWohnzimmerSzene received command
then
if (receivedCommand == ON) {
KNXLichtEGWohnzimmerSzene.sendCommand(0)
}
else if (receivedCommand == OFF) {
KNXLichtEGWohnzimmerSzene.sendCommand(5)
}
end
Gruß,
Kuczerek