NEWS
[Aufruf] deConz Adapter Testen 1.1.2
-
Das hier steht im Log: `
Stimmt der Port 8080?Und die IP 192.168.178.82?
Außerdem Danke dank dem Log habe ich herausgefunden das ich die Fehlerbehandlung hier ändern muss.
-
Bei mir funktioniert es nach wie vor nur, wenn ich im Iobroker-Adapter den Port rauslösche.
-
Das werde ich versuchen, sobald ich wieder zu Hause bin.
Habe die Defaulteinstellung gelassen, da ich nirgendwo eine Portnummer gefunden habe. Danke für den Tipp. Ich melde mich, sobald ich es getestet habe.
Gruß DocGame
-
Hurra…
wenn ich den Port rauslasse klappts.
Allerdings muss mann zuerst in Phoscon "App Verbinden" anklicken und dann im Adapter "API Key erstellen". In der umgekehrten Reihenfolge geht es leider nicht.
Danke an alle....
-
Moin Moin!!
Ich hatte in letzter Zeit ziemliche Schwierigkeiten mit meinen Sensoren. Ich weiß nicht ob es an dem Update auf deconz v2.1 lag oder an anderen Umständen.
Teilweise wurden von meinen Aqara Multisensoren nur bestimmte Werte aktualisiert. Z.B. Nur Temp. des Sensors allerdings nicht die Luftfeuchte oder der den Luftdruck.
Derzeit befinde ich mich auf: API 1.0.9, deConz Version: 2.5.31
Seit Tagen probiere ich verschiedene Sachen aus um es wieder ans Laufen zu bekommen. Inzw. habe ich sogar das komplette Gateway resetet.
Folgendes scheint mehr oder weniger erstmal zu funktionieren:
In Phoscon sind keine Sensoren vorhanden (außer dem Standardmässigen).
<list type="decimal">3. Im deconz Adapter eine Zeit fürs öffnen des Gateways eintragen z.b. 30Sek, speichern und Adapter neustarten.
-
Den Adapter wieder öffnen und auch das Gateway für neue Geräte öffnen. Die 30 Sek. laufen nun runter.
-
Ich drücke und halte am Aqara Multisensor den Knopf zum koppeln bis er aufblinkt.
-
Wenn der Sensor kurz darauf kurz schnell hintereinander blinkt hat er sich verbunden. In dem Adapter ist davon nichts zu erkennen. In der Phoscon App allerdings schon.
-
Nun den Adapter neustarten. Jetzt ist auch im Adapter etwas hinzugekommen. 3 Geräte Pressure, Humidity, Temperature. Jeweils mit ihren IDs. In den ioBroker objekten sieht es genauso aus. In Phoscon ist nur einer der 3 IDs bzw. Namen zu finden.
-
In Phoscon nun den Namen umbenennen in z.B. Sensor2
-
Adapter neustarten.
-
Nun findet man unter den Objekten sowohl die 3 IDs Pressure, Humidity, Temperature, als auch das Objekt Sensor2.
-
Die Werte in den IDs verändern sich nun nicht mehr. Nur die Werte die unter Sensor2 zu finden sind.
-
Löscht man allerdings die ID Objekte funktioniert das Sensor2 Objekt auch nicht mehr.
Lässt man Punkt 5. weg und benennt direkt in Phoscon um, und startet danach neu, erscheint sowohl in den Objekten als auch in dem Adapter selbst nur das Gerät: "Sensor2".
Die Werte des Sensor2 unter Objekte ändert sich allerdings nicht.
Dementsprechend ist dieser Weg unbrauchbar.
Ich habe mal 2 Logs angehängt. Einmal mit der funktionierenden Methode und einmal die nicht funktionierende.
Ich hoffe ich kann dir damit weiterhelfen.
Wenn du noch etwas von mir benötigst, melde dich einfach.
Viele Grüße!
-
-
Das liegt meiner Meinung nach hier dran:
https://github.com/Jey-Cee/ioBroker.dec … in.js#L806
Die Sensoren in Phoscon haben bei mir keine Zahl im Namen, daher werden sie im Adapter auch nie umbenannt bei Dopplungen, ergo überschreibt der zweite Sensor mit selben Namen sofort den ersten, Änderungen kommen dann nur vom Sensor mit der höchsten Id an. Ich bin mir nicht sicher, was Jey-Cee mit dem Test beabsichtigt, daher auf eigenes Risiko: lösche aus dieser Zeile und Zeile 1097 "match === true &&" raus. Danach sollten zumindest alle Sensoren aufgelistet werden.
Ich glaube die sicherste Methode zu Benennung wäre es die Ids (Zahlen) aus Deconz 1:1 als Id in ioBroker zu übernehmen, das ist auch sicher gegen Umbenennung der Geräte. Der Name steht ja zusätzlich noch im Name-Feld. Um Dopplung der Ids zwischen Lampen und Sensoren zu verhindern sind ja noch die Channels da.
-
Ich hab schon angefangen die ID Benennung zu ändern. Jetzt wird noch der Name verwendet, in Zukunft der Typ (light, Sensor, group) und die ID aus deConz. Damit ist das Problem behoben.
Dauert nur noch etwas bis ich das Veröffentliche weil damit einher gehen noch andere Änderungen.
Gesendet von meinem m8 mit Tapatalk
-
@Jey Cee:Ich hab schon angefangen die ID Benennung zu ändern. Jetzt wird noch der Name verwendet, in Zukunft der Typ (light, Sensor, group) und die ID aus deConz. Damit ist das Problem behoben.
Dauert nur noch etwas bis ich das Veröffentliche weil damit einher gehen noch andere Änderungen.
Gesendet von meinem m8 mit Tapatalk `
@Jey Cee: Konntest du dir den Xiaomi Taster anschauen der dir per Post von iobrokermark zugeschickt wurde?
Ist dies dann im Update integriert?
-
Das liegt meiner Meinung nach hier dran:
https://github.com/Jey-Cee/ioBroker.dec … in.js#L806
Die Sensoren in Phoscon haben bei mir keine Zahl im Namen, daher werden sie im Adapter auch nie umbenannt bei Dopplungen, ergo überschreibt der zweite Sensor mit selben Namen sofort den ersten, Änderungen kommen dann nur vom Sensor mit der höchsten Id an. Ich bin mir nicht sicher, was Jey-Cee mit dem Test beabsichtigt, daher auf eigenes Risiko: lösche aus dieser Zeile und Zeile 1097 "match === true &&" raus. Danach sollten zumindest alle Sensoren aufgelistet werden.
Ich glaube die sicherste Methode zu Benennung wäre es die Ids (Zahlen) aus Deconz 1:1 als Id in ioBroker zu übernehmen, das ist auch sicher gegen Umbenennung der Geräte. Der Name steht ja zusätzlich noch im Name-Feld. Um Dopplung der Ids zwischen Lampen und Sensoren zu verhindern sind ja noch die Channels da. `
Aktuell habe ich es mit der beschriebenen Methode 3 Sensoren am laufen. Werde daher nichts raus löschen.
Vielleicht war es missverständlich. Ich hatte die Sensoren niemals via Phoscon hinzugefügt nur dort umbenannt. Das Hinzufügen via Phoscon trägt, wie du schon sagtest, überhaupt keine Früchte.
Finde es Klasse das du weiterhin daran arbeitest und auf die Probleme eingehst! Danke für deinen Einsatz!
-
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
-
@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.
-
@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?