NEWS
Yet another HomeKit adapter
-
@EnoceanEltako also wenn du in Homekit anschaltest, dann schreibt Homekit eine „1“ ins Objekt. Enocea . Kommt wohl mit dieser „1“ klar und schaltet das Licht. Das Objekt hleibt aber auf „1“.
Wenn du nun die Home-App schließt und öffnest, versucht diese den Status zu ziehen. Im Objekt steht aber noch immer diese „1“ oder hat Enocean diese zwischenzeitlich als „1(On)“ geändert?
Zeig uns mal die Eigenschaften von deinem CMD-Objekt (hinten mit dem Stift bearbeiten) -
@loverz meinst du das hier?
Der Entwickler des Enocean Adapters, Jey-Cee sagt dass das On(1) und Off(0) nur eine Hilfe für die Oberfläche ist. Der YAHKA Adapter sollte eigentlich 0 und 1 rauslesen können.
Dann check ich es echt nicht wieso die Stati nicht passen... oh man das nervt echtEdit: wenn ich einen Datenpunkt auswähle welcher mir true anzeigt, dann wird der Status korrekt angezeigt. Also liegt es ganz klar am Datenpunkt.
Kann mir jemand helfen damit ich quasi aus meinem cmd Datenpunkt und den Werten 1 und 2 ein true und false in einen Datenpunkt reingeschrieben bekomme?
Oder gibt es die Möglichkeit soetwas direkt über ein Skript zu lösen? (habe ja mein ganzes Haus voll mit Lichtaktoren
-
@EnoceanEltako Der Datenpunkt ist ganz klar merkwürdig Rolle Zahl für ein Schalt-Objekt?!
Normal sollte da Rolle State stehen, dann gibt es nur true und false, alles wäre klar geregelt.Man könnte ein Blockly basteln:
Wenn sich der Status ändert und = On(1) ist, dann schreibe ein anderes Objekt (mit der oben genannten State Rolle) auf True.
Das gleiche natürlich umgekehrt falls false...Vielleicht geht es auch direkt in Yahka, da kenne ich mich leider nicht aus. Vielleicht kann hier @Asgothian weiterhelfen.
-
@EnoceanEltako
assuming 1 = true, 2 = false.
toHomekit:
return (value == 1);
fromHomekit
if (value) return 1; return 2;
-
@loverz @Asgothian
Cool also damit funktioniert es schonmal wenn ich aus der Home App schalte. HomeKit bekommt es aber nicht mit wenn ich extern bspw. über einen Taster schalte. -
@EnoceanEltako funktioniert das "extern" schalten und den richtigen Status in HomeKit denn mit anderen Geräten?
-
@EnoceanEltako Ich kann dir mit den beiden kleinen Skripts leider nicht weiterhelfen, da ich sie nicht verstehe. Sorry.
Ich für meinen Teil würde ein Blockly schreiben, das kann ich. -
Ich denke die beste Lösung wäre, wenn es über die Yahka Funktionen nicht funktioniert, vielleicht das @Jey-Cee (sorry für die Verlinkung ) die Datenpunkte des Enocean Adapters richtig deklariert und auch nur "true" oder "false" und nicht "On(1)" und "Off(0)" dort angibt. Ich denke jeder der ioBroker benutzt braucht das als "Hilfe für die Oberfläche"nicht. Falls das überhaupt möglich ist, weil es ja auch einen Wert "2 Teach-In" gibt wie im Bild zu sehen:
Man kann es über eigene Datenpunkte und Skripte machen. Aber wenn du dein ganzes Haus damit voll hast ist das nicht so toll bzw. zielführend.
Ansonsten @EnoceanEltako :
https://www.smarthome-tricks.de/software-iobroker/eigene-datenpunkte-in-iobroker-anlegen/
Die angelegten Datenpunkte einfach "Standard" lassen. Also den "Datenpunkttyp" als "Logikwert" lassen. Dann musst du gucken auf was du triggern musst. Werden die CMD Datenpunkte AUSSCHLIEßLICH vom ioBroker beschrieben oder hat das Gerät vielleicht einen "Hardware Schalter" der direkt den CMD Datenpunkt beschreibt?
Wenn die CMD Datenpunkte nur durch ioBroker geschaltet werden ein Skipt schreiben welches auf deine angelegten Datenpunkte triggert und dann die CMD Datenpunkte entsprechend mit "On(1)" oder "Off(0)" beschreibt. Für die Steuerung darfst du dann aber nur noch deine angelegten Datenpunkte benutzen.Quick and dirty (geht schöner ich weiß, das Prinzip soll nur verstaden werden):
Oder nur mit 1 und 0 oder true und false bechreiben, je nachdem auf was der CMD Datenpunkt "hört". -
@el_malto der Datenpunkt CMD enthält für jedes enOcean Gerät alle Möglichen Befehle, das ist der Kompriss der Nötig war um die ganze Welt an enOcean Geräten in ioBroker zu bekommen. Das Objekt ist also vollkommen Valide und kann kein boolean sein.
EnOcean ist relativ Komplex und im Gegensatz zu den meisten anderen Standards wird mit einem Telegram nicht nur ein einfacher Befehl gesendet sondern gleich ein ganzes Set an Befehlen und Parametern.
Die Idee dahinter ist so wenig wie möglich Datenverkehr zu verursachen um möglichst wenig Strom zu verbrauchen.Man muss also zuerst Wählen welche Befehle und Parameter mit dem Telegram gesendet werden sollen und dann kann man senden.
Wo immer es möglich ist werden die Parameter und Befehle fest hinterlegt um es einfach zu halten.
Aber es gibt Tausende Geräte die ganz Unterschiedlich sind. Vom einfachen Schaltaktor, über Thermostaten bis hin zu Gateways die es ermöglichen mit Systemen wie KNX, DALI, Eltako RS485-Bus uvm. zu Kommunizieren.Für diese Freiheit muss man dann halt selber noch ein bisschen Hand anlegen und etwas Gehirn schmalz investieren.
-
@el_malto besten Dank. Muss mir das mal am Rechner anschauen. Schaffe es vermutlich morgen Abend mal.
Kann ich das auch so gestalten dass ich sage wenn wert 0 oder Off(0) ist ?
Die Geräte schalte ich auch ganz normal über Taster im Haus, über mein Smart Home Gateway wibutler und Alexa.
-
@EnoceanEltako ja du kannst abfragen was du willst. Aber den Datenpunkt nach zwei Werten die beide das gleiche sind abzufragen macht ja kein Sinn. Einfach ausprobieren ob "0" oder "Off(0)" funktioniert.
Ich kennen die Enocean Aktoren nicht. Wie hast du denn die Taster im Haus angebunden? Also hast du das auch über ioBroker verknüpft oder kommunizieren die direkt? Weil dann musst du halt gucken was Sinn macht und auf was du triggerst. Wenn die Taster und Alexa direkt den CMD Datenpunkt beschreiben macht es kein Sinn auf die angelegten Datenpunkte zu triggern.
Ansonsten einfach ein Skripte schreiben das sich beide Datenpunkte immer syncronisieren. -
@el_malto j die Taster sind quasi offline direkt mit den Aktoren verbunden.
Folgendes:
Habe bemerkt dass der „cmd“ Datenpunkt nur von iobroker zum steuern verwendet wird.
Ansonsten wenn ich von extern, also offline, wibutler app oder Alexa, schalte dann ändert sich an dem cmd Datenpunkt nichts. Sondern darüber gibt es so „Switch“ Datenpunkte (Stellen quasi einen virtuellen Taster dar), bei denen wird das dann angezeigt. Mit True und false. Sind aber nicht die Dafenpunkte mit welchen man was steuern kann. Stimmt das so oder? @Jey-Cee (sorry aber dein Input ist wertvoll falls jemand mit enocean Yahka nutzen möchte ) -
@EnoceanEltako sagte in Yet another HomeKit adapter:
Sind aber nicht die Dafenpunkte mit welchen man was steuern kann. Stimmt das so oder?
Richtig das ist die Rückmeldung des Aktuellen Zustands.
-
@Jey-Cee du könntest aber per Script die CMD Datenpunkt auf 1(On) schreiben, wenn deine Alexa den anderen Datenpunkt auf On setzt um Synchron zu bleiben.
Dieses enocean scheint echt kompliziert zu sein, frage mich, wieso das manche überhaupt einbauen.
-
@EnoceanEltako sagte in Yet another HomeKit adapter:
@el_malto j die Taster sind quasi offline direkt mit den Aktoren verbunden.
Folgendes:
Habe bemerkt dass der „cmd“ Datenpunkt nur von iobroker zum steuern verwendet wird.
Ansonsten wenn ich von extern, also offline, wibutler app oder Alexa, schalte dann ändert sich an dem cmd Datenpunkt nichts. Sondern darüber gibt es so „Switch“ Datenpunkte (Stellen quasi einen virtuellen Taster dar), bei denen wird das dann angezeigt. Mit True und false. Sind aber nicht die Dafenpunkte mit welchen man was steuern kann. Stimmt das so oder?@Jey-Cee sagte in Yet another HomeKit adapter:
@EnoceanEltako sagte in Yet another HomeKit adapter:
Sind aber nicht die Dafenpunkte mit welchen man was steuern kann. Stimmt das so oder?
Richtig das ist die Rückmeldung des Aktuellen Zustands.
Dann müsste das doch einfach mit einen "MultiState" in Yahka zu lösen sein oder nicht?
Bei "Read" den "Switch" Datenpunkt der die Rückmeldung des aktuellen Zustands angibt und bei "Write" den "CMD" Datenpunkt. -
@el_malto oh ok das kannte ich nicht. Muss ich mal probieren!
Weiterhin "script" als conversion nutzen?
Edit: Es funktioniert so wie von el_malto beschrieben! Jetzt muss ich mich noch mit dem Dimmlevel beschäftigen never ending story...
-
@EnoceanEltako wenn das auch über den CMD Datenpunkt bestätigt werden muss, wirst du über Skripte nicht mehr hinweg kommen.
-
@el_malto wieso?
Er kann doch hier einfach weitere Datenpunkte angeben:
-
@loverz Kommt drauf an wie diese Enocean Geräte funktionieren. Nach der Erklärung von @Jey-Cee könnte es so sein, dass erst der Dimmwert in einen Datenpunkt gesetzt wird und dann mit dem CMD Datenpunkt alle Parameter auf den Bus gejagt werden. Das muss @Jey-Cee oder @EnoceanEltako was zu sagen.
Wenn die Werte erst mit dem CMD Datenpunkt los gesendet werden, kann er da den Datenpunkt für den Dimmwert zwar eintragen, aber wie wird der Dimmwert dann mit dem CMD Datenpunkt bestätigt (wenn das überhaupt muss)? Es müsste ja nach den setzen des Dimmwertes der CMD Datenpunkt nochmal richtig beschrieben werden. -
@el_malto sagte in Yet another HomeKit adapter:
Nach der Erklärung von @Jey-Cee könnte es so sein, dass erst der Dimmwert in einen Datenpunkt gesetzt wird und dann mit dem CMD Datenpunkt alle Parameter auf den Bus gejagt werden.
Genau so ist es.