NEWS
Test Adapter EnOcean (2) v0.3.x
-
@jey-cee Danke Dir!
Wäre wie gesagt klasse, wenn das mit dem ACK-irgendwann noch klappen würde.
Zu meiner Schilderung, mit der Du nichts anfangen konntest:
Ich habe gerade z.B. einen FSR14-4x über das Adaper-Interface angelegt. Ich kann den Wert "baseIDoffset" nicht im Interface setzen (wie das z.B. in einem älteren Video von Dir noch ging), sondern nur nachträglich über den Objekte-Baum. Für den gerade genannten FSR14-4x hat er automatisch die baseIDoffset 17 hinterlegt. Soll das so sein? Habe sie dann manuell auf die Nummer des Kanals gesetzt. Funktionieren tut nun alles (bis auf das mit dem ACK, wie oben geschrieben - aber das is ja für die Funktion nicht wichtig).Ja, die Begrifflichkeiten waren mir klar.
Legt der Adapter eigentlich außer in der Ordnerstruktur in ioBroker ("Objekte"), also unterhalb von "enocean.ZAHL" bzw. "system.adapter.enocean.ZAHL" noch wo Einstellungen ab?
-
@iobaer sagte in Test Adapter EnOcean (2) v0.3.x:
Für den gerade genannten FSR14-4x hat er automatisch die baseIDoffset 17 hinterlegt. Soll das so sein?
Ja das muss so sein, Geräte die nicht Unterscheiden ob ein Telegram für sie ist oder nicht müssen mit einer eigenen Sender ID angesprochen werden. Diese Zahl spielt aber keine große Rolle mehr, die wurde durch Sender ID ersetzt.
Wenn bei dir durch das ändern dieser Zahl das Gerät jetzt reagiert, hast du wohl eine ältere Version installiert.@iobaer sagte in Test Adapter EnOcean (2) v0.3.x:
Legt der Adapter eigentlich außer in der Ordnerstruktur in ioBroker ("Objekte"), also unterhalb von "enocean.ZAHL" bzw. "system.adapter.enocean.ZAHL" noch wo Einstellungen ab?
Nein, warum frägst du?
-
@jey-cee bei mir steht:
Installierte Version: 0.3.2 Installierte Instanzen: 1
Sollte also doch eigentlich passen? Ich habe immer die Instanz(en) gelöscht, dann den Adapter, dann mit dem bekannten Github-Link den Adapter eingespielt und dann die Instanz generiert.
Die Frage nach den Speicherorten war nur, weil ich wissen wollte, ob er sich sowas die die Offset-Zählung im Hintergrund sonst wo merkt.
Du hattest oben geschrieben, dass das mit der ACK-Bestätigung schon geändert sei. Ist es dann normal, dass es bei mir noch nicht klappt mit dieser Adapter-Version?
Danke
Edit: die ID der Eltako-Geräte habe ich jeweils durch Abhören ermittelt, d.h. lastID mitgelogged.
-
@iobaer sagte in Test Adapter EnOcean (2) v0.3.x:
Sollte also doch eigentlich passen?
Ja.
@iobaer sagte in Test Adapter EnOcean (2) v0.3.x:
Du hattest oben geschrieben, dass das mit der ACK-Bestätigung schon geändert sei. Ist es dann normal, dass es bei mir noch nicht klappt mit dieser Adapter-Version?
Ja wenn du sie seit ich das geschrieben hab nicht neu installiert hast.
-
@jey-cee Danke. Kann ich die irgendwie neu installieren / aktualisieren, ohne alles neu einrichten zu müssen? ggf. über JSON-Export und anschließenden Import?
Habe oben noch einen Edit hinzugefügt.
-
@jey-cee @IOBaer
mit dem gleichzeitigen ansteuern mehrerer Aktoren hatte ich das gleiche Verhalten, daß nicht alle Befehle ausgeführt wurden. Ich kann allerdings auch nicht mehr sagen, ob wirklich alle gesendet wurden, bin aber der Meinung dem war so.
Also eher ein Problem bei den Empfängern, wenn zuviel Funksignale auf einmal rausgehen. Habe es im Script ebenso über einen Zeitversatz (hier 1sec je Aktor) gelöst und bin damit zufrieden. -
@iobaer einfach drüber installieren ohne die Objekte zu löschen.
@mustang sagte in Test Adapter EnOcean (2) v0.3.x:
Also eher ein Problem bei den Empfängern, wenn zuviel Funksignale auf einmal rausgehen.
Ne liegt schon auf der Adapter Seite, er versucht alles auf einmal zu senden. Er wartet nicht bis der Vorherige befehl abgesendet wurde.
-
@jey-cee Danke, das hat perfekt geklappt. Ist das so normal, dass nach einem Befehl das Ack-Flag lediglich gesetzt wird (ggf. wird auch geprüft, ob gesendet wurde), das aber keine echte Rückmeldung ist, ob der Befehl am Eltako-Bus ankam?
Ich habe testweise den Bus spannungsfrei geschaltet und einen Befehl über ioBroker abgesetzt - "Bestätigt: true" steht dann dennoch dort, obwohl der Befehl natürlich nicht angekommen sein kann.
-
@iobaer der Adapter kriegt nur eine Rückmeldung vom Stick ob der den Befehl angenommen hat. Angesichts der Tatsache das Befehl nicht gesendet werden scheint das auch keine Garantie zu sein ob er den Befehl auch sendet.
Die EnOcean Geräte senden keine Bestätigung ob sie einen Befehl erhalten haben. Je nach Gerät wird der Status als Antwort zurück gesendet.
Letztlich ist das Ack Flag die Bestätigung das der Adapter den Befehl ausgeführt hat.
-
@jey-cee Danke für die Antwort, das dachte ich mir - jetzt habe ich Gewissheit. Letztlich kann man als Antwort ja z.B. die Relais-Änderung auswerten.
-
Noch ein paar Dinge zur Einbindung des FAH60B ...
Wie die Daten vom Sensor umgesetzt werden steht in der Datei TF-13-10.json:
{ "eep": "TF-13-10", "rorg_number": "0xA5", "telegram": "4BS", "func_number": "0x00", "type_number": "0x00", "type_title": "Brightness sensor 0-50 Lux & 300-30000 Lux", "case": [ { "condition": { "range": { "bitoffs": "8", "bitsize": "8", "value": {"==": [{"var": "value"}, 0]} } }, "datafield": [ { "data": "Illumination", "shortcut": "ILL", "bitoffs": "0", "bitsize": "8", "iobroker": { "role": "value.brightness", "type": "number", "read": true, "write": false, "unit": "lx" }, "value": { "var": "value" }, "decimals": 0 } ] }, { "condition": { "range": { "bitoffs": "8", "bitsize": "8", "value": {">=": [{"var": "value"}, 1]} } }, "datafield": [ { "data": "Illumination", "shortcut": "ILL", "bitoffs": "8", "bitsize": "8", "iobroker": { "role": "value.brightness", "type": "number", "read": true, "write": false, "unit": "lx" }, "value": { "+": [ { "*": [ { "-": [ { "var": "value" }, 1 ] }, 116.92913 ] }, 300 ] }, "decimals": 0 } ] } ] }
Wenn ich es richtig verstehe, verwendest du bei 0-50 lux den Wert direkt, bei 300-30000 lux den Wert multipliziert mit 116,92913 + 300.
Im Datenblatt zum FAH60B steht aber:
FAH-Modus:
Lerntelegramm: 0x18080D80 Datentelegramm nach EEP: A5-06-01 Data_byte3 = Helligkeit 0-50 lux, linear n = 0x00-0x64
(nur gültig wenn DB2 = 0x00) Data_byte2 = Helligkeit 300-30.000 lux, linear n = 0x00-0xFF
Data_byte1 = -
Data_byte0 = 0x08D.h. bei 0-50 lux musst du den Wert durch 2 teilen und nicht direkt verwenden.
Mir ist das aufgefallen, weil ich im Grafana-Plot fein abgestufte Werte im Bereich 0 bis 100 lux sehe, danach die größeren Sprünge (117 lux Abstände). Das sollte aber nur im Bereich 0 bis 50 lux so sein.
Seltsam ist dann noch, dass der ILL Datenpunkt im ioBroker mit 5 Nachkommastellen ausgegeben wird, was sinnfrei ist, wenn die Auflösung nur 117 lux beträgt.
Im json Objekt steht "decimals": 0 in beiden Fällen. Warum wird das bei der Ausgabe nicht berücksichtigt?
-
Ich hab gerade 0.3.3 auf Github hochgeladen. Sind wieder ein paar fixes drin.
Die befehle werden jetzt in eine Warteschlange geschickt und dann im 50ms Takt verschickt. Bitte Testen ob die Zeit ausreichend ist oder ob noch Befehle verloren gehen. -
@jey-cee Super. Ich habe es gerade mehrfach mit meinen insgesamt 7 Relaiskontakten (FSR14-2x bzw. FSR14-4x) getestet und es hat in allen Versuchen wie erwartet funktioniert. Alle Schaltvorgänge wurden ausgeführt und es wurde kein Befehl "verschluckt".
Allerdings wäre es klasse, wenn jemand anderes das auch nochmal testet, ggf. mit mehr Aktoren.
Edit: Übrigens funktioniert auch "Block channel state" (BS) wie erwartet. Der Aktor lässt sich nach setzen von "1" (blocked) und anschließendem Übermitteln mittels CMD (z.B. durch erneuten "0"- oder "1"-Befehl) nicht mehr über angelernte Taster oder Schalter steuern, sondern nur noch via ioBroker (= "Schaltzustand von GFVS"). Die Sperre bleibt bis zum Rückstellen oder Bus-Neustart bestehen. Tolle Funktion, weil man damit z.B. Skripte an eigentlich angelernte Taster binden kann, ohne in PCT14 deren Zuordnung zu löschen, was insbesondere für ioBroker-Störungen hilfreich sein kann (weil man sonst ggf. im Dunklen stünde).
-
Wenn ich Enocean-Taster anlerne, dann werden manche mit der Zeit automatisch in den Ordner des Eltako-Aktors aufgenommen. Ich meine die im Screenshot rot markierten Datenpunkte. Passiert auch nicht bei allen. Wie kann ich das verhindern? Oder einfach manuell löschen?
Welche Widgets nutzt ihr eigentlich zur Visualisierung?
-
@iobaer die Aktoren senden die selben Telegrame wie die Taster um ihren Status mit zu teilen. Deshalb werden sie als Taster erkannt, wenn du gerade einen Taster anlernen willst. Entsprechend werden die Objekte dazu angelegt.
Die Objekte kannst du einfach löschen.
-
@jey-cee mercy für den Fix im TF-13-10.json
Ist nur ein kosmetisches Problem und deshalb nicht wirklich wichtig, aber hast du eine Erklärung dafür, warum der Parameter "decimals" nicht ausgewertet wird?
Im TF-13-10.json wird der gesetzt mit "decimals": 0
Im Packet_handler.js wird der ausgewertet in der Funktion convertValue:
async convertValue(datafield, value) { let test = false; let unit = null; let secondArg; //if secondArgument is given this will be filled with this value that comes from other datafield if(datafield.secondArgument){ secondArg = await this.getValue(this.telegram.userData, datafield.secondArgument); test = jsonLogic.apply(datafield.condition, {'value': value, 'value2': secondArg.val}); if(test === false) test = null; }else if (datafield.condition) { test = jsonLogic.apply(datafield.condition, {'value': value}); } if(test !== null && datafield.value){ test = jsonLogic.apply(datafield.value, {'value': value}); } if(typeof test === 'number' && datafield.decimals){ const num = Number(test); test = num.toFixed(datafield.decimals); } if(datafield.unit){ unit = jsonLogic.apply(datafield.unit, {'value2': secondArg.val}); } return {newVal: test, unit: unit}; }
Ergo sollte der Wert mit num.toFixed(0) formatiert werden, kommt aber nicht so an im Datenfeld.
Ich würde es nur gerne verstehen.
-
@pgbroker sagte in Test Adapter EnOcean (2) v0.3.x:
Ich würde es nur gerne verstehen.
Da sind wir schon 2. Ich hab das noch nie beobachten können.
Hat jemand anderes das Phänomen auch? -
Hallo,
ich habe hier noch einen Eltako FWZ12-16A Funk Wechselstromzähler Sendemodul liegen das nicht in der Liste der Geräte ist. Kann man das selber irgendwie da reinkriegen? Gibt es irgendwo eine Anleitung wenn oder kann ich irgendwas liefern damit der in die Liste wandert?
Gruß -
Hallo zusammen, kurze Rückmeldung von mir:
- der Funktionsstecker von Telefunken/Diehl/Viessmann/Dimplex funktioniert seit der v0.3.3
- die Hoppe SecuSignal funktionieren seit der v0.3.2
- die Viessmann Klimasensoren zeigen seit der v0.3.3 auch die rel. Feuchtigkeit an (in v0.3.2 war der Datenpunkt immer "0") --> Übrigens hatte ich diese im iobroker Adapter angefragt. Danke!!!
@Jey-Cee ein kleiner Beitrag für die Kaffeekasse ist unterwegs!
-
@peter213 sagte in Test Adapter EnOcean (2) v0.3.x:
Kann man das selber irgendwie da reinkriegen?
Ja wenn du dich mit JavaScript, JSON und EEPs auskennst.
Sonst kannst du auf Github (geht auch über den Adapter) einen Request für das Geräte machen und ich schau mir das an sobald ich Zeit hab. Gerne mit Links zu allem an Doku die du hast.
Hier findest eine weitere Möglichkeit zu Unterstützen