NEWS
OpenKNX Adapter funktioniert nicht mit ACK
-
Hallo zusammen,
ich habe zuhause KNX und auch ioBroker und wollte gerne beide über Skripte miteinander für verschiedene Steuerungsaufgaben verheiraten. Bspw. Philips Hue Lampen über KNX-Taster einschalten bzw. Szenen-Steuerung, die eben auch neben Licht und Raffstores auch TV-Geräte einschalten können soll.
Die Änderungen auf dem KNX-Bus bekomme ich von meinem Router auch nach OpenKNX geliefert und kann entsprechend auch darauf reagieren. Wenn ich allerdings vom OpenKNX-Adapter eine Änderung auf den KNX-Bus schicken will, muss ich dies über eine unbestätigte Änderung via setState machen, da anderenfalls gar nichts passiert.
Jetzt nutze ich aus Faulheit Blockly, aber hier wird immer JS-Code generiert, der bestätigte Änderungen generiert, was eben nicht verarbeitet wird.Vermutlich ist es ja kein Fehler in Blockly, sondern irgendwo bei mir. Kann mir da jemand weiterhelfen?
Test-Code von Blockly (umgebaut wegen ACK) wäre nun:
on({id: "openknx.0.Szenen.Multimedia.Szene_Wohnzimmer_TV"/*Szene Wohnzimmer TV*/, change: "any", ack: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('test'); setState("openknx.0.Beleuchtung.Schalten_(Ein_Aus__1_Bit).EG_-_Wohnzimmer_-_Deckenlampe_-_Schalten"/*EG - Wohnzimmer - Deckenlampe - Schalten*/, true, false); });Im ioBroker-Log stehen weder Warnungen noch Fehler.
-
Hallo zusammen,
ich habe zuhause KNX und auch ioBroker und wollte gerne beide über Skripte miteinander für verschiedene Steuerungsaufgaben verheiraten. Bspw. Philips Hue Lampen über KNX-Taster einschalten bzw. Szenen-Steuerung, die eben auch neben Licht und Raffstores auch TV-Geräte einschalten können soll.
Die Änderungen auf dem KNX-Bus bekomme ich von meinem Router auch nach OpenKNX geliefert und kann entsprechend auch darauf reagieren. Wenn ich allerdings vom OpenKNX-Adapter eine Änderung auf den KNX-Bus schicken will, muss ich dies über eine unbestätigte Änderung via setState machen, da anderenfalls gar nichts passiert.
Jetzt nutze ich aus Faulheit Blockly, aber hier wird immer JS-Code generiert, der bestätigte Änderungen generiert, was eben nicht verarbeitet wird.Vermutlich ist es ja kein Fehler in Blockly, sondern irgendwo bei mir. Kann mir da jemand weiterhelfen?
Test-Code von Blockly (umgebaut wegen ACK) wäre nun:
on({id: "openknx.0.Szenen.Multimedia.Szene_Wohnzimmer_TV"/*Szene Wohnzimmer TV*/, change: "any", ack: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('test'); setState("openknx.0.Beleuchtung.Schalten_(Ein_Aus__1_Bit).EG_-_Wohnzimmer_-_Deckenlampe_-_Schalten"/*EG - Wohnzimmer - Deckenlampe - Schalten*/, true, false); });Im ioBroker-Log stehen weder Warnungen noch Fehler.
@wolpertinger
setState() sendet mit ack = false (Block "steuere"). -
Hallo zusammen,
ich habe zuhause KNX und auch ioBroker und wollte gerne beide über Skripte miteinander für verschiedene Steuerungsaufgaben verheiraten. Bspw. Philips Hue Lampen über KNX-Taster einschalten bzw. Szenen-Steuerung, die eben auch neben Licht und Raffstores auch TV-Geräte einschalten können soll.
Die Änderungen auf dem KNX-Bus bekomme ich von meinem Router auch nach OpenKNX geliefert und kann entsprechend auch darauf reagieren. Wenn ich allerdings vom OpenKNX-Adapter eine Änderung auf den KNX-Bus schicken will, muss ich dies über eine unbestätigte Änderung via setState machen, da anderenfalls gar nichts passiert.
Jetzt nutze ich aus Faulheit Blockly, aber hier wird immer JS-Code generiert, der bestätigte Änderungen generiert, was eben nicht verarbeitet wird.Vermutlich ist es ja kein Fehler in Blockly, sondern irgendwo bei mir. Kann mir da jemand weiterhelfen?
Test-Code von Blockly (umgebaut wegen ACK) wäre nun:
on({id: "openknx.0.Szenen.Multimedia.Szene_Wohnzimmer_TV"/*Szene Wohnzimmer TV*/, change: "any", ack: true}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('test'); setState("openknx.0.Beleuchtung.Schalten_(Ein_Aus__1_Bit).EG_-_Wohnzimmer_-_Deckenlampe_-_Schalten"/*EG - Wohnzimmer - Deckenlampe - Schalten*/, true, false); });Im ioBroker-Log stehen weder Warnungen noch Fehler.
@wolpertinger sagte in OpenKNX Adapter funktioniert nicht mit ACK:
Wenn ich allerdings vom OpenKNX-Adapter eine Änderung auf den KNX-Bus schicken will, muss ich dies über eine unbestätigte Änderung via setState machen, da anderenfalls gar nichts passiert.
Ja, das ist ja auch das normale ioBroker-Verhalten und so arbeiten alle Adapter: https://www.youtube.com/watch?v=p5FyeifYUnw
Jetzt kommt es darauf an, worauf Du in Blockly reagieren willst:
- Deine (eventuell noch nicht ausgeführte) Ansteuerung - dann ack: false
- Auf Änderungen, welche von Adapter-Seite wirklich durchgeführt wurden - dann ack: true
-
@wolpertinger
setState() sendet mit ack = false (Block "steuere").@paul53 Ok, danke. Also einfach den falschen Blockly-Block erwischt für mein Vorhaben.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden