en: This adapter allows importing of knxproj Files from ETS. It generates the translation between KNX- group addresses and ioBroker and puts the devices into rooms (esp. for MobileUI).
It connects to standard KNX/LAN Gateways.
Before beginning: Every DPT of com.Objects should be set in your ETS project. Every device should be sorted into your facility structure.
- importing
knxproj
file - generating ETS-like object structure
- finding and combining act-channel and state-channel (heuristic)
- updating all states on start
- emitting a READ to the KNX-Bus, while writing on state-object
- sorting channels to rooms
After installing this adapter, open the adapter configuration. Fill in:
<IP of your KNX/Lan GW> with IPv4 format
This is normally port 3671.
Fill in free phys. address corresponding to your KNX-architecture, BUT NOT the address of your KNX Gateway! May not end in 0 !!!
Extends the output level of the adapter for debugging purposes.
here you can upload your ETS Export in knxproj
format.
After successful import a dialog shows the number of imported objects. Now press "save & close" and the adapter should start. While starting the adapter reads all group addresses with read-Flag. This might take a while and can produce a high load on your KNX-bus. But the values in your vis are updated after start.
Here is under knx.0 the group address tree like in your ETS project.
If you have a building structure in your ETS with the corresponding devices, it will be shown here. Under "members" are the names of group addresses listed from the devices with send-Flag in this Group.
If the adapter starts successfully, your data points will be available for everything you like to do.
All DPTs according to "System Specifications, Interworking, Datapointtypes" from KNX Association are available. That means there are 2 types of information you can get:
- a Value or a String
- comma-separated values or an array of values (for the moment I don't know what's the better way to handle)
For example a DPT5.001 is encoded as unsigned Integer with 8-Bit. This gives a single Value. The DPT3.007 (Control Dimming) is encoded as 1Bit(Boolean)+3Bit(unsigned Int). This results e.g. in a value like "0,5", where "0" means "decrease" and "5" means number of intervals.
Dabei werden den Gruppenaddressreferenz (im folgenden GAR) IDs der jeweilige DPT der KOR zugeordnet, wenn er vorhanden ist. Ausserdem bekommt der erste Eintrag die Attribute write=yes und read=no. Alle darauf folgenden GAR ID's bekommen nur den DPT zugeordnet
Hier wird die GAS anhand der GAR IDs erzeugt und ebenfalls die DPTs zugeordnet, falls dies unter 1) noch nicht geschehen ist.
In dem ETS-Export sind die Schalt- und Statusadressen nicht hinterlegt. Somit führe ich eine Ähnlichkeitsprüfung aller Gruppenadressnamen durch mit der Auswertung auf status und state. Wird ein Pärchen gefunden, dessen Ähnlichkeit mehr als 90% beträgt, dann wird angenommen, dass die GA1 die Schaltadresse und GA2 die Statusadresse ist. Dabei erhält GA1 das write=true und read=false und GA2 das write=false und read=true. Außerdem werden die DPT abgeglichen aus der jeweilig korrespondierenden GA. Aus diesem Grund ist es schwierig, Pärchen zu finden, wenn die Gruppenadressbeschriftungen nicht konsistent sind.
Weiterhin werden die Flags in den Gerätekonfigurationen betrachtet. Dabei werden die Flags wie folgt umgesetzt:
KNX | iobroker | ||||
---|---|---|---|---|---|
Lesen | Schreiben | Übertragen | Lesen | Schreiben | Erklärung |
- | - | - | - | - | der wert wird ĂĽber GroupValueResponse aktualiesiert |
x | - | - | x | x | ein Trigger darauf löst GroupValueRead aus |
- | x | - | - | x | Schreibt den angegeben Wert mit GroupValueWrite auf den KNX-Bus |
- | - | x | x | - | der Wert wird ĂĽber GroupValueResponse aktualisiert |
x | - | x | x | x | ein Trigger darauf löst GroupValueRead aus |
Ein DPP wird erzeugt, wenn die GA, GAR und der DPT valid sind. Mit diesen DPP arbeitet der Adapter. Fehlen also der DPT in einer GA, weil er auf keiner der o. A. Wege gefunden werden konnte, so wird fĂĽr diese GA kein DPP erzeugt und sie ist im Weiteren nicht nutzbar.
Im Idealfall werden somit fĂĽr einen Schaltkanal 2 DPP erzeugt. Das erste ist das Schalten. In diesem ist die GAR ID des Status DPP hinterlegt. Das zweite ist dann das Status DPP ohne weitere Referenz.
Alle mit dem Lesen-Flag markierten DPP werden beim Start abgefragt. Dies verursacht u.U. eine höhere Buslast und dauert einen Moment. Im Anschluss sind aber alle aktuellen Werte verfügbar.
(hidden) Features:
Durch senden eines Wertes auf eine Statusadresse werden die Kommunikationsobjekte innerhalb dieser Gruppenadresse per GroupValueRead abgefragt.
- saubere ETS Programmierung und saubere ETS Programmierung und saubere ETS Programmierung
- zuweisen der DPTs!!
- einheitliche Beschriftung der GA-Namen (z.B "EG Wohnen Decke Licht schalten" und "EG Wohnen Decke Licht schalten status" )
- Vermeidung von Sonderzeichen ",./;&%$§[]" (kann zu Problemen bei der Erzeugung der GAS führen)
-
PrĂĽfen ob das KNX/LAN GW erreichbar ist. Wenn es das nicht ist, versucht der Adapter sich kontinuierlich zu verbinden.
-
Physikalische Adresse richtig wählen ( wichtig beim Einsatz von Linienkopplern ). !!! ACHTUNG: die hier eingetragene physikalische Adresse ist NICHT die Adresse des LAN Gateways und darf nicht auf 0 enden !!!
-
Der Port der LAN Schnittstelle ist i.d.R. 3671
-
Durch die Möglichkeit der Statusabfrage ist eines zu beachten: Es ist sicherzustellen, dass nicht mehr als 40 Anfragen pro Sekunde vom ioBroker generiert werden, denn diese können dann physikalisch bedingt nicht mehr durch den Adapter an das Gateway weitergereicht werden.
=======
58557769786a7c2a96f335d1af2767dc22aa1a30
- adding addresses to object-description (id)
- selective import of knx-project
- require node Version >8.9.4!
<<<<<<< HEAD
- import of ETS v5.7.5 projects
=======
58557769786a7c2a96f335d1af2767dc22aa1a30
- fixed act and state handling
- added some new datapoint types
- fix facility and room recognition and device allocation
- Fixed problem with missing index_m.html
- fixed bug on GroupValue_Response event
- corrected connection to Gira GW
- fixed some import errors for ETS 5.7.x
- fixed bug on GroupValue_Response event
- fixed import error
- fixed some bugs on import
- show warning if import-file ist password protected
- update for ETS 5.7.3 import
- some bugs fixed
- fixed permanent reconnects, if no traffic on knx-bus
- changes on importer for detecting project-id
- fixed bug while writing to bus
- added units to states
- fixed "read/write of undefined" error
- updated importer for ETS V5.7.2, some changes in KNX-stack state-machine
- some fixes on ETS5.7.2 importer
- small changes in knx-stack statemachine
- added (again) phys address to admin config dialog
- fixed bug in deviceTree generation
- new Importer for ETS5.7.2 knxproj files
- extended accepted Data point types
- new adapter configuration menu
- implemented a switch for the user to decide to use "true" and "false" or "0" or "1" for binary values
- fixed bug in GroupValue_Read
- implemented a selector for local network interface for KNX to Gateway communication
- extended State Object for later features
- fixed some small other bugs
- fixed bug in handling KNX-data packages, which occurs periodical reconnects
- fixed bug in KNX-project file upload procedure
- reverted to true/false handling for DPT1.x
- fixed upload issue with ETS5.6.x project files
- switched values for "boolean" from 1 and 0 to true false
- fixed recognition of role set for DPT1.x to switch
- fixed DPT16.xxx writing to KNX-Bus with values < 14Byte
- Better state processing
- Add configurable package rate
- corrected Bug in "import only new objects"
- change ChID on reconnect
- on Startup read wait for response of State channel or timeout
- elimination of special signs while importing
- small bug-fixes
- reduced and sorted log output
- small bug-fixes
- NEW Feature: request State/Val of stateObject from KNX-Bus
- fixed DPT1 correcting value problem
- fixed reconnect problem
- other small optimizations and fixes
- closing local port in case of undefined connection state
- added advanced debug-level via adapter-config
- many fixes
- changed to state-wise processing
- fixed "disconnect-request"
- changed connection handling with knxd
- many small fixes
- modified package queue
- fixed ACK if sending to KNX-Bus
- many small fixes
- fixed Adapter-lock while uploading projects
- fixed connection problem
- corrected package counter
- fixed empty objects, related to DPT1 (error message [object Object] unknown Input value)
- fixed path variable
- fixed bug with GA's containing a "/" in the name (on proj-import)
- start implementing crosswise property update on corresponding DPT (on proj-import)
- schema update for room enumeration coming up with ETS 5.6
- kleine Fehler beseitigt
- fixed certificate error
- substitution of used KNX-stack with own from scratch build stack
- implemented full scale of DPT according to "System Specifications, Interworking, Datapointtypes" from KNX Association
- hardening connection handling for tunneling connections
- upgrade Adapter-configuration Interface to be ready with Admin3
- removed "Delay Slider" because of the new knx-stack
- many other small changes
- fixed post-comma values to scale-value of DPT
- implemented "add" mode for knxproject upload (existing Objects stay as they are, only new Objects where added)
- some small bug-fixes
- insert slider to set a sendDelay for slow KNX/LAN Gateways to prevent connection loss
- project loader rebuild, dpt13-fix
- added act channel update of corresponding state
- fix bug in state-vis update
- optimized knxproj upload
- implemented device-config parsing from knxproj
- better choice of state/val of DP objects
- fixed DPT1 switch problem
- (chefkoch009) more DPT's are supported
- faster Startup
- implemented generation of room list with device dependencies
- (chefkoch009) added necessary dependencies
- (chefkoch009) Support standard KNX/LAN Gateways.
- (chefkoch009) Support of project export
- (chefkoch009) redesign
(vegetto) include vis widget
- (bluefox) fix errors with grunt
- (bluefox) initial release
The CC-NC-BY License (CC-NC-BY)
Copyright (c) 2016-2021 K.Ringmann info@punktnetzwerk.net
THE WORK IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
Read full license text in LICENSE