NEWS
Werte werden nicht ins KNX übertragen
-
Hallo
ich versuche mich seit ein paar Wochen mit der Einrichtung des ioBrokers, um Sensorwerte (MobileAlerts) auf eine KNX Gruppenadresse zu senden, um sie in der KNX Visu weiterverarbeiten zu können. Aber scheinbar gelangen die Werte nicht korrekt ins KNX, sie erscheinen nicht in der Visu und werden auch nicht korrekt übertragen (ETS Busmonitor zeigt senden der GA an, jedoch mit Wert 0)
Was kann ich noch machen?Ausgangslage:
KNX Adapter 1.0.41
ETS 4.20
KNX Router Gira
IoBroker Installation Stand 16.07.2020
MobileAlerts ohne ioBroker „Zulassung“ funktioniert aber scheinbar gut.Vorgehensweise:
Werte aus einem Sensor werden mit Blockly auf ein KNX Objekt (Gruppenadresse) gesendet.
Unter Objekte erscheinen auch die Sensor Daten im KNX „Gerät“
Ich habe schon gelesen das die KNX Parameter ggf. angepasst werden müssen. Habe schon ne Menge versucht, leider erfolglos. (DPT auf 3.001 oder 5.001 usw.)
So sieht die RAW Datei aus
Ich hoffe jemand kann mir einen Tipp geben. Besten Dank im Voraus!!
-
@stefan-br sagte:
einen Tipp
Verwende Block "steuere" anstelle von "aktualisiere".
"max": 1
dürfte wohl zu niedrig sein.
-
Hallo Paul53,
Besten Dank für die Tipps. Habe es sofort probiert.
Leider ohne Erfolg
... noch weitere Ideen? bin am verzweifeln, weil die Funktion doch eigentlich simpel ist...
Habe auch schon probiert den Wert der GA von der Visu aktiv abzufragen, funktioniert auch nicht. Daher vermute ich, dass der bereitgestellte Wert irgendwie faul ist. Was kann man noch konfigurieren?
Danke und beste Grüße
Stefan -
Hi Stefan,
ich habe genau das gleiche Problem.
In der ETS habe ich dafür Extra Gruppenadressen angelegt. Diese haben in der ETS keine Teilnehmer, da die Werte, die von IOBROKER kommen von meinem X1 weiterverarbeitet werden sollen. In der Diagnose der ETS bekomme ich auch keine Aktualisierung bzw Aufruf der GA angezeigt.Weiss jemand, ob es daran liegt bzw wie man es beheben kann?
Gruss
Jens -
Problem gelöst.
KNX Werte für Schreiben freigeben (Konfig des Datums)
KNX Adapter restarten
läuft -
Hallo Jens
Danke für die Info. Kannst Du mir bitte genauer sagen (gerne Screenshot) was eingestellt werden muss.
B. G. Stefan
-
Hallo @stefan-br,
schade, dass @jkalver nicht mehr geantwortet hat.Bist Du hier schon weitergekommen?
Denn zu einer Lösung kann ich leider nichts beitragen, würde mich mit aber auf der fragenden Seite einreihen.
Vieles geht mit dem ioBroker und dem KNX-Adapter gut:
- das Schalten von Aktoren und Aktualisieren von den Statuswerten (vorausgesetzt das Gruppenadressnamensschema passt)
- das Auslesen von Temperatur- und sonstigen Sensorwerten
Ich habe derzeit mit dem Schreiben eines einfachen Datumwertes auf eine Adresse ein Problem.
Die Raw-Daten vom KNX-Objekt sind:
{ "_id": "knx.0.Messwerte.Zähler.Nächstesstichdatum", "type": "state", "common": { "name": "Nächstesstichdatum", "type": "", "read": true, "write": true, "role": "value", "min": 0, "max": 1 }, "native": { "dpt": "DPT11.001", "address": "10/3/19", "addressRefId": "P-02CC-0_GA-347", "statusGARefId": "", "actGARefId": "" }, "from": "system.adapter.knx.0", "user": "system.user.admin", "ts": 1596549863547, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Das aktuell vorhandene Datum (01.09.2020) wird in der Admin-Objektübersicht korrekt dargestellt...
... nur ändern kann ich ihn nicht. Im ETS-Busmonitor ist auch kein Schreibbefehl oder ähnliches zu sehen. Das Ändern des Wertes klappt nur über die ETS.
Die Flags des betreffenden Gerätes sind:
Meine Konfiguration sieht folgendermaßen aus:
- ListenpunktKNX-Adapter Version 1.0.41
- KNX-NetIP-Router von Enertex Bayern
Hat hierzu jemand eine Idee?
VG Michael -
@stefan-br said in Werte werden nicht ins KNX übertragen:
Hallo Paul53,
Besten Dank für die Tipps. Habe es sofort probiert.
Leider ohne Erfolg
... noch weitere Ideen? bin am verzweifeln, weil die Funktion doch eigentlich simpel ist...
Habe auch schon probiert den Wert der GA von der Visu aktiv abzufragen, funktioniert auch nicht. Daher vermute ich, dass der bereitgestellte Wert irgendwie faul ist. Was kann man noch konfigurieren?
Jetzt hast du das max-Value zwar auf 100 angehoben aber der type ist nun boolean...? Der sollte natürlich number sein und der Datenpunkt-Typ muss natürlich auch zu Number passen! Mach da ruhig eine Temperatur draus.
-
@mpenno said in Werte werden nicht ins KNX übertragen:
"",
Also zum einen ist der "type" bei deinem Objekt leer... urgs...?? Da sollte auch number hin und max ist ganz sicher auch zu wenig.
Dann ist zu den Falgs das hier ganz sicher wichtig für dich: https://github.com/iobroker/iobroker.knx#3-herausfinden-der-schalt--und-statusaddressen
Und zwar die Flags in KNX selber aber auch read/write beim ioBroker Datenpunkt! Bei dir ist beides true, daher macht der KNX Adapter bei einem Schreiben darauf einen GroupValueRead an den Bus (i.e. ruft den aktuellen Wert ab, anstatt etwas zu setzen). Du solltest auf jeden Fall "read" mal auf false setzen, dann wird er auch Werte an den Bus schreiben (würde ich auch einfach mal ausprobieren, ohne an den Flags in KNX was zu ändern, geht vermutlich dann schon).@stefan-br der Link ist für dich ggf. auch relevant. Vielleicht fügst du bei deinem Objekt noch "write": true und "read": false ein.
-
@Garfonso sagte in Werte werden nicht ins KNX übertragen:
auf jeden Fall "read" mal auf false setzen,
Danke für die Tipps! Folgendes habe ich gemacht:
- den Datentyp "number" ergänzt,
- "Read" auf "False",
- "max" einmal komplett weggelassen einmal auf 670670 gestellt,
Erst wirkten sich die Änderungen gar nichts aus. Dann fiel mir ein, dass man den Adapter neu starten sollte.
Und ab dann quittierte der Adapter jedes Eintragen eines Datums (egal ob über die Admin-Oberfläche oder per setState) mit einem Neustart.
Interessant war, dass bei Eingabe des Datums "29.08.2020" über die Adminoberfläche anschließend nur ein rotes "29.08" stehen blieb.
Am KNX-Bus war nichts zu sehen. Ein GroupValueRead kam dann erst als ich wieder den Parameter "Read = true"+ Adapterneustart ergänzt hatte.Ich hätte in dem Fall gar nicht gedacht, dass ich der einzige wäre, der so etwas benötigt. Das Schreiben von Datum und Uhrzeit wäre natürlich auch für eine per NTP synchronisierte Uhrzeit an den KNX-Bus nicht schlecht.
Falls wir hier nicht weiterkommen, würde ich das mal bei Github einstellen. -
@mpenno
Zeit & Datum hab ich tatsächlich noch nie auf den Bus geschrieben. Kann gut sein, dass das nicht geht. Mach mal ein issue, auch, wenn es gibt, mit Logausgabe und soweiter. -
@Garfonso sagte in Werte werden nicht ins KNX übertragen:
Zeit & Datum vom ioBroker auf den KNX Bus schreiben funktioniert bei mir sehr gut.
Allerdings mache ich einen kleinen Umweg über Nodered über die "KNX Ultimate Node" -
@frankthegreat
Danke, das merke ich mir mal im Hinterkopf. -
Ich habe noch was herausgefunden:
Die Hinweise in Bezug auf die richtigen Flags von Chefkoch habe ich umgesetzt:
Jetzt erfolgt beim Absetzen eines Datumwertes über die Admin-Oberfläche vom ioBroker ein GroupValueWrite.
Was ich aber erst später bemerkt habe, war, dass das Gerät die Einstellung nicht übernommen hat. Augenscheinlich sahen beide Schreibbefehle (über ioBroker und über die ETS) laut Gruppenmonitor gleich aus:
Jedoch zeigte erst ein Blick in die Details die Unterschiede.
GroupValueWrite über den ioBroker:
GroupValueWrite über die ETS:
Die Unterschiede habe ich einmal markiert.
Was heißt das nun?
PS:
Das gleiche habe ich im Github vermerkt. -
@Garfonso Guten Abend Garfonso,
Dein Beitrag war sehr hilfreich, aber so ganz finde ich mich noch nicht in der Lösung wieder. Vielleicht hast du einen ergänzenden Tipp für mich...?Ich habe in der ETS ebenfalls eine GA 7/4/0 namens NETATMO angelegt. Der Sinn ist es, die CO2 Daten der Netatmo Wetterstation auf einem MDT Smart86 Taster Display zu visualisieren.
Dazu verbinde ich die angelegte GA in KNX mit dem Tasterstatus-Eingang. Manuelle Eingaben über den Gruppenmonitor werden brav angezeigt. Beim Lesen auf dem Gruppenmonitor in der ETS ist kein Ergebnis sichtbar.
Den Datentyp 9.008 habe ich in der ETS gesetzt.In IO Broker soll jetzt per Skript der Wert vom Netatmo (anderer Adapter) in diese KNX Gruppenadresse geschoben werden, und so auf dem Tasterdisplay landen. Der Wert aktuallisiert sich aber nicht.
Ich verstehe in deiner Antwort noch nicht, wie ich einer GA (hier 7/4/0) Flags zuordnen kann. Das geht doch nur bei den verknüpften Geräten, sprich hier meinem Taster86?
Vielleicht fällt dir anhand der Bilder etwas auf. Würde mich freuen
-
@chrizzel
In deinem Bild vom Bus-Monitor sieht man, dass der KNX Adapter ein GroupValueRead auf den Bus schickt anstatt ein GroupValueWrite (oder so). Er fragt also an, was in der Adresse steht anstatt selber was reinzuschreiben. Das kannst du verhindern, indem du in ioBroker bei dem Objektread
auffalse
stellst undwrite
auftrue
. Also die Flags im ioBroker-Objekt (da kommst du mit dem Stift-Symbol hin in der Objekt-Ansicht).
Dann sollte es so eigentlich gehen. -
@chrizzel Moin, ich setze die Werte von Netatmo auch auf KNX um. Mache das allerdings über Node Red.
Funktioniert sehr gut und ist sehr einfach einzurichten. -
@Garfonso Hi!
Danke für Deine Rückmeldung. Der screenshoot ist allerdings nach einem drücken auf den LESEN Button in der ETS entstanden. Daher macht er wohl auch READ, oder? Die INfo soll ja von IO geschrieben werden, in ein Feld auf der KNX Seite.Egal,
ich habe es mal geändert, knx Adapter neu gestartet.
REAd auf false
Write auf trueInteressantes Ergebnis: Wenn ich im IO das Datenfeld manuell eingebe mit zB 11, dann zeiget der KNX das in dem Moment als GroupvalueWRITE im Gruppenmonitor an, und der Wert erscheint auf dem Glastaster.
Wenn das Skript den Wert rein setzt, dann nimmt er ihn nicht im Gruppenmonitor an, daher keine Reaktion am Glastaster der KNX Welt. Das Datenfeld wird aber scheinbar im IO brav per skript aktuallisiert.
Das Datenfeld ist als ZAHL konfiguriert.
Warum geht das nicht durch? -
@frankthegreat Danke, ich schaue mir den Workaround mal parallel an, aber mich nervt es,dass es über blockly nicht geht. Das kann eigentlich nicht sein..
-
@chrizzel
Wichtig ist, dass dein Skript ack auf false lässt, beim setzen (was eigentlich default ist). Sonst fällt mir nichts ein, warum es nicht gehen sollte... ggf. Ids nochmal prüfen und ob das Skript überhaupt läuft (log-Ausgabe) und so Späße. Hab es hier jedenfalls mit anderen Dingen genau so laufen.