ich habe ein Modul zur Einbindung der Dyson-Geräte geschrieben, die per Dyson Link App angebunden werden können.
Das umfasst offensichtlich Lüfter und Staubsaugerroboter.
Das Modul benötigt das installierte Modul [Modul] MQTTClient. An dieser Stelle herzlichen Dank an KaiS, der mir mit diesem Modul die Arbeit mit der MQTT-Kommunikation deutlich erleichtert hat.
Ich habe das bisher nur für ein bestimmten Typ (Produkt-Typ 438 - Dyson Pure Cool Turmventilator mit Luftreiniger) realisiert.
Grundsätzlich funktioniert die Kommunikation bei den diversen Modelle gleich, es gibt aber einige Unterschiede.
Wenn jemand einen noch nicht unterstützten Typ besitzt und einbinden möchte, bitte folgendes machen
[li]Dyson Konfigurator installieren und das gewünschte Gerät anlegen
[/li][li]In der Gerät-Konfiguration findet sich die Dyson Produkt-Nummer - diese benötige ich dann zusammen mit der korrekten Typenbezeichnung.
[/li][li]Dann bitte folgende Schritte durchführen:
[/li]
[ul]
[li]Instanz-Debug aktivieren und groß genug dimensionieren
[/li][li]Action Status aktualisieren auslösen
[/li][/ul]
Die Informationen und den Debug dann bitte an mich schicken (demel42@web.de)
heute morgen mal ein bisschen gespielt und dann hatte ich ein paar Fehlermeldungen im Log:
15.07.2020, 07:45:24 | FlowHandler | Kann Daten nicht zur Instanz #18605 weiterleiten: <br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>539</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>539</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>539</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>539</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>540</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>541</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>637</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>637</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>638</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>657</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>657</b><br />
<br />
<b>Notice</b>: Trying to access array offset on value of type int in <b>/mnt/data/symcon/modules/.store/demel42.dyson/DysonDevice/module.php</b> on line <b>658</b><br />
RESULT:
ID 18605 = Device
Gerade gesehen, ein Update war im beta Kanal verfügbar, habe ich jetzt installiert, aber noch nicht getestet, werde es beobachten!
da war ein Bug bei dem STATE-CHANGE und dem Ändern des Drehwinkels. Ich habe es gerade als Beta eingestellt.
Ich nehme an, das das Update, das du erwähnt hast, noch etwas anderes betraf, also sicherheitshalber nochmal auf update prüfen
vielen Dank für die Entwicklung des Moduls.
Mit dem Produkt-Typ 438 funktioniert bei mir alles einwandfrei.
Ich habe dir gerade eine E-Mail mit einem Debug-Log von dem Produkt-Typ 455 (Dyson Pure Hot+Cool Link) gesendet.
Die Änderung auf den Produkt-Typ 438 hat leider gezeigt, dass die bestehenden Variablen nicht mit dem Produkt-Typ 455 funktionieren.
Vielen Dank für das Modul. Ich habe einen Pure Cool Turmventilator von Dyson.
Das Modul sowie das MQTT von KaiS habe ich installiert. Wenn ich das Gerät über den Konfigurator erstelle , werden „nur“ 3 Variablen angelegt.
Ich hätte auch noch eine kurze Anregung für eine Verbesserung des Moduls.
Wir haben einen Dyson-Luftreiniger an einer Steckdosenleiste, welche nicht immer an ist (um Strom zu sparen) und sobald das Modul bzw. der MQTT-Client die Verbindung verliert, wird der Symcon-Log im Sekundentakt mit Warnungen überflutet:
28.07.2020, 08:47:33 | MQTTClient | Connect failed (No route to host)
28.07.2020, 08:47:33 | DysonDevice | has no active parent instance
Kann man diese Warnung irgendwie unterdrücken oder die MQTT-Instanz mit einem Ereignis deaktivieren? Wenn ich händisch die MQTT-Instanz deaktiviere, dann wird sie automatisch sofort wieder aktiviert, wenn das Moduls eine Anfrage startet.
Aktuell lösche ich das Dyson Device und die MQTT-Client-Instanz, wenn die Steckdosenleiste aus ist.
Soweit scheint es nun zu funktionieren. Ich kann in der Testumgebung die einzelnen Funktionen schalten.
Nur wie bekomme ich das in einem Skript hin … stehe da irgendwie auf den Schlauch.
Wäre für ein kurzes Code Beispiel dankbar.
Ich werde in das DysonDevice noch einbauen, das die Instanz deaktiviert ist, womit die zyklische Abfrage unterbleiben wird ( wundert mich etwas, das das fehlt, weil ich das in alle Module einbaue ).
Wie deaktivierst du denn den MQTTClient-Splitter?
meiner Erfahrung nach der MQTTClient macht alle 5s den Versuch, den IO wieder zu aktivieren. Das das nicht mein Modl ust, habe ihc da keinen unmittelbaren Ansatz.