NEWS
Test Adapter KNX v1.0.x
-
@videonisse Erstmal Danke für deine Hilfe!
Ja genau die GAs mit L-Flag sollten gelesen werden und im KNX Adapter beim neustart aktualisiert. Aber genau diese Datenpunkte die du rot markiert hast, werden bei einem Neustart des KNX Adapters "nicht immer" aktualisiert, oder nicht alle. Bei den Rollos sollte doch alles richtig eingestellt sein? Die Steuerung der Rollos funktioniert ohne Probleme, nur das Aktualisieren beim Neustart nicht! Die Heizungs GAs wer ich nochmal kontrollieren. -
@fritzke316 Du hast 227 DP mit "read": true in dein json oben (davon hast 162 auch "write": true).
Das soll 227 GroupValueReads generieren und bis die gleiche menge mit GroupValueResonse. Wenn du Gruppenmonitor in ETS startet und KNX Adapter neu starte, wie viele GroupValueReads wird auf den Bus gesendet?
-
@videonisse sagte in Test Adapter KNX v1.0.x:
Ich habe gerade ioBroker neu installiert und benutze jetzt KNX-adapter 1.0.44. KNX-projekt ist von ETS v.5.7.4 importiert und alle Datenpunkte werden gut angelegt. Auch die Pärchen der Schalt- und Statusaddressen funktionieren.
Aber, die DPs fur Status haben alle Write = True und laut Readme sollen die Write = False haben.
Gleichzeitig steht auch in Readme dass Read und Write = True haben muss um von KNX-adapter ein GroupValueRead Trigger zu können, um von KNX-bus den aktuellen wert zu bekommen als GroupValueResponse.
Was ist jetzt eigentlich richtig, soll dass Status DP, Write = True oder False haben?
Quelle Readme: https://github.com/ioBroker/ioBroker.knx/blob/master/README.md#3-herausfinden-der-schalt--und-statusaddressen
Einstellungen von ETS
@chefkoch009 Can you help me out here? The Issue seems to be that the "Transmit" Communications Flag
(deutch Ü: Übertragen) are used and then "write" is set to true during import.However, why shall a Status (Ruckmeldung) Datapoint have "write" enabled in ioBroker? So far I know, the Transmit flag is almost always used for Status objects in the KNX World, usually together with the Read flag.
Is it somehow a workaround for the KNX Adapter to be able to trigger sending the GroupReadValue to the bus?
If yes, then the Readme should maybe be corrected about the common behaviour (bold text):
"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. " -
I suppose I found the reason for the behaviour explained by @chefkoch009 in the following two Issues from Git:
But still, the Readme should be updated so it's no misunderstanding that Status will have write=true and not false. Shall I create an Issue for this?
https://github.com/ioBroker/ioBroker.knx/issues/67#issuecomment-524615736
https://github.com/ioBroker/ioBroker.knx/issues/55#issuecomment-643749268 -
@videonisse Ich habe beim testen herausgefunden das write:true NICHT nötig ist um ein GroupValueRead zu trigger. Sehe Git Issue: https://github.com/ioBroker/ioBroker.knx/issues/160
Was denkt ihr darüber? Habe ich was falsch verstanden oder wäre es besser immer write:false zu setzten wenn KL oder KLÜ Flags?
-
Systemumgebung:
KNX-Adapter-Version 1.0.39
ETS 5.7.4 Projektdatei importiertErgebnis:
Die KNX.0 – Objekte - Zustände werden gelesen, lassen sich aber nicht schaltenLösung:
Nachdem ich die KNX-Import-Objektstrukturen der Versionen 1.0.20 (da funktionierte alle) und 1.0.39 (hier geht nur lesen) verglichen habe konnte ich bei mir folgende Problemlösung durchführen:
Durch das Setzen von "read": false, in der Objektstruktur im Bereich common funktioniert das Schalten der Objekte aus ioBroker heraus wieder.
Beispiel:
{
"_id": "knx.0.Licht.Schalten.EG_Kueche_Decke",
"type": "state",
"common": {
"name": "EG_Kueche_Decke",
"type": "boolean",
"role": "indicator",
"min": false,
"max": true,
"read": false,
"write": true,
"update": true,
"unit": ""
},
……..
Ich hoffe diese Info ist für a) die Entwickler und b) alle andern die das Problem haben hilfreich. -
@videonisse Es werden über 300 GroupValueReads an den Bus gesendet, einige werden doppelt oder öfter gesendet.
Was ich jetzt aber bemerkt habe ist, dass der Wert im Datenpunkt fder Rückmeldung grün aufleuchtet, aber der Wert einfach nicht in den DP geschrieben wird. Im Datenpunkt wird auch angezeigt dass er jetzt zu diesem Zeitpunkt aktualisiert wurde, es wird nur einfach der Wert nicht geschrieben!
Das gleich Verhalten habe ich wenn ich vom Bus Monitor ein GroupValueRead starte, der Wert im DP der Rückmeldung leuchtet grün, der neue Wert wird aber nicht reingeschrieben. Der DP der Rückmeldung wird nur richtig aktualisiert wenn ich in der Visualisierung das Rollo rauf oder runter fahre.
Was kann da falsch sein? -
@fritzke316 Ich habe den Fehler jetzt auch gefunden... Leider aber keine Lösung:-(
Es war ein-bisschen schwer zu entdecken weil, wie du oben geschrieben habe, die DP blinkt grün und zeigt korrektem Zeitstempel wenn Adapter den Respons wert liest. Aber hat der Wert sich geändert, wird’s nicht updatet. Adapter updatet bei mir nur wenn der GroupValueWrites empfängst oder sendest.
Es gibt schon zeit ein par Tagen ein Issue: https://github.com/ioBroker/ioBroker.knx/issues/162
Ich habe es erst gemerkt wenn ich ein Problem mit DPT14 gefunden haben und den Instanz viel umgestartet haben.
Kann bitte noch welsche von euch mit v.1.0.3x oder .4x, testen ob es bei euch funktioniert oder nicht?
Teste folgendes:
- Benutzte ein Dimmer Licht. Schalte es mal ein und kontrolliere die Status wert (%) in ioBroker (DPT5.001)
- KNX Adapter Instanz anhalten
- Ändere Dimmer wert (Busmonitor oder an Schalter)
- Starte KNX Adapter
- Beobachte ob Dimmer Status wert in ioBroker upgedatet wird oder nicht, ohne die Lampe zu schalten/dimmern.
-
Hallo zusammen,
ich nutze den KNX Adapter nun schon seit einigen Monaten und bin ziemlich zufreiden.
Jetzt ist mir eine Sache aufgefallen, die ich mir nicht erklären kann und erhoffe mir von euch Hilfe bzw die Erklärung/LösungIch habe einen Messaktor, der mir von verschiedenen Verbrauchern drei Werte übermittelt:
- Stromwert (Aktueller Bezug in W)
- Wirkarbeit (Gesamtverbauch in Wh)
- Betriebsstunden (Gesamtlaufzeit in s)
Insgesamt habe ich acht Verbraucher an dem Aktor hängen und alle Werte werden auch an ioBroker übermittelt.
Alle? Nicht ganz. Ein einziger Stromwert von einem Kanal wird einfach nicht im ioBroker angezeigt bzw. aktualisiert. Der DP wird angelegt, bleibt aber immer leer.Ich habe den DP schon mehrfach gelöscht und das Projekt neu eingelesen. Die GA in der ETS gelöscht und neu angelegt, neu exportiert und eingelesen. Aber es ändert sich nichts.
Ich habe alle GAs über ein Import Skript angelegt und auch die Zuweisung ist habe ich kontrolliert. Ich verstehe einfach nicht, wieso dieser eine Wert nicht übermittelt wird. In der ETS kann ich ihn ohne Probleme abfragen:ioBroker:
ETS:
Habt ihr eine Idee, was die Lösung des Problems ist?
-
@hant0r
Interessantes Phänomen. Hast du mal mit der ets einen Wert geschrieben und kam dieser im iobroker an?
Hast du die Applikation übertragen? -
@thebam
Ja sagen wir "interessant"Setze ich auch selber in der ETS einen Wert, wird dieser auch konsequent nicht übertragen.
Das Applikationsprogramm ist auch auf den Aktor übertragen (mehrfach). -
Ok dann klingt es nicht nach einem ets Fehler oder so. Sondern ehr in Richtung Adapter.
Schick mal die RAW Daten vom datenpunkte aus dem iobroker -
@thebam
Gerne ...{ "_id": "knx.0.Licht_und_Steckdosen.Zentralbefehle_&_Gruppierungen.MA1-KanalE-Stromwert", "type": "state", "common": { "name": "MA1-KanalE-Stromwert", "type": "number", "role": "value", "read": true, "write": true, "unit": "W", "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "stromverbrauchTerrasseGrundwasserpumpe" } } }, "native": { "dpt": "DPT14.056", "address": "1/0/24", "addressRefId": "P-05DA-0_GA-952", "statusGARefId": "", "actGARefId": "", "objRef": "O-83_R-599", "devName": "M-0083_A-0017-21-5D11", "devInst": "P-05DA-0_DI-28", "objectSize": "" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1619463825163, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@hant0r
Hmm ich kann da leider nix ungewöhnliches erkennen. Was du nur noch probieren kannst den Log auf debug umstellen den Wert mit der ets senden und schauen wie und ob da was kommt dann liegt es an der Zuordnung von nachricht zum Objekt. Ansonsten habe ich leider keine Idee mehr -
@hant0r Is it possible the value is smaller than 1? There is a bug reported where for example DPT 14.056 (W) only updates values that is 1 or greater.
See Issue#144: https://github.com/ioBroker/ioBroker.knx/issues/144
-
@thebam
Gute Idee mit dem debug Mode ... hat aber leider keine Auswirkung gehabt, im Log wird überhaupt nichts geschrieben. Auch nicht, wenn ich einen anderen Wert händisch in der ETS ändere.
Keine Ahnung ob er jeden Wert nochmal ins Log schreiben sollte.Was sich aber nun geändert hat, es steht jetzt eine "0" in dem DP. Diese wird aber, im gegensatz zu den anderen, rot (also nicht bestätigt) angezeigt.
@videonisse
Danke für die Idee, leider glaube ich nicht, dass es etwas damit zu tun hat, weil es nie klappt, egal wie groß der Wert ist der eingetragen wird. -
@hant0r
ist read & write auch für die anderen (funktionierenden) Datenpunkte im ioBroker true?Wie sind die Flags in ETS (also KLSÜ...)? Sind die bei allen gleich?
-
Hi @garfonso ,
danke für deine Antwort.Habe gerade nochmal nachgesehen.
Hier mal die RAW Daten eines vergleichbaren anderen DPs:{ "_id": "knx.0.Licht_und_Steckdosen.Zentralbefehle_&_Gruppierungen.MA1-KanalF-Stromwert", "type": "state", "common": { "name": "MA1-KanalF-Stromwert", "type": "number", "role": "value", "read": true, "write": true, "unit": "W", "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "stromverbrauchTerrasseHauswasserautomat" } } }, "native": { "dpt": "DPT14.056", "address": "1/0/27", "addressRefId": "P-05DA-0_GA-937", "statusGARefId": "", "actGARefId": "", "objRef": "O-101_R-601", "devName": "M-0083_A-0017-21-5D11", "devInst": "P-05DA-0_DI-28", "objectSize": "" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1619461982479, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Ist als immer beides auf "true".
Zu den Flags:
Die Flags sehen bei den "Stromwerten" alle gleich aus.
Hier der Kanals E (der nicht klappt):
Kanals F der funktioniert:
Gruß
-
@hant0r
puh... da hab ich echt keine Idee mehr zu... strange. -
@garfonso
Verstehe es ja auch nicht. Habe sogar schon die GA gelöscht, neu angelegt, zugewiesen und im ioBroker importiert ... aber kein Erfolg