Status von device ändern ohne Aktion auszuführen

Begonnen von Pati_Alpha, 25 Oktober 2016, 00:42:22

Vorheriges Thema - Nächstes Thema

Pati_Alpha

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

schka17

Mit setstate Lampe off


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

Hollo

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
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Pati_Alpha

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

Pati_Alpha

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. :)