NEWS
Test Adapter KNX v1.0.x
-
@videonisse Wenn ich die Gruppenadressen im ETS auf dem Busmonitor lese dann werden sie auch auf den KNX Adapter geschrieben.
Ich habe gesehen dass nicht immer alle Adressen angefragt werden, bei einem weiteren neustart wurden sie dann angefragt aber nicht auf den Adapter geschrieben obwohl ich im Bus Monitor sehen konnte dass sie angefragt wurden. -
@fritzke316 ich hatte auch massive Probleme mit den neuen Versionen und bin zurück auf 1.0.20 gewechselt, da funktioniert alles tadellos.
Vielleicht auch bei dir? -
@loverz Vielleicht sollte ich das noch probieren. Im großen und ganzen sehen die DPs bei mir eigentlich gut aus und das Schalten und die Rückmeldungen funktionieren auch. Aber einen Versuch ist es wert.
-
@fritzke316 Um dich zu helfen können, kannst du deine Objekte von KNX Adapter hier einfügen (Save Object Tree as json file -> text als Code einfügen)
Export von KNX Objekte als json:
Gut wäre auch ein screendump von dein ETS Projekt die die KOs von ein Aktor womit es Probleme gibt.
Beispiel:
-
@videonisse
Die ioBroker Ordner konnte ich nicht als Code einfügen, war zu groß, habs als File verlinkt. -
@fritzke316 Kann es sein wir ein Missverständnis haben?
Die einzigen Werte, die beim Start der KNX Adapter gelesen werden sollten (GroupValueRead senden), sind diejenigen mit dem Kommunikationsparameter "Lesen". Rot in bild unten. Denn auch "read": true in die respektive DP in ioBroker.
Dass heißt zb das alle Taster GAs soll nicht abgefragt werden (und in ioBroker soll DP "read": false haben). Die Werte in Objekte sind dann Leer beim neustart aber sofort eine Taste, oder ähnliches, gedruckt wird (GroupValueWrite auf den Bus), wird auch das Wert in ioBroker Aktualisiert.
Es gibt DP die in KNX Adapter die read und write = true haben sollten. Beispiel die mir bekannt sind, ist Sollwerte, zb deine "knx.0.Heizung.Raumtemperaturen.Akt_SollTemp_WG_Keller_SZ" "3/3/52".
Aber, "3/3/52" ist DPT 9.001 "°Celsius" und DP muss "type": "number" haben. Bei dir steht in vielen fällen aber "mixed" drin.
Ich wurde vorschlagen das du in ETS deine Einstellungen ueberprufen und eine neue Export mache. Lösche dann alle Objekte (außer Info) in KNX Adapter v1.0.44 und mache ein neuen Import.
-
@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