NEWS
Test Adapter OpenKNX 0.6.x
-
@killroy2
mir ist heute noch etwas komisches aufgefallen, keine Ahnung ob es wirklich mit deinem Adapter in Verbindung steht.
Durch eine Javascripts lasse ich mir Daten erzeugen die ich dann mit Hilfe von blockly und dem "binde" Befehl an eine KNX Adresse schicken lasse.
Das ganze wird als String übertragen als 4 byte DPT16. Der String wird auch geschrieben und ich kann im Gruppenmonitor der ETS auch den Wert lesen. Allerdings wird dieser Wert mehrmals nacheinander geschrieben obwohl ich ihn händisch eingegeben habe.
Insgesamt wird der Wert für ca. 7 sekunden geschrieben. Das ist mir auch bei anderen Werten aufgefallen die nicht durch ein Javascript erzeugt wurden.
Hast du eventuell eine Idee woran das liegen könnte? -
@chrischros Bei dem connected kannst du den Adapter in Debug setzen und die logs davor zeigen. Passiert das immer oder nur nach einem Neustart
Genau hier das gleiche kannst du im debug mode schauen ob nur ein sendDatagram passiert oder es mehrmals passiert -
@tombox bei dem reconnect war im Log davor nix weiter gewesen außer die übertragenen GAs. Ich habe jetzt mal der Senderate auf 25 runtergesetzt, seit dem sieht es ganz gut aus.
Passiert ist das ganze während dem Betrieb, als kein Neustart oder so von dem Adapter / ioBroker.
-
@tombox und hier noch der Auszug aus dem Log bezüglich des mehrmaligen sendens.
zuerst habe ich eine "5" schrieben lassen:2021-12-30 20:37:18.240 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.241 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:18.241 (sendDatagram): >>>>>>> successfully sent seqnum: 736 2021-12-30 20:37:18.242 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.242 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.243 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.243 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.244 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.244 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.245 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.245 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.246 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.246 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.247 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.247 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.247 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.248 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.248 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.249 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.249 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.250 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.250 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:18.251 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "5" from openknx.0.Heizung.Photovoltaik.Autarkie
anschließend dann noch eine "50":
2021-12-30 20:37:34.867 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.868 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.868 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.869 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.869 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.869 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.870 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.870 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.870 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.871 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.871 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.871 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.872 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.872 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.881 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.881 (sendDatagram): >>>>>>> successfully sent seqnum: 1051 2021-12-30 20:37:34.911 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.911 Inbound message: 06100421000a04331b00 2021-12-30 20:37:34.912 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.912 ===== datagram 27 acknowledged by IP router 2021-12-30 20:37:34.912 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.912 (idle): zzzz... 2021-12-30 20:37:34.940 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.940 (sendDatagram): >>>>>>> successfully sent seqnum: 1052 2021-12-30 20:37:34.940 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.940 Inbound message: 06100421000a04331c00 2021-12-30 20:37:34.941 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.941 ===== datagram 28 acknowledged by IP router 2021-12-30 20:37:34.941 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.941 (idle): zzzz... 2021-12-30 20:37:34.950 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.951 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.952 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.952 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.953 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.954 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.954 - debug: openknx.0 (4520) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 20:37:34.965 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.965 (sendDatagram): >>>>>>> successfully sent seqnum: 1053 2021-12-30 20:37:34.968 - debug: openknx.0 (4520) [debug] 2021-12-30 19:37:34.968 Inbound message: 06100421000a04331d00
-
@chrischros dann liegt es am skript dass der wert zu oft geschrieben wird. kannst ja mal nur Änderung aktivieren
-
@tombox so habe das ganze mal mit "nur Änderungen" getestet und bekomme das gleiche Ergebnis.
Bin mir auch nicht sicher ob es wirklich am Skript liegt, denn ich ändere den Wert des Objekts den das Skript erzeugt. Somit sollte das Skript garnicht aktiv sein. -
@chrischros Du kannst ja den Wert auch direkt unter Objekte setzen dann sollte es nicht passieren
-
@tombox habe ich ja gemacht. Ich bin direkt unter Objekte / Javascript / ... und habe dort den Wert geändert.
-
@chrischros ich meine eigentlich openknx.0.Heizung.Photovoltaik.Autarkie
-
@tombox
Da wird nix geschrieben, da sehe ich nichts im Gruppenmonitor von der ETS.
Flags an der GA sind gesetzt, sogar zeitweise alle mal gesetzt, aber leider ohne erfolg.
Die Werte werden aber aktualisiert wenn sie sich ändern. Aber über den ioBroker kann ich die in den Objekten nicht ändern.Sorry falsch. kann doch über die openKNX Objekte schreiben. Mache gleich noch mal einen Log wie es dann aussieht.
Im Gruppenmonitor wird der Wert nur einmal geschrieben.Wenn du Adapter die irgendein Gerät auslesen das nicht auf dem KNX Bus ist, wie bekommst du die Werte dann auf den BUS?
Hier noch der Auszug aus dem Log.
2021-12-30 22:43:28.339 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.339 *** deferring inbound_TUNNELING_REQUEST_L_Data.ind until transition sendDatagram => idle 2021-12-30 22:43:28.340 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.340 (sendDatagram): >>>>>>> successfully sent seqnum: 270 2021-12-30 22:43:28.341 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.340 Inbound message: 06100421000a04730e00 2021-12-30 22:43:28.341 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.341 ===== datagram 14 acknowledged by IP router 2021-12-30 22:43:28.341 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.341 (idle): zzzz... 2021-12-30 22:43:28.351 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.351 (idle): zzzz... 2021-12-30 22:43:28.352 - debug: openknx.0 (5488) Inbound GroupValue_Write 4/4/19 val: 0 dpt: DPT14 to Object: openknx.0.Heizung.Hargassner_Nano_PK.Temperatur_Boiler_1 2021-12-30 22:43:28.355 - debug: openknx.0 (5488) Outbound GroupValue_Write to 4/6/7 value "50" from openknx.0.Heizung.Photovoltaik.Autarkie 2021-12-30 22:43:28.367 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.367 (sendDatagram): >>>>>>> successfully sent seqnum: 271 2021-12-30 22:43:28.400 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.400 Inbound message: 061004200016047381002900bce011141806020040ff 2021-12-30 22:43:28.400 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.400 *** deferring inbound_TUNNELING_REQUEST_L_Data.ind until transition sendTunnReq_waitACK => idle 2021-12-30 22:43:28.401 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.401 Inbound message: 06100421000a04730f00 2021-12-30 22:43:28.401 - debug: openknx.0 (5488) [debug] 2021-12-30 21:43:28.401 ===== datagram 15 acknowledged by IP router
Auch wenn ich den Wert dann wieder zurück auf "0" schreibe wird nur einmal der Befehl raus gegeben.
-
@chrischros kannst auch das skript mir per pn schicken
-
release 0.1.13 ist verfügbar
-
@killroy2 Vielen Dank für den Adapter! Habe mittlerweile ohne größere Probleme alles auf openknx umgestellt.
Gruß
Hans -
nochmal zurück zur Problematik mit den DPTs (Datenpunkttpyen).
Aktueller Stand:
- Ältere KNX-Projekte (vor ETS5) können mit openknx zur Zeit nicht importiert werden. Das liegt daran, dass erst seit ETS5 DPT den Gruppenadressen zugeordnet werden (können, müssen).
- Ältere KNX-Projekte laufen aber natürlich weiterhin problemlos, KNX und ETS ist weitgehend abwärtskompatibel. ETS4 (und älter!) kann auch problemlos in ETS5 konvertiert werden und dort weiterbenutzt werden. Es fehlen dann halt die DTP.
- fehlende DPT sind per definitionem (KNX) somit zwar ärgerlich, aber durchaus zulässig.
Was bedeuten fehlende DPT (bei älteren KNX-Installationen) für die Praxis? Natürlich läuft das KNX-Projekt weiterhin, kann auch nach Konversion zu ETS5 ohne DPT weiterhin verwendet und programmiert und parametriert werden. Unschön ist lediglich, dass u.U. beispielsweise ein (ganz neues) Anzeigegerät nicht weiß, was es mit den Werten anfangen soll. Es ist ein 2-Byte-Wert, aber welche Einheiten z.B.? Trotzdem fließen natürlich die Daten in der Installation weiterhin. Und in der Praxis muss man dann bei Installation eines neuen Gerätes eben einen Datenpunkttyp ergänzen, falls die Geräteanzeige unsinnig aussieht.
Schlussfolgerung: Fehlende Datenpunkttypen sollten kein Ausschlusskriterium für den Import sein. Dort, wo es stört (wegen der Weiterverarbeitung der Daten) muss der Anwender halt selbst später den passenden DPT in iobroker (oder in der ETS) ergänzen. Aber doch bitte kein Zwang, das schon vorher bei vielleicht 1000 GAs machen zu müssen!
Der andere Adapter von Chefkoch in der Version 1.x hatte damit keine Probleme. Und der neue Adapter in Version 2.x ist nunmehr auch dementsprechend angepasst worden (siehe https://github.com/ioBroker/ioBroker.knx/issues/128#issuecomment-989205691
"Ich habe in V2.0.5 den Importfilter für ETS4 projekte überarbeitet/angepasst. damit sollte es laufen" (letzter Eintrag). -
@tdoc Ich habe dazu mal ein PR gemacht. Die Werte würde aber alle als hex werte dargestellt da keine Information existieren wie die Werte umgewandelt werden müssen
-
@tombox
ich glaube mit der Änderung ist im nicht geholfen, er müsste sich dann selber um die Konvertierung der Datentypen (komplex zB Float) kümmern anhand von auch wieder nicht verfügbaren Regeln.@tdoc
DPTs bestehen aus einer
main number - mit dem Datentyp
und
subnumber (right) - mit Range + UnitZur Datenverarbeitung ist es notwendig den Datentyp zu kennen. Die subnumber ist optional.
Der ETS4 Export, sowohl im XML und CSV Format, erzeugt nicht die DPT Informationen.
Der Chefkoch Adapter nutzt ein proprietäres ETS Austauschformat und kann dort in den Tiefen nach den notwendigerweise Vorhandenen Informationen graben.
Gegen welche Konvention der openknx Adapter verstossen soll müsstest du schon aufzeigen denn ich sehe keine. Das Konzept der ETS4 wahr wohl eher keine externen Tools zu supporten.Du sagst du kannst zu ETS5 konvertieren. Wie sieht der XML Export dort ins eigene Format aus warum nimmst du den Output nicht von dort?
-
@tdoc Feature ist fertig.
@killroy2 Möchte das fertige Feature nicht integrieren weil es für ihn persönlich kein Vorteil bringt. Ich denke man sollte den Nutzer da nicht bevormunden und lieber die rohdaten anzeigt anstatt es zu verbieten
https://github.com/iobroker-community-adapters/ioBroker.openknx/pull/80#issuecomment-1004165231 -
@tdoc
DPTs bestehen aus einer
main number - mit dem Datentyp
und
subnumber (right) - mit Range + UnitZur Datenverarbeitung ist es notwendig den Datentyp zu kennen. Die subnumber ist optional.
Der ETS4 Export, sowohl im XML und CSV Format, erzeugt nicht die DPT Informationen.
Der Chefkoch Adapter nutzt ein proprietäres ETS Austauschformat und kann dort in den Tiefen nach den notwendigerweise Vorhandenen Informationen graben.
Gegen welche Konvention der openknx Adapter verstossen soll müsstest du schon aufzeigen denn ich sehe keine. Das Konzept der ETS4 wahr wohl eher keine externen Tools zu supporten.Du sagst du kannst zu ETS5 konvertieren. Wie sieht der XML Export dort ins eigene Format aus warum nimmst du den Output nicht von dort?
Hier einfach mal ein Auszug aus meiner aktuellen ETS5, die ich auch für Änderungen,umparametrieren etc. benutze. Wie du siehst, fehlen fast überall die DPT. Das kommt vom ursprünglichen Projekt, damals gab es noch keine DPT. Es ist halt eine sehr alte Installation,hat ein Elektriker vor 20 Jahren gemacht. Konvertierung aus dem ursprünglichen Projekt in ETS5 liegt mir also vor und funktioniert auch völlig problemlos. Trotz der fehlenden DPT (die ich nur bei Bedarf mal nachträglich einpflege).
Es wäre also grundsätzlich schon eine große Hilfe für ALLE alten KNX-Installationen, wenn man auch ohne DPT deinen Adpater benutzen könnte. Insbesondere könnte man importieren, so geht es nicht ohne weiteres. Aber wie gesagt, ich hab trotzdem für mich eine Lösung gefunden und benutze deinen Adapter gerne. Er ist gut. Macht bitte weiter so!
-
@tdoc
Du kannst doch die ganzen 1bit Werte in der ETS markieren und dann in den Eigenschaften auf z.B. 1bit Schalten stellen.
Das hat bei mir keine 30 minuten für 2000 GA gedauert -
Dafür gibt es dynamische Ordner wo man sich einen Filter für leere Datentypen bauen kann
und von den vermutlich wenigen uneindeutigen zB signed/unsigned muss man es mit den KOs abgleichen.