Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nicht alle KNX Read Objekte werden beim Start des KNX adapters gelesen #31

Closed
Breisgauer opened this issue Jul 5, 2018 · 15 comments
Closed

Comments

@Breisgauer
Copy link

Hi, mit 1.0.13 habe ich folgende Beobachtung:
Zwei aus KNX importierte Read Objekte, deren Wert beim Start des Adaperts eingelesen werden sollte.

Folgendes Objekt wird korrekt eingelesen:

{
"from": "system.adapter.knx.0",
"user": "system.user.admin",
"ts": 1530732351907,
"common": {
"name": "DG -Büro- Heizung HVAC STATUS",
"type": "number",
"role": "value",
"min": 0,
"max": 1,
"read": true,
"write": false
},
"native": {
"dpt": "DPT20.102",
"address": "5/4/46",
"addressRefId": "P-08AB-0_GA-1148",
"statusGARefId": "",
"actGARefId": ""
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"id": "knx.0.Heizung__Lüftung.DG.DG-Büro-_Heizung_HVAC_STATUS",
"type": "state"
}

Folgendes Objekt wird jedoch nicht eingelesen, obwohl es das sollte:

{
"from": "system.adapter.knx.0",
"user": "system.user.admin",
"ts": 1530732351876,
"common": {
"name": "DG -Büro- Heizung Sollwert IST",
"type": "number",
"role": "value",
"min": -273,
"max": 670670,
"read": true,
"write": false
},
"native": {
"dpt": "DPT9.001",
"address": "5/4/44",
"addressRefId": "P-08AB-0_GA-1027",
"statusGARefId": "P-08AB-0_GA-95",
"actGARefId": ""
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"id": "knx.0.Heizung__Lüftung.DG.DG-Büro-_Heizung_Sollwert_IST",
"type": "state"
}

Fehler im Objekt oder im Adapter?

@chefkoch009
Copy link
Collaborator

Was passiert wenn du 5/4/44 über die ETS liest. Ich vermute nichts.
Dann L-flag auf das KO setzen.

@Breisgauer
Copy link
Author

Breisgauer commented Jul 5, 2018

Wenn ich über ETS lese, wird das ioBroker Objekt gesetzt. L-Flag war gesetzt.
Ein Restart des KNX Adapters startet ja den Vorgang des Einlesens, was in der ETS schön zu sehen ist: 5/4/44 ist dann nicht dabei.

@chefkoch009
Copy link
Collaborator

Die von dir erwartete GA ist aber 5/4/44 und nicht 5/5/44

@Breisgauer
Copy link
Author

typo im Kommentar, habe ich oben korrigiert. Erwartet wird 5/4/44.

capture

@chefkoch009
Copy link
Collaborator

chefkoch009 commented Jul 5, 2018

Was passiert, wenn du ein lesen in der ETS auf diese GA auslöst. Erscheint der Wert dann im iobroker?

Ist das alles eine Linie, oder hast du Linienkoppler drin?

@Breisgauer
Copy link
Author

Ja
capture

@Breisgauer
Copy link
Author

mir ist noch folgendes aufgefallen:
testsystem: admin 3.4.7, js-controller 1.4.2, knx 1.0.13; knx adapter frisch aufgesetzt und projekt neu eingelesen
--> das ioBroker.knx Objekt 5/4/44 (und andere) wird beim Start nicht eingelesen.
--> Read Flag des Objektes ist nicht gesetzt und lässt sich nicht setzen. Auch mit knx 1.0.9 nicht.

Produktiv-System: Verhalten wie in meinen Posts oben beschrieben, aber das Read Flag lässt sich setzen / verändern.

@chefkoch009
Copy link
Collaborator

welche Node Version? Welcher Browser? Ist nur diese eine GA betroffen?

@Breisgauer
Copy link
Author

node 8.11.3; getestet mit Microsoft Edge und Google Chrome. Betrifft viele GAs.
auf dem produktiv system lassen sich die Objekte auch nachbehandeln, dh. die Read Flags sind gesetzt.
Vor lauter rumprobieren, geht es jetzt nicht mehr, dass ein Lesen der GA über ETS den Wert im ioBroker setzt. Hatte heute Mittag funktioniert, aber ich hatte einiges versucht, jetzt geht's nicht mehr.
So sieht's mit dem produktiven System aus:
iobroker objects - prod
ets

@Breisgauer
Copy link
Author

Ich bin auf meinem Testsystem zurück auf die Basiskonfiguration gegangen, Dh. node 8.11.3. js-controller 1.4.2, admin 2.0.9, KNX 1.0.13. KNX Projekt zum ersten Mal eingelesen:

Die Objekte, die beim ersten Start nicht gelesen werden, hatten kein Read-Flag gesetzt. Das habe ich nachträglich gesetzt und den KNX adapter neu gestartet. Die Werte von vielen Objekten werden eingelesen, aber eben von einigen nicht. Beispiele ist 5/4/44. Dessen Wert habe ich über ETS gelesen und die Antwort wurde auch vom ioBroker.KNX übernommen.

Und so sieht's im ETS Gruppenmonitor aus:
ets

So sieht's im ioBroker nach einem adapter neustart aus, und nachdem mit ETS 5/4/44 gelesen wurde:
capture

Starte ich erneut, wird das Objekt 5/4/44 ("DG -Büro- Heizung Sollwert IST") wieder auf '0' gesetzt. Auf dem KNX Bus ist jedoch keine Leseanfrage zum Objekt zu sehen.

@Breisgauer
Copy link
Author

Ich habe auf meinem Testsystem noch mal ein Repro gemacht.

ioBroker objects nach einem restart des KNX adapters:
objects after restart

ioBroker objects nach dem restart und einem read request in ETS:
objects after restart and ets read on object

So sieht es im ETS Busmonitor aus:
ets

Und so das Object 5/4/44:

{
"from": "system.adapter.knx.0",
"user": "system.user.admin",
"ts": 1530732351876,
"common": {
"name": "DG -Büro- Heizung Sollwert IST",
"type": "number",
"role": "value.temperature.number",
"unit": "°C",
"min": -273,
"max": 670670,
"read": true,
"write": false
},
"native": {
"dpt": "DPT9.001",
"address": "5/4/44",
"addressRefId": "P-08AB-0_GA-1027",
"statusGARefId": "P-08AB-0_GA-95",
"actGARefId": ""
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"id": "knx.0.Heizung__Lüftung.DG.DG-Büro-_Heizung_Sollwert_IST",
"type": "state"
}

Und jetzt kommt's:

Ich lösche im Objekt den Wert in 'statusGARefId':

{
"from": "system.adapter.knx.0",
"user": "system.user.admin",
"ts": 1530732351876,
"common": {
"name": "DG -Büro- Heizung Sollwert IST",
"type": "number",
"role": "value.temperature.number",
"unit": "°C",
"min": -273,
"max": 670670,
"read": true,
"write": false
},
"native": {
"dpt": "DPT9.001",
"address": "5/4/44",
"addressRefId": "P-08AB-0_GA-1027",
"statusGARefId": "",
"actGARefId": ""
},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
},
"id": "knx.0.Heizung__Lüftung.DG.DG-Büro-_Heizung_Sollwert_IST",
"type": "state"
}

Und mache wieder einen Restart des KNX adapters.

Das Objekt wird wie zuvor nicht korrekt gesetzt, der alte Wert des Objekts wird auf '0' zurückgesetzt:
object after change and restart of knx

Auf dem KNX Bus sieht man über den Busmonitor nun aber den Read request:
ets with changed object

Ich hoffe das hilft, den Fehler einzugrenzen.

@Breisgauer
Copy link
Author

Ich bin auf eine frühere ETS Projekt-Version gegangen um zu vergleichen, ob ein Objekt früher funktioniert hat und jetzt nicht mehr. Objekt 5/4/24 hat die gleiche Funktion wie 5/4/44, nur für einen anderen Raum. Hier hatte ich aber ein vergleichbares Szenario das noch funktionierte.

Objekt 5/4/24 in einer früheren ETS Konfiguration, wird korrekt vom KNX adapter eingelesen:

{
"id": "knx.0.Heizung__Lüftung.DG.DG-Bad-_Heizung:_Aktueller_Sollwert",
"type": "state",
"common": {
"name": "DG -Bad- Heizung: Aktueller Sollwert",
"type": "number",
"read": true,
"write": false,
"role": "value.temperature.number",
"min": -273,
"max": 670670
},
"native": {
"dpt": "DPT9.001",
"address": "5/4/24",
"addressRefId": "P-08AB-0_GA-1023",
"statusGARefId": "",
"actGARefId": ""
},
"from": "system.adapter.knx.0",
"ts": 1530862193811,
"acl": {
"object": 1638,
"state": 1638
}
}

Objekt 5/4/24 in aktueller ETS Konfiguration, wird vom KNX adapter nicht korrekt eingelesen:

{
"id": "knx.0.Heizung__Lüftung.DG.DG-Schlafen__Ankleide-_Heizung_Sollwert_IST",
"type": "state",
"common": {
"name": "DG -Schlafen, Ankleide- Heizung Sollwert IST",
"type": "number",
"read": false,
"write": true,
"role": "level.number",
"min": -273,
"max": 670670
},
"native": {
"dpt": "DPT9.001",
"address": "5/4/24",
"addressRefId": "P-08AB-0_GA-1028",
"statusGARefId": "P-08AB-0_GA-94",
"actGARefId": ""
},
"from": "system.adapter.knx.0",
"ts": 1530862582151,
"acl": {
"object": 1638,
"state": 1638
}
}

Testsystem: node 8.11.3, js-controller 1.4.2, admin 2.0.9, knx 1.0.13

@Breisgauer
Copy link
Author

Und noch ein Versuch: Es scheint an der Namensgebung der GAs zu liegen.
Lege ich drei GAs an, die den gleichen Namen haben, wird daraus nur ein ioBroker Objekt angelegt ... und das funktioniert so wenig wie, wie die ursprüngliche Namensgebung.
Lege ich drei GAs mit ganz einfachem Namen an (SOLLWERT1, SOLLWERT2, SOLLWERT3), dann werden in ioBroker zwei Objekte korrekt erzeugt, und die funktionieren dann auch, das Dritte jedoch nicht.

ioBroker Objekte: SOLLWERT1 und SOLLWERT2 funktionieren, SOLLWERT3 wird gänzlich anders erzeugt und funktioniert auch nicht.

iobroker sollwert mit neuen objekten

ETS Busmonitor mit der funktionierenden Kommunikation für SOLLWERT1 und SOLLWERT2:

ets mit neuen objekten

@Breisgauer Breisgauer changed the title Nicht alle KNX Read objects werden beim gelesen Nicht alle KNX Read objects werden beim Start des KNX adapters gelesen Jul 9, 2018
@Breisgauer
Copy link
Author

Breisgauer commented Jul 12, 2018

UPDATE: Ich bin in ETS noch mal die Objekte durchgegangen und habe sichergestellt, dass alle STATUS Objekte auch ein "STATUS" im Namen haben, so dass der Adapter auch die STATUS Objekte erkennen kann, wie in https://github.com/ioBroker/ioBroker.knx/ ...

  1. Herausfinden der Schalt- und Statusaddressen

... beschrieben.

Somit funktioniert es wieder.

@Breisgauer Breisgauer changed the title Nicht alle KNX Read objects werden beim Start des KNX adapters gelesen Nicht alle KNX Read Objekte werden beim Start des KNX adapters gelesen Jul 13, 2018
@Breisgauer
Copy link
Author

Da die Objekte nach Überarbeitung Namen der Gruppenadress im ETS Projekt wieder gelesen werden, schließe ich dieses Issue.

Enorm, was der knx Adapter an Hilfen bietet.
Es Bedarf aber u.U. einer massiven Überarbeitung von bestehenden KNX Projekten, damit der Adapter seine Arbeit leisten kann. Da dennoch eine Fehleranfälligkeit bei der korrekten Identifikation und Zuordnung von STATUS Objekten zu den Aktionen bleibt, habe ich einen Design Change Request angelegt: #33.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants