NEWS
Test Adapter OpenKNX 0.6.x
-
Eine banale Frage, aber moentan nutze ich den "normalen" KNX - Adapter. Nun würde ich gerne auf openKNX umsteigen.
Nun habe ich viele Datenpunkte (Objekte) die in eine InfluxDB geschrieben werden. Zudem werden viele Datenpunkte in Script´s verwendet, in der VIS, im iqontrol-Adapter verwendet.Gibt es eine "Deutsche" Anleitung, wie man das am besten auf einen Schwung umstellen kann? Denn einzeln alles auf openKNX "umzuklicken" und zudem 2 KNX Adapter laufen zu lassen, wäre eine Katastrophe.
-
@killroy2 Nochmal danke fürs Drüberschauen. Mit einem frame delay von 200 ms lief es zuletzt mehrere Tage stabil - wenn auch langsam.
Die Version 0.4.0 habe ich versucht zu testen. Leider gibt es einen restart loop und der Adapter bleibt rot:
openknx.0 2022-12-16 21:58:00.969 silly States system redis pmessage system.adapter.openknx.0.logLevel/system.adapter.openknx.0.logLevel:{"val":"silly","ack":true,"ts":1671224280966,"q":0,"from":"system.adapter.openknx.0","lc":1669449235187} openknx.0 2022-12-16 21:58:00.967 warn Terminated (UNCAUGHT_EXCEPTION): Without reason openknx.0 2022-12-16 21:58:00.966 debug Plugin sentry destroyed openknx.0 2022-12-16 21:58:00.966 info terminating openknx.0 2022-12-16 21:58:00.962 error Cannot read properties of undefined (reading 'init') openknx.0 2022-12-16 21:58:00.962 error TypeError: Cannot read properties of undefined (reading 'init') at openknx.onReady (/opt/iobroker/node_modules/iobroker.openknx/main.js:82:33) at openknx.emit (node:events:513:28) at openknx.emit (node:domain:489:12) at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9132:26 openknx.0 2022-12-16 21:58:00.917 error unhandled promise rejection: Cannot read properties of undefined (reading 'init') openknx.0 2022-12-16 21:58:00.917 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). openknx.0 2022-12-16 21:58:00.908 info starting. Version 0.4.0 (non-npm: iobroker-community-adapters/ioBroker.openknx) in /opt/iobroker/node_modules/iobroker.openknx, node: v16.18.1, js-controller: 4.0.23 openknx.0 2022-12-16 21:58:00.782 debug Plugin sentry Initialize Plugin (enabled=true) openknx.0 2022-12-16 21:57:29.786 silly States system redis pmessage system.adapter.openknx.0.logLevel/system.adapter.openknx.0.logLevel:{"val":"silly","ack":true,"ts":1671224249766,"q":0,"from":"system.adapter.openknx.0","lc":1669449235187} openknx.0 2022-12-16 21:57:29.769 warn Terminated (UNCAUGHT_EXCEPTION): Without reason openknx.0 2022-12-16 21:57:29.769 debug Plugin sentry destroyed openknx.0 2022-12-16 21:57:29.768 info terminating openknx.0 2022-12-16 21:57:29.761 error Cannot read properties of undefined (reading 'init') openknx.0 2022-12-16 21:57:29.761 error TypeError: Cannot read properties of undefined (reading 'init') at openknx.onReady (/opt/iobroker/node_modules/iobroker.openknx/main.js:82:33) at openknx.emit (node:events:513:28) at openknx.emit (node:domain:489:12) at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9132:26 openknx.0 2022-12-16 21:57:29.716 error unhandled promise rejection: Cannot read properties of undefined (reading 'init') openknx.0 2022-12-16 21:57:29.716 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). openknx.0 2022-12-16 21:57:29.707 info starting. Version 0.4.0 (non-npm: iobroker-community-adapters/ioBroker.openknx) in /opt/iobroker/node_modules/iobroker.openknx, node: v16.18.1, js-controller: 4.0.23 openknx.0 2022-12-16 21:57:29.597 debug Plugin sentry Initialize Plugin (enabled=true) openknx.0 2022-12-16 21:57:29.546 silly statesDB connected openknx.0 2022-12-16 21:57:29.545 debug States connected to redis: 127.0.0.1:9000 openknx.0 2022-12-16 21:57:29.489 debug States create User PubSub Client openknx.0 2022-12-16 21:57:29.489 debug States create System PubSub Client openknx.0 2022-12-16 21:57:29.482 debug Redis States: Use Redis connection: 127.0.0.1:9000 openknx.0 2022-12-16 21:57:29.482 silly objectDB connected openknx.0 2022-12-16 21:57:29.480 silly redis psubscribe cfg.o.enum.* openknx.0 2022-12-16 21:57:29.472 silly redis psubscribe cfg.o.system.user.* openknx.0 2022-12-16 21:57:29.471 debug Objects connected to redis: 127.0.0.1:9001 openknx.0 2022-12-16 21:57:29.470 debug Objects client initialize lua scripts openknx.0 2022-12-16 21:57:29.449 debug Objects create User PubSub Client openknx.0 2022-12-16 21:57:29.448 debug Objects create System PubSub Client openknx.0 2022-12-16 21:57:29.448 debug Objects client ready ... initialize now openknx.0 2022-12-16 21:57:29.434 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
-
Ich finde den Adapter auch toll und rennt soweit. Was mich verwundert hat, überall sehe ich, u d so kenne ich es eigentlich auch, muss die Physical KNX adress angegeben werden. Bei mir wird aber dieset Punkt nicht angezeigt. Hatte mehrere Versionen versucht aber bei keiner kam hier eine Eingabemöglichkeit.
-
@killroy2 habe heute das update von 0.3.2 auf 0.4.0 durchgeführt. Leider startet danach der Adapter nicht mehr. Hier mal der debug log, ich hoffe das es hilfreich ist.
2022-12-17 17:14:12.014 - info: host.raspberrypi "system.adapter.openknx.0" enabled 2022-12-17 17:14:12.257 - info: host.raspberrypi instance system.adapter.openknx.0 started with pid 10351 2022-12-17 17:14:13.881 - debug: openknx.0 (10351) Redis Objects: Use Redis connection: 127.0.0.1:9001 2022-12-17 17:14:13.923 - debug: openknx.0 (10351) Objects client ready ... initialize now 2022-12-17 17:14:13.926 - debug: openknx.0 (10351) Objects create System PubSub Client 2022-12-17 17:14:13.928 - debug: openknx.0 (10351) Objects create User PubSub Client 2022-12-17 17:14:13.964 - debug: openknx.0 (10351) Objects client initialize lua scripts 2022-12-17 17:14:13.972 - debug: openknx.0 (10351) Objects connected to redis: 127.0.0.1:9001 2022-12-17 17:14:14.000 - debug: openknx.0 (10351) Redis States: Use Redis connection: 127.0.0.1:9000 2022-12-17 17:14:14.013 - debug: openknx.0 (10351) States create System PubSub Client 2022-12-17 17:14:14.015 - debug: openknx.0 (10351) States create User PubSub Client 2022-12-17 17:14:14.035 - debug: openknx.0 (10351) States connected to redis: 127.0.0.1:9000 2022-12-17 17:14:14.124 - debug: openknx.0 (10351) Plugin sentry Initialize Plugin (enabled=true) 2022-12-17 17:14:14.533 - info: openknx.0 (10351) starting. Version 0.4.0 in /opt/iobroker/node_modules/iobroker.openknx, node: v16.18.1, js-controller: 4.0.24 2022-12-17 17:14:14.571 - error: openknx.0 (10351) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2022-12-17 17:14:14.572 - error: openknx.0 (10351) unhandled promise rejection: Cannot read properties of undefined (reading 'init') 2022-12-17 17:14:14.797 - error: openknx.0 (10351) TypeError: Cannot read properties of undefined (reading 'init') at openknx.onReady (/opt/iobroker/node_modules/iobroker.openknx/main.js:82:33) at openknx.emit (node:events:513:28) at openknx.emit (node:domain:489:12) at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9139:26 2022-12-17 17:14:14.798 - error: openknx.0 (10351) Cannot read properties of undefined (reading 'init') 2022-12-17 17:14:14.821 - info: openknx.0 (10351) terminating 2022-12-17 17:14:14.823 - debug: openknx.0 (10351) Plugin sentry destroyed 2022-12-17 17:14:14.824 - warn: openknx.0 (10351) Terminated (UNCAUGHT_EXCEPTION): Without reason 2022-12-17 17:14:15.412 - error: host.raspberrypi Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: 2022-12-17 17:14:15.412 - error: host.raspberrypi Caught by controller[1]: TypeError: Cannot read properties of undefined (reading 'init') 2022-12-17 17:14:15.412 - error: host.raspberrypi Caught by controller[1]: at openknx.onReady (/opt/iobroker/node_modules/iobroker.openknx/main.js:82:33) 2022-12-17 17:14:15.413 - error: host.raspberrypi Caught by controller[1]: at openknx.emit (node:events:513:28) 2022-12-17 17:14:15.413 - error: host.raspberrypi Caught by controller[1]: at openknx.emit (node:domain:489:12) 2022-12-17 17:14:15.413 - error: host.raspberrypi Caught by controller[1]: at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9139:26 2022-12-17 17:14:15.414 - error: host.raspberrypi instance system.adapter.openknx.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2022-12-17 17:14:15.414 - info: host.raspberrypi Restart adapter system.adapter.openknx.0 because enabled 2022-12-17 17:14:39.593 - info: host.raspberrypi "system.adapter.openknx.0" disabled 2022-12-17 17:14:47.151 - debug: openknx.0 (10366) Redis Objects: Use Redis connection: 127.0.0.1:9001 2022-12-17 17:14:47.194 - debug: openknx.0 (10366) Objects client ready ... initialize now 2022-12-17 17:14:47.197 - debug: openknx.0 (10366) Objects create System PubSub Client 2022-12-17 17:14:47.198 - debug: openknx.0 (10366) Objects create User PubSub Client 2022-12-17 17:14:47.267 - debug: openknx.0 (10366) Objects client initialize lua scripts 2022-12-17 17:14:47.297 - debug: openknx.0 (10366) Objects connected to redis: 127.0.0.1:9001 2022-12-17 17:14:47.327 - debug: openknx.0 (10366) Redis States: Use Redis connection: 127.0.0.1:9000 2022-12-17 17:14:47.340 - debug: openknx.0 (10366) States create System PubSub Client 2022-12-17 17:14:47.342 - debug: openknx.0 (10366) States create User PubSub Client 2022-12-17 17:14:47.361 - debug: openknx.0 (10366) States connected to redis: 127.0.0.1:9000 2022-12-17 17:14:47.452 - debug: openknx.0 (10366) Plugin sentry Initialize Plugin (enabled=true) 2022-12-17 17:14:47.676 - error: openknx.0 (10366) adapter disabled 2022-12-17 17:14:47.687 - debug: openknx.0 (10366) Plugin sentry destroyed 2022-12-17 17:14:47.689 - warn: openknx.0 (10366) Terminated (NO_ADAPTER_CONFIG_FOUND): Without reason 2022-12-17 17:14:48.278 - error: host.raspberrypi instance system.adapter.openknx.0 terminated with code 3 (NO_ADAPTER_CONFIG_FOUND) 2022-12-17 17:14:48.279 - info: host.raspberrypi Do not restart adapter system.adapter.openknx.0 because disabled or deleted
Habe nun wieder die Version 0.3.2 installiert, damit ist alles bestens.
Gruß Chris
-
@quorle mit etwas Basteln sollte mit vertretbaren Aufwand gehen:
die bestehenden Tabellen ausgeben lassen und damit eine Liste erstellen die dann alle Tabellen kopiert- login via SSH to your IOBroker and run command influx
- use iobroker (or your specific database listed via command show databases)
- list entries with: show measurements
- copy tables with command: select * into "entry_new" from "entry_old";
where entry_new points to the old adapter object path and entry_new the openknx adapter instance
Und dann den openknx IOB Objektbaum exportieren und mit einem Editor überall setzen:
- set influx enabled for new object entry_new
-
@chrischros @markus84 danke, ich hab jetzt eine 0.4.1 gebaut
-
@killroy2 Danke, Adapter startet nun und läuft soweit.
-
Hat jemand Probleme mit dem Szenendatenpunkt? Dieser ist ja als „Gemischt“ deklariert. Schicke ich nun zum Beispiel die „3“ als Zahl, erscheint am Bus nur „0“.
Oder mache ich etwas falsch? -
@killroy2 0.4.2 funktioniert bei mir, soweit ich das beurteilen kann! Danke für Dein unermüdliches Wirken!
-
@quorle Was wird denn im Datenpunkt angezeigt, wenn du die Szene vom Bus aus aktivierst? Ich glaube nur die Zahl zu schicken geht nicht.
-
@killroy2 said in Test Adapter OpenKNX 0.2.x:
@chrischros @markus84 danke, ich hab jetzt eine 0.4.1 gebaut
Läuft auch bei mir bis jetzt fehlerfrei
-
@lessthanmore Also wenn ich die z.B. die Nummer 50 vom ioB auf den Bus sende kommt folgendes (siehe Bild)
Schalte ich vom Bus aus die Szene 50, steht folgendes im iob-Objekt:
{"save_recall":"0","scenenumber":50}
Beim knx.0 Adapter musste man lediglich eine Zahl schicken.
Edit:
Gerade heraus gefunden, wenn man{"save_recall":"0","scenenumber":51}
vom IOB zum Bus schickt, bekommt man die Szene geschaltet.
Heißt ich muss meine Szenenprogramme alle umschreiben
-
Ich habe jetzt Version 0.4 herausgebracht. Die Änderungen sind:
- feature: support for Free and Two Level Group Address Style in addition to the existing Three Level support #320
- feature: map knx datapoint type enconding to object common.states #313
Dh man kann jetzt die Enums, die KNX definiert, direkt im IOB nutzen.
Werte stehen im Objekt selber:
"states": {
"0": "Up",
"1": "Down"
}
-
@killroy2 seit ich die Version 0.4.4 verwende bekomme ich im Log sehr viele Einträge mit folgendem oder ähnlichem Wortlaut:
2022-12-23 07:15:15.657 - [32minfo[39m: openknx.0 (3559) State value to set for "openknx.0.Schalten.Schalten.EG_-_Gäste_WC_-_Licht_-_Schalten" has to be type "boolean" but received type "number" 2022-12-23 07:15:15.798 - [32minfo[39m: openknx.0 (3559) State value to set for "openknx.0.Schalten.Status_Schalten.EG_-_Gäste_WC_-_Licht_-_Status_Schalten" has to be type "boolean" but received type "number" 2022-12-23 07:15:16.791 - [32minfo[39m: openknx.0 (3559) State value to set for "openknx.0.Heizung.Hargassner_Nano_PK.Pumpe_HK1" has to be type "boolean" but received type "number" 2022-12-23 07:15:16.863 - [32minfo[39m: openknx.0 (3559) State value to set for "openknx.0.Heizung.Hargassner_Nano_PK.Mischer_Auf_HK1" has to be type "boolean" but received type "number"
Hängt das eventuell mit dem neuen Feature Enums zusammen? Mit der vorherigen Version 0.3.2 hatte ich diesbezüglich nicht solche Meldungen im Log.
Gruß Chris
-
@killroy2 Macht es vielleicht Sinn, da der Adapter nahezu fehlerfrei funktioniert, den Adapter offiziell zu Version 1 zu machen? Wird damit für "Neulinge" deutlicher, dass es sich hierbei nicht mehr um ein Alpha- bzw. Betastadium handelt?
-
@ChrisChros
Habe das selbe Problem. Zudem sind alle Logikwerte nun als "Zahl" im State deklariert. Händisch müsste man sämtlichen Objekte für "Logikwerte" von Zahl auf Logikwert umstellen.
Müsste gefixt werden, da kein Script damit klar kommt. -
@chrischros
Ja richtig, die Spec denfiniert einen der vielen B1 Typen als DPT_Bool. Ich werde in der nächsten Version eine Einstellung anbieten wo jeder selber 1 Bit Datentypen als boolean einstellen kann. -
Neues Update auf Version 0.5 ist jetzt heraußen.
-Neue Datentypen sind jetzt per default auf bool gestellt, per Einstellung im Import kann es als enum number angeleget werden.
-Beim Autoread nach Neustart hatte ich unterwünscht ausgelöste Aktionen. Das lag einerseits an der ETS Konfiguration wo Trigger-Signale ein KO mit R Flag hatten.
Der Adapter hat andererseits ACK Flags generiert, wo keine sein sollten. Das habe ich mit dem Update korrigiert. -
@killroy2 Danke für das Update.
Ich bekomme folgende Meldungen nun im Log angezeigt:GroupValue_Write confirmation false received for 4/5/6 ....
was hat es damit auf sich?
-
@killroy2 Hallo! Habe gestern Vormittag die 0.5.0 installiert. In meiner Anlage läuft alles soweit!
Vielen Dank für Deine Arbeit!
Ich wünsche Dir und allen, die hier mitlesen ein gesundes, produktives und erfolgreiches Jahr 2023!
Hans