FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Pati_Alpha am 25 Oktober 2016, 00:42:22

Titel: Status von device ändern ohne Aktion auszuführen
Beitrag von: Pati_Alpha am 25 Oktober 2016, 00:42:22
Hallo,

gibt es eine Möglichkeit den Status von einem device z.B. per notify zu ändern OHNE die entsprechende Aktion auszuführen?
Zum Beispiel eine Lampe auf off setzen ohne den Funkcode zu senden?

Viele Grüße
Titel: Status von device ändern ohne Aktion auszuführen
Beitrag von: schka17 am 25 Oktober 2016, 01:43:39
Mit setstate Lampe off


Sent from my iPad using Tapatalk
Titel: Antw:Status von device ändern ohne Aktion auszuführen
Beitrag von: Hollo am 25 Oktober 2016, 10:02:59
Auszug aus der commandref als Erläuterung:
Zitatsetstate

    setstate <devspec> <value>

    Der Befehl setzt den STATE Eintrag des Gerätes direkt, ohne Ereignisse zu generieren oder ein Signal an das Gerät zu senden. Dieser Eintrag ist maßgebend für die Status-Anzeige in diversen Frontends. Dieser Befehl wird auch im statefile benutzt.
    Siehe den Abschnitt über Geräte-Spezifikation für Details der <devspec>.

    Beispiel:
        setstate lampe An
Titel: Antw:Status von device ändern ohne Aktion auszuführen
Beitrag von: Pati_Alpha am 25 Oktober 2016, 11:23:22
Ah, vielen Dank euch!!

Ich habe das immer als "set Lampe on" übersehen und dachte mir sogar grade kurz erst "aber das schaltet das device doch...?".
Entschuldigt die schusselige Anfängerfrage! :P
Titel: Antw:Status von device ändern ohne Aktion auszuführen
Beitrag von: Pati_Alpha am 25 Oktober 2016, 11:55:05
Noch ein Nachtrag nach dem Testen falls das hier jemand für HomeBridge nutzen will:

Meine Idee war/ist ein notify auf die Funktelegramme die von den Funkfernbedienungen kommen zu setzen.
Der Hintergrund dazu ist, dass die Telegramme meiner Fernbedienung leider nicht korrekt interpretiert werden von pilight und FHEM somit nicht direkt mitkriegt, wenn ich mit der Fernbedienung ein device direkt schalte. Deswegen habe ich einfach ein notify erstellt und wollte damit dann den Zustand der jeweiligen Lampe aktualisieren, damit im Webinterface etc. alles up-to-date bleibt wenn ich mit der Fernbedienung schalte.

Das Dumme ist nur: empfange ich das Telegramm (dann ist die Lampe durch die FB ja schon eingeschaltet worden und bei manchen meiner FBs kann man auch leider keinen Systemcode ändern) und ändere den Zustand der Lampe mit "setstate" schaltet FHEM die Lampe nochmal. Daraus resultiert, dass er nochmal das gleiche Telegramm empfängt (wird als angelernter RAW Code gesendet, wird also von pilight beim Empfang genau so interpretiert wie das original Telegramm von der Fernbedienung) und nochmal das device schaltet. Dadurch entsteht eine Schleife und nichts geht mehr.

Ich habe es dann nun mit "setstate" probiert, das funktionierte zwar aber nur eingeschränkt.
Probleme:
- Das Webinterface updated sich nicht automatisch, man muss die Seite neu laden
- Bei HomeKit (zB am iPhone) bleibt die Lampe, die mit "setstate" geändert wurde im alten Zustand

Gelöst habe ich das nun, indem ich statt "setstate" "setreading" benutze. :)
Damit wird das device im Webinterface UND in HomeKit direkt im Status geändert OHNE, dass eine Aktion ausgeführt wird, es entsteht als keine Endlosschleife und trotzdem kriege ich in FHEM (und damit Webinterface und HomeKit) mit, wenn ich/jemand mit der normalen Funk-Fernbedienung geschaltet hat. :)

Entschuldigt die Verwirrung, aber vielleicht hilft es ja jemandem. :)