NEWS
[Aufruf] deConz Adapter Testen 1.1.2
-
@Jey Cee:Das mit dem Tastet ist Theoretisch schon gelöst und ist eine der Änderungen. Da wird das ganze Handling für Statusmeldungen überarbeitet. Dann sollte das erledigt sein.
Bis dahin ist die Lösung für den Taster den Zeitstempel zu überprüfen und wenn exakt 50 Minuten (+- ein paar Sekunde) vergangen sind, ist es nur eine Aktualisierung.
Gesendet von meinem m8 mit Tapatalk `
OK, danke für deine Info und deinen Einsatz. `
Ich habe das mit dem Taster in der Zwischenzeit mit einem Skript gelöst - funktioniert nun so wie es soll.
Sollte jmd. Interesse haben kann ich es hier auch posten.
Toll wäre wenn wir den Xiaomi-Cube noch zum Laufen bringen könnten. Leider habe ich keinen den ich zur Verfügung stellen könnte.
Hat den sonst schon wer in seinem Besitz?
-
Der Cube läuft bei mir, bis eben auf die angesprochene Dopplung der Namen, wodurch nur einer der beiden Sensoren durch kommt.
-
Ich habe Interesse an dem Skript.
Meine Frau dreht schon hohl, weil den ganzen Tag das Licht
An und aus geht
Vielen Dank im voraus.
-
@Pman alter oder neuer Cube?
Der neue Cube scheint Probleme zu machen.
Gesendet von meinem m8 mit Tapatalk
-
Der neue denke ich (Aqara). In Phoscon werden nach Anlernen 2 Sensoren erstellt, jeweils mit Buttonevent und Temperatur. Ein Buttonevent wird bei "auf der Stelle drehen" des Cubes gesetzt (grob der Winkel, um den gedreht wurde), der andere bildet die Seite ab, auf der der Cube liegt.
Wenn irgendwas nicht gehen soll müsste ich mal genauer wissen was, damit ich testen kann.
Ich sehe erst jetzt, dass bei Updates über websocket ein Polling folgt, hat das einen bestimmten Grund?
-
Für das Polling gibt es 2 Gründe.
Ursprünglich hat der Adapter nur mit polling gearbeitet.
Und es war zum Zeitpunkt der Umstellung einfacher für mich nur die Sensor ID an die Polling Funktion zu über geben.
Das war nie als Dauerlösung gedacht, aber ich hab irgendwann einfach vergessen das ich das noch ändern wollte.
Das wird auch mit dem nächsten update geändert.
Gesendet von meinem m8 mit Tapatalk
-
Ich habe Interesse an dem Skript.
Meine Frau dreht schon hohl, weil den ganzen Tag das Licht
An und aus geht
Vielen Dank im voraus. `
Gerne.
Ich habe dazu zuerst zwei Variablen definiert. In der einen gebe ich die Zeit an in der der Taster normalerweise diese Alive-Messages sendet (50min). In der zweiten Variable definiere ich den Toleranzbereich (sollte die Nachricht erst etwas später im IoBroker ankommen).
Anschließend habe ich für den Taster eine Variable definiert in der ich den Zeitstempel der letzten Nachricht des Tasters speichere.
Wenn dann ein neues Event getriggert wurde, prüfe ich zuerst ob es genau nach 50min +- ein paar Sekunden gesendet wurde oder davor. Somit kann genau unterschieden werden ob der Button gedrückt oder eine Alive-Msg gesendet wurde.
var v_Diff_LastMessage_sec, v_Diff_nach_Intervall; on({id: 'deconz.0.Smart_Switch_02.buttonevent', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; v_Diff_LastMessage_sec = 0; v_Diff_LastMessage_sec = (getState("deconz.0.Smart_Switch_02.buttonevent").ts - getState("admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg").val) / 1000; v_Diff_nach_Intervall = v_Diff_LastMessage_sec - getState("admin.0.Xiaomi_Aqara_Taster.AliveMsg_Intervall_sec").val; if (getState("admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg").val == '') { } else { if (v_Diff_nach_Intervall > getState("admin.0.Xiaomi_Aqara_Taster.AliveMsg_Toleranz_Sec").val || v_Diff_nach_Intervall < 0) { if (getState("deconz.0.Smart_Switch_02.buttonevent").val == 1002) { getState("deconz.0.On_Off_Kaffeemaschine.on", function (err, state) { setState("deconz.0.On_Off_Kaffeemaschine.on"/*On/Off Kaffeemaschine on*/, state ? !state.val : true); }); } else if (getState("deconz.0.Smart_Switch_02.buttonevent").val == 1004) { } else if (getState("deconz.0.Smart_Switch_02.buttonevent").val >= 1006) { } } else { } } setState("admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg"/*Smart_Switch_02_Timestamp_AliveMsg*/, getState("deconz.0.Smart_Switch_02.buttonevent").ts, true); });
-
Danke, ich versuch das mal anhand des Bildes nachzubauen.
Magst Du das Skript noch mal richtig als Code anhängen und nicht als Zitat?
Ich versuche zu verstehen was da gemacht wird und bis Jee Cee die neue Version von seinem genialen
Adapter raus bringt, könnte das die Übergangslösung sein.
-
Und jetzt noch als Blockly-Export, das wäre erste Sahne
Ich weiß noch nicht wie ich an die Datenpunkte
AliveMsg_Intervall_sec, AliveMsg_Toleranz_Sec und Smart_Switch_02_Timestamp_AliveMsg komme?
Kannst Du mir da einen Denkanstoß geben?
-
Und jetzt noch als Blockly-Export, das wäre erste Sahne
Ich weiß noch nicht wie ich an die Datenpunkte
AliveMsg_Intervall_sec, AliveMsg_Toleranz_Sec und Smart_Switch_02_Timestamp_AliveMsg komme?
Kannst Du mir da einen Denkanstoß geben? `
Hier noch der Export dazu, das ist am einfachsten
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="|1YtKD%HFcl=N[1b4n+z" x="13" y="13"><mutation items="1"></mutation> <field name="CONDITION">any</field> <value name="OID0"><shadow type="field_oid" id="i2o=NsLcn2-9^e}g^wr)"><field name="oid">deconz.0.Smart_Switch_02.buttonevent</field></shadow></value> <statement name="STATEMENT"><block type="variables_set" id="}q4cwMSxi%F~NN2Ab2Sk"><field name="VAR">v.Diff_LastMessage_sec</field> <value name="VALUE"><block type="math_number" id="RP9~Ybz=}T7#c2lI4jV@"><field name="NUM">0</field></block></value> <next><block type="variables_set" id="j/i[P[QOZdB?0a{#rJoz"><field name="VAR">v.Diff_LastMessage_sec</field> <value name="VALUE"><block type="math_arithmetic" id="^UdA%~tCch|/dAgHx[VN"><field name="OP">DIVIDE</field> <value name="A"><shadow type="math_number" id="fo0Lk+SVh;y7}w?L5my5"><field name="NUM">1</field></shadow> <block type="math_arithmetic" id="+_cF:Fa8{p|)n2vjP=|."><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="Di6k3.#BjftD)AUk{2g["><field name="NUM">1</field></shadow> <block type="get_value" id="pO(-k9Yw9U=e2haNsx+3"><field name="ATTR">ts</field> <field name="OID">deconz.0.Smart_Switch_02.buttonevent</field></block></value> <value name="B"><shadow type="math_number" id="1-Xqq0.RHGuYFofkE,JQ"><field name="NUM">1</field></shadow> <block type="get_value" id="#B.^ELOggZ-;0FP@@hSG"><field name="ATTR">val</field> <field name="OID">admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg</field></block></value></block></value> <value name="B"><shadow type="math_number" id="-)U{b@u_t0l@YOML_iaw"><field name="NUM">1000</field></shadow></value></block></value> <next><block type="variables_set" id=",OG{f;]Y17-sk,fQ8-!`"><field name="VAR">v.Diff_nach_Intervall</field> <value name="VALUE"><block type="math_arithmetic" id="7b4s_HKN*@@VIRw,C9_X"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id=",I3SwNv7_frg2,b1^GNk"><field name="NUM">1</field></shadow> <block type="variables_get" id="-6t9ckZBeByN2uCD|wB!"><field name="VAR">v.Diff_LastMessage_sec</field></block></value> <value name="B"><shadow type="math_number" id="0v/XP=^)l=Vxv[Sr@yp,"><field name="NUM">1</field></shadow> <block type="get_value" id="%UmTTa)a9@:|PBD^.?:C"><field name="ATTR">val</field> <field name="OID">admin.0.Xiaomi_Aqara_Taster.AliveMsg_Intervall_sec</field></block></value></block></value> <next><block type="controls_if" id=";srimx=CWxxkEV}D7Jrt"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="jrc1XW~7,7t]33ubC;2%"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="|Bu~IsyZvANKr]o9t#TR"><field name="ATTR">val</field> <field name="OID">admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg</field></block></value> <value name="B"></value></block></value> <statement name="ELSE"><block type="controls_if" id="*kNv;yDxP:5YmvdA``Gd"><mutation else="1"></mutation> <value name="IF0"><block type="logic_operation" id="C|VJQ@p;qF]V,8x/_@i+"><field name="OP">OR</field> <value name="A"><block type="logic_compare" id="ZqU97#,@7Q}y!0*5bV*2"><field name="OP">GT</field> <value name="A"><block type="variables_get" id="sOpnJ;HF@_R@0?ZrbA|%"><field name="VAR">v.Diff_nach_Intervall</field></block></value> <value name="B"><block type="get_value" id="{c7Qbp2c{,DuCJj.Tc.q"><field name="ATTR">val</field> <field name="OID">admin.0.Xiaomi_Aqara_Taster.AliveMsg_Toleranz_Sec</field></block></value></block></value> <value name="B"><block type="logic_compare" id="tvZ8.o!mP#l,I-u@n^=E"><field name="OP">LT</field> <value name="A"><block type="variables_get" id="C6KP`c7jRj9y[[F:GDcF"><field name="VAR">v.Diff_nach_Intervall</field></block></value> <value name="B"><block type="math_number" id="TIiy.nC+hd.HynL-HR`T"><field name="NUM">0</field></block></value></block></value></block></value> <statement name="DO0"><block type="controls_if" id="iok2wV[4Lxotoe:BC2c)"><mutation elseif="2"></mutation> <value name="IF0"><block type="logic_compare" id="WR)3%#OuQ)1yiX%+,-Dt"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="_jgd_H=+Sz-U0D!dKBBY"><field name="ATTR">val</field> <field name="OID">deconz.0.Smart_Switch_02.buttonevent</field></block></value> <value name="B"><block type="math_number" id="G+]u4!)ORB.hImy8p1(a"><field name="NUM">1002</field></block></value></block></value> <statement name="DO0"><block type="toggle" id="o)6qu}S(lx5A-ZS`p0=+"><mutation delay_input="false"></mutation> <field name="OID">deconz.0.On_Off_Kaffeemaschine.on</field> <field name="WITH_DELAY">FALSE</field></block></statement> <value name="IF1"><block type="logic_compare" id="t5!K4,;ld?n1UJLkUCEm"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="P/lXg3#)w%@4^{M2?wT{"><field name="ATTR">val</field> <field name="OID">deconz.0.Smart_Switch_02.buttonevent</field></block></value> <value name="B"><block type="math_number" id="/gpIR5y_`rc.ASbx~dZ|"><field name="NUM">1004</field></block></value></block></value> <value name="IF2"><block type="logic_compare" id="Hj,B95w%[%[:)hm8~41*"><field name="OP">GTE</field> <value name="A"><block type="get_value" id="|lV6A9+pZs6n_B*KpHc#"><field name="ATTR">val</field> <field name="OID">deconz.0.Smart_Switch_02.buttonevent</field></block></value> <value name="B"><block type="math_number" id="=ek!nC2fpjr}5O;0#{*2"><field name="NUM">1006</field></block></value></block></value></block></statement></block></statement> <next><block type="update" id="1q7f_39o(PGDjMw,K{jZ"><mutation delay_input="false"></mutation> <field name="OID">admin.0.Xiaomi_Aqara_Taster.Smart_Switch_02_Timestamp_AliveMsg</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="eh,Zc@K_b_^ge%xcoOvM"><field name="ATTR">ts</field> <field name="OID">deconz.0.Smart_Switch_02.buttonevent</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></xml>
Die drei Variablen musst du selbst als Datenpunkte bei den Objekten anlegen. Ich habe es beim vorhandenen Ordner "admin" gemacht - Plus-Symbol in der Leiste darüber auswählen - ich hoffe nur dass mir diese Variablen nicht mal bei einem Update gelöscht werden. Aber besseren Ort habe ich vorerst mal nicht dafür gefunden.
-
wow, vielen Dank, das Anlegen der Objekte hat zwar etwas gedauert, aber jetzt hab ich es hinbekommen.
Der Test läuft gerade noch mit meinem Single-Button Xiaomi Taster. Jetzt passe ich noch meinen Dual-Taster
an. Vielen, vielen Dank nochmal …
..edit:
jetzt nach einem Tag kann ich bestätigen, das das Skript perfekt funktioniert, beide Taster
schalten nur noch dann wann sie sollen.
-
wow, vielen Dank, das Anlegen der Objekte hat zwar etwas gedauert, aber jetzt hab ich es hinbekommen.
Der Test läuft gerade noch mit meinem Single-Button Xiaomi Taster. Jetzt passe ich noch meinen Dual-Taster
an. Vielen, vielen Dank nochmal …
..edit:
jetzt nach einem Tag kann ich bestätigen, das das Skript perfekt funktioniert, beide Taster
schalten nur noch dann wann sie sollen. `
Freut mich zu hören dass es klappt. Jetzt würde mich allerdings interessieren welchen Dual-Taster du verwendest. Ist dieser auch von Xiaomi?
Kenne nur den Sonoff Touch.
-
Hallo
Da ich Probleme mit der Installation von Deconz hatte habe ich das img für den RPi3 installiert.
Habe dann ioBroker installiert und das Backup von der alten Installation aufgespielt.
Da ich aber z.Z. mich bei Phoscon nicht anmelden kann und auch das Passwort dort nicht zurücksetzen kann,
kann ich den API-Key nicht erzeugen.
Kann man mit der Deconz GUI auch den API-Key erzeugen, wenn ja wie.
Wie kann ich in Phoscon ein neuen Login anlegen ?
Gruß NetFritz
-
@NetFritz irgendwas passt da nicht. Standard Passwort und Benutzer ist "delight".
Du wirst keinen neuen Login anlegen können wenn du dich nicht anmelden kannst.
Ich wüsste nicht wie man in deConz einen API Key erzeugen kann, das geht meines wissens nach nur über die WebAPP oder Phoscon.
Jedenfalls scheint mir dein Problem eins zu sein wobei dir eher Dresden Elektronik helfen kann, da es deConz spezifisch ist.
-
Hallo
Danke für die Antwort.
Standard Passwort "delight" und Benutzer ist "pi".
Habe mir schon gedacht das Dresden Elektronik der richtige Ansprechpartner ist.
Konnte mich heute auf einmal ohne Passwort in Phoscon einloggen.
Werde mal bei Dresden Elektronik anrufen.
Gruß NetFritz
-
Ich hab gerade die Version 0.2.2 auf Github hochgeladen.
Folgendes wurde geändert:
- Benennung der IDs in ioBroker
- Berücksichtigung der Zeitstempel für die Aktualisierung von states
<size size="150">Achtung!!!</size>
Durch die geänderte Benennung der IDs muss der Adapter zu erst gelöscht werden. Und im Anschluss alle Skripte angepasst werden.
Getestet mit deConz Version 2.5.31.
-
Hey Jey Cee!
Danke das du dich weiter um den Adapter kümmerst.
Habe Ihn deinstalliert und die neue Version Installiert. Leider bleibt das Problem bestehen. Zwar sind meine Sensoren, die ich ja schon in Phoscon umbenannt hatte auch bei ihrer Benennung geblieben. Sprich "Sensor1, Sensor2, Sensor3" aber nachdem ich einen Sensor löschte um zu testen ob es nun mit dem Hinzufügen via Phoscon oder auch via Adapter besser funktioniert, kam es zu den selben/ähnlichen Fehlern wie vorher auch.
Was ich also testete:
Hinzufügen der Aqara Multisensoren via Phoscon App.
Das bleibt ergebnislos. Das Hinzufügen ist zwar möglich, der Adapter erstellt aber unzählige weitere Objekte ohne Inhalt nach dem ersten triggern. Auch die Objekte Himidity Temerature und Pressure existieren zwar haben aber keinen Inhalt.
Hinzufügen der Sensoren via deconz Adapter.
Funktioniert auch nicht, es werden unzählige Objekte hinzugefügt die alle leer sind.
Hinzufügen via Phoscon und umbenennen in Phoscon
Trägt keine Früchte.
Hinzufügen via deconz Adapter und danach umbenennen in Phoscon
Dieses verfahren lief in der vorherigen Version solange man nicht die automatisch generierten Objekte mit der ID aus der Objekte Liste entfernte. Siehe meine vorherigen Posts.
Inzwischen funktioniert das allerdings nicht mehr. Es werden automatisch weitere Objekte generiert aber alle ohne Inhalt. Siehe Bild oben.
Falls du etwas benötigst, melde dich!
Viele Grüße!
-
Falls du etwas benötigst, melde dich! `
Welche Version von deConz verwendest du?Die vielen Geisterobjekte sind keine, die Zugehörigen Objekte werden nur nicht on the fly angelegt. Ein Adapter Neustart sollte das beheben.
Was ich mir aber nicht erklären kann ist das keine Daten übertragen werden. Ich hab kein Multisensor von Xiaomi um das zu Testen, aber der Taster den ich hab Überträgt Daten.
@all kann das jemand noch Testen bitte.
-
Aqara Cube funktioniert jetzt wie erwartet, es werden in Deconz und im Adapter jeweils 2 logische Sensoren erstellt. Phoscon zeigt beide zusammen als ein Gerät an, davon nicht verwirren lassen.
Manchmal muss ich nach dem Anlernen von Sensoren nicht nur den Adapter sondern auch Deconz neustarten.
Ich denke es wäre Sinnvoll neben einem Screenshot der Adapterdatenpunkte noch die Ausgabe von http://<deconz ip="">/api/<api key="">/sensors/ zu posten. Wenn schon in Deconz etwas nicht stimmt, kann der Adapter das nicht retten. Dann wäre das eher ein Fall für hier:
https://github.com/dresden-elektronik/d … est-plugin</api></deconz>
-
@Jey Cee:Falls du etwas benötigst, melde dich! `
Welche Version von deConz verwendest du?Die vielen Geisterobjekte sind keine, die Zugehörigen Objekte werden nur nicht on the fly angelegt. Ein Adapter Neustart sollte das beheben.
Was ich mir aber nicht erklären kann ist das keine Daten übertragen werden. Ich hab kein Multisensor von Xiaomi um das zu Testen, aber der Taster den ich hab Überträgt Daten.
@all kann das jemand noch Testen bitte. `
Ich spiele gerade wieder das Backup ein und kann dir nicht die 100%ige Versionsnummer sagen. es ist die mit der 31 am Ende.
Einen Neustart des Adapters habe ich selbstverständlich probiert. Bei mir werden die neu angelernten Objekte sowieso immer erst nach einem Neustart zu den Objekten hinzugefügt.
Wie kann ich dir am besten helfen mit den Aqara Sensoren? Kann ich dir irgendwelche Logs oder so schicken die es dir einfacher machen? Oder vielleicht mal so nen Ding zuschicken?
Grüße!