NEWS
Test Adapter KNX v1.0.x
-
@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 -
Kann es sein das von den Parameter im aktor etwas nicht stimmt? Bzw. Wenn du mit der ets. Mit liest und du dann da mal was schaltest. Das dir da auch ein Wert angezeigt bekommt der größer 0 ist?
-
Ich habe folgenden Fehler im Log:
knx.0 2021-05-07 01:14:01.715 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342841712,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:58.573 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342838569,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:48.571 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342828568,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:39.064 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342819029,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:28.573 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342808567,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:18.568 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342798563,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:13:08.627 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342788585,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:58.565 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342778561,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:48.563 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342768559,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:38.562 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342758557,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:28.564 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342748557,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:18.559 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342738553,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948} knx.0 2021-05-07 01:12:08.556 silly (2133) States user redis pmessage knx.0.*/knx.0.info.connection:{"val":true,"ack":true,"ts":1620342728551,"q":0,"from":"system.adapter.knx.0","user":"system.user.admin","lc":1620342498948}
Während der Fehler alle paar Sekunden einläuft kann ich weder an den Bus senden noch vom Bus empfangen. Dann geht es wieder für ein paar Minuten ohne Probleme und dann läuft wieder alle paar Sekunden dieser Fehler ein. Hat jemand eine Idee woran das liegen könnte?
Edit: Es hat mit der Meldung im Log nichts zu tun. Ich habe leider auch so sporadische Aussetzer. Die frames pro Sekunde habe ich schon auf 30 gesetzt. Das hat leider nichts geändert.
-
Moin @TheBam
ich hatte das auch schonmal angedacht. Die Einstellungen habe ich mehrfach schon überprüft und sind identsich (z. B. zwischen Kanal E und F).
Wenn in meinem Fall die Pumpe abspringt, dann sehe ich in der ETS wie viel Watt gezogen werden, die Zahl wird nur nicht an ioBroker übermittelt. -
Also ich finde das sehr seltsam und alleine aus Interesse würde es mich interessieren wie es dazu kommt. Wenn du magst biete ich dir an heute Abend über discord /anydesk mal zusammen drauf zu schauen. Ab 21 Uhr.
-
@markus84
Da sind keine Fehler in deinem log? Du hast nur die höchste Logstufe an, wo jeder State-Änderung (es wir der connection state auf "true" gesetzt).//Edit; oh, hattest du schon gesehen. Merkwürdig ist, dass er connection immer wieder auf true setzt, das zeigt schon irgendwie nen Verbindungsproblem... grübel -> ne, ok, macht er bei mir auch alle paar Sekunden.
-
@garfonso Ich habe den Fehler gefunden. Ich schreibe einen ioBroker-Status bei einer Veränderung auf den Bus. Die Bus-Gruppenadresse hatte ich noch nicht mit irgendetwas verknüpft. Dies führt dazu, dass für ca. 1-3 Minuten weder etwas auf den Bus gesendet wird noch ankommt. Danach geht es wieder einwandfrei. Nachdem ich die betreffende Gruppenadresse mit einem Gerät verknüpft habe, ist das Problem weg.
Ist es grundsätzlich möglich, dass Geräte bei einem Neustart den Status von ioBroker Datenpunkten auslesen können? Oder muss ich das einfach regelmäßig auf den Bus schreiben? Ich meine ich hätte hier im Forum mal etwas zu dem Thema gelesen, ich finde es aber einfach nicht mehr...