HomeKit/Homebridge Rückmeldung bzw. Status

Begonnen von anstroe, 22 Juli 2017, 20:43:56

Vorheriges Thema - Nächstes Thema

anstroe

Schönen guten Abend zusammen.

Wir haben ein Problem mit HomeKit/Homebridge, der Status in der Home-App stimmt nicht immer mit dem tatsächlichen Status überein.
Zum Hintergrund: Wir haben zwei WAGO-SPSen am laufen, die wir über ModbusTCPServer und ModbusCoil/ModbusRegister auslesen. Die eigentlichen Lichtschalter sind Taster (haben also keinen dauerhaften An/Aus-Status) zusätzlich gibt es zu den Tastern Rückmeldungen (diese zeigen an, ob das Licht an bzw. aus ist). Da über die Rückmeldung jedoch nichts bedient werden kann, möchten wir gerne den Status der Rückmeldung als Status des Tasters angeben.
Beispiel:
WZ_Licht_Decke_Essen ist der Taster (Merker der per ModbusCoil aus der SPS ausgelesen wird),
WZ_Licht_Decke_Essen_Rueck ist die entsprechende Rückmeldung (Ausgang, der per ModbusCoil aus der SPS ausgelesen wird).

Der Taster hat folgendes homebridgeMapping:
On=WZ_Licht_Decke_Essen_Rueck.state,valueOn=on,valueOff=off,cmdOn=on-for-timer+1,cmdOff=on-for-timer+1

Grundsätzlich funktioniert das Ganze auch, wenn beim Start der Home-App der Status mit dem ausgelesenen Wert übereinstimmt, ansonsten passiert natürlich immer genau das Gegenteil.

Das Problem ist wohl, dass die Home-App/HomeKit(=?) zu Beginn mit einem leeren Status anfängt siehe Homebridge Log:  caching: On: false (as boolean; from '') kann man den Anfangsstatus irgendwie aktualisieren bzw. stimmt unser homebridgeMapping da wohl doch noch nicht?!

Kann uns da jemand von euch weiterhelfen?

Viele Grüße
Anne
Neuling mit Raspberry Pi 3B, FHEM 5.8, smartVISU 2.8, 2x Wago 750-841

justme1968

die kurze version: dein reading heisst nicht WZ_Licht_Decke_Essen_Rueck.state sondern nur state. deshalb wird das reading nicht ausgelesen und es gibt keinen start wert.

die etwas längere version: das problem ist das die On charakteristik den aktuellen und den soll zustand vereint und diese deshalb nicht aus zwei unterschiedlichen devices kommen können. bei den rollläden ist das einfacher da es je eine characteristic für den aktuellen zustand und den soll zustand gibt und diese dann auf unterschiedliche devices konfiguriert werden können.

das ganze kann man z.b. so umgehen:

nimm das device das den aktuellen zustand hält als homebridge device und definier dir dafür per cmdalias das set kommando das dann auf das schalt device geht.

oder

leg dir über ein readingsProxy device ein zusätzliches device als homebridge device an das eine kopie des aktuellen zustands hat und das set kommando auf das schalt device umleitete.

oder

kopier den aktuellen zustand per notify (als zusätzliches reading) ins schalt device und verwende dann nur noch dieses.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

anstroe

Hallo Andre,
danke für deine schnelle Hilfe! Ich habe deinen dritten Vorschlag jetzt soweit zum laufen gebracht (bin noch ziemlich neu dabei, deswegen hat das ein wenig gedauert ;-) )!
Eine Frage habe ich noch, vielleicht weißt du das ja auch: wenn ich über das notify ein setreading mache, dieses soll $EVTPART1 sein, jedoch wird mir $EVTPART1 als Hex "geliefert", kann ich das innerhalb des notify umrechnen (habe es natürlich schon versucht, aber war leider nicht erfolgreich).

Grüße
Anne
Neuling mit Raspberry Pi 3B, FHEM 5.8, smartVISU 2.8, 2x Wago 750-841

justme1968

wenn du meinst du möchtest den hex wert aus dem einen reading in dezimal für das andere reading umrechnen:

dazu musst du auf die perl ebene. etwas in der art sollte gehen: define <name> notify <device>:<reading>.* { fhem( "setreading <device2> <name> ". hex($EVTPART1) ); }

variablen und platzhalter natürlich entsprechend angepasst.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

anstroe

Super, danke, ich war zwar schon auf dem richtigen Weg, aber was so ein "." und ein ";" doch ausmachen können...  ;D
Mit den Grundlagen werde ich mich wohl noch ein bisschen beschäftigen!

Grüße
Anne
Neuling mit Raspberry Pi 3B, FHEM 5.8, smartVISU 2.8, 2x Wago 750-841