NEWS
"Gerät reagiert nicht", obwohl es ansprechbar ist
-
Hallo miteinander,
ich bin erst vor Kurzem auf den ioBroker gestoßen, vorher habe ich ausschließlich mit node-red gearbeitet. Um nun beide Systeme miteinander zu verbinden, nutze ich MQTT als Protokoll, um Datenpunkte hin- und herzuschieben (ich weiß, das ginge auch ohne MQTT mit dem Adapter, ich nutze MQTT aber beispielsweise auch am Smartphone, weshalb ich auf darauf einfach nicht verzichten möchte).
Mit dem Alexa Adapter habe ich nun öfter das Problem, dass Geräte angeblich nicht reagieren, obwohl sie im ioBroker im Cloud Adapter als Geräte angelegt und richtig konfiguriert sind. Das passiert meistens dann, wenn ich ein Gerät per MQTT geschaltet habe, und der alte Status noch bei Alexa "hinterlegt" ist.
Beispiel: mein PC wird mit "Alexa, Rechner an" eingeschaltet. Ich schalte ihn dann "irgendwie" (Zeitregel, MQTT, …). Möchte ich ihn wieder einschalten, sage ich noch einmal "Alexa, Rechner an" und bekomme "Rechner reagiert nicht". Sage ich dann "Alexa, Rechner aus" kommt der Bestätigungston und ich kann mit "Alexa, Rechner an" das Gerät wieder einschalten.
Alle per Alexa zu steuernden Geräte sind im ioBroker als eigene Objekte angelegt. Per MQTT Client werden die werde an meinen MQTT Server übermitelt, von dort gehen sie u.A. in node-red, und da ist ein Großteil der Logik, wann welche Geräte wie geschaltet werden. Der MQTT Client published diese Werte nur, abonniert sie aber nicht. Aaaaalso dachte ich, dass Alexa wahrscheinlich nicht damit klar kommt, wenn ein Gerät auf "true" steht und erneut auf "true" gestellt werden soll - der Umzug mit einfach auf false setzen ("Alexa, Rechner aus") und dann wieder auf true ("...") klappt ja.
Also habe ich bei den Objekten auch abonnieren aktiviert; wenn ich jetzt per MQTT ein Gerät ausschalte, wird der Status im ioBroker auch unter Objekte korrekt angezeigt (also war via Alexa false, wurde via MQTT auf true gesetzt). Trotzdem habe ich manchmal -aber NICHT immer- das Problem, dass Geräte angeblich nicht reagieren.
Habt Ihr eine Idee, woran das liegen könnte? Dass die Alexa und Cloud Adapter erfolgreich verbunden sind, kann ich ja problemlos testen, indem ich einfach ein anderes Gerät im selben Zimmer kurz ein- oder ausschalte; das funktioniert immer. Es muss also irgendwie trotzdem am Gerätestatus liegen.
Mir ist aufgefallen, dass ioBroker den Status als String verschickt, oder zumindest bekomme ich in node-red als Ausgabe "false" (mit Anführungszeichen und in rot, wie Strings dort dargestellt werden), und nicht false (ohne Anführungszeichen und in blau, wie boolean dargestellt wird). Vielleicht liegt es daran, allerdings sieht der Objektstatus im ioBroker immer korrekt aus (würde ich dort boolean senden, aber es würde ein string erwartet, käme ja irgend ein Fehler..?).
Vielen Dank im Voraus für Eure Lösungsansätze