FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Stimming am 13 März 2019, 17:10:34

Titel: DOIF Schaltstellungswechsel erkennen
Beitrag von: Stimming am 13 März 2019, 17:10:34
Hallo Leute,

ich habe mich bisher ganz gut alleine mit Tutorials durchgeschlagen, stehe aber im Moment vor einem Problem, zu dem ich leider keine Lösung finde.

Ich habe einen gewöhnlichen mechanischen Lichtschalter mit einem Shelly 1 Aktor ausgerüstet. Ob der schalter ein- oder ausgeschaltet ist frage ich mit MQTT ab.
Geschaltet wird eine hue Lampe und die Verknüpfung, ob der Schalter betätigt wird, stelle ich über doif her.
Da die Lampe ebenfalls über Alexa gesteuert wird, soll lediglich ein Stellungswechsel des Schalters registriert werden und anhand dem Status der Lampe (on/off), die Lampe an- oder ausgeschaltet werden.

Zur Verdeutlichung meinen Code, der natürlich so nicht funktioniert.


([shelly_bad:switch] eq "1|0"  and [hueBridge1_HUEDevice21] eq "off")
(set hueBridge1_HUEDevice21 on)

DOELSE
([shelly_bad:switch] eq "1|0" [hueBridge1_HUEDevice21] eq "on")
(set hueBridge1_HUEDevice21 off)


im Vorraus vielen dank für die Hilfe

Grüße Stimming
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Ellert am 13 März 2019, 18:03:45
Nicht eq, dann ist 0|1 eine Zeichenkette. Nimm den Match-Operator (=~), dann ist es eine Regex.
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Stimming am 13 März 2019, 18:56:31
danke, funktoniert soweit, nur leider schaltet sich das Licht nun in regelmäßigen Abständen automatisch an und ab.
gibt es hierfür auch eine Lösung?
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Damian am 13 März 2019, 18:59:43
ja statt [hueBridge1_HUEDevice21] [hueBridge1_HUEDevice21:state] nehmen
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Stimming am 13 März 2019, 19:19:34
ich stehe auf dem Schlauch, Funktoniert immer noch nicht so wie es soll. Das Licht schaltet sich noch in Regelmäßigen Abständen an und aus.
so sieht der code aus:

([shelly_bad:switch] =~ "1|0"  and [hueBridge1_HUEDevice21:state] eq "off")
(set hueBridge1_HUEDevice21 on)

DOELSE
([shelly_bad:switch] =~ "1|0" [hueBridge1_HUEDevice21:state] eq "on")
(set hueBridge1_HUEDevice21 off)

attr do always

Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Damian am 13 März 2019, 19:21:26
Dann wirst du wohl die Events im Eventmonitor auswerten müssen.
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Stimming am 13 März 2019, 19:57:13
gibt es nicht sowas wie einen "Trigger", der die Schleife einmal durchlaufen lässt, bis zum nächsten wechsel des schalters?
wenn nicht, könnest du bitte näher ereutern, welche Events ich im Eventmonitor ich Auswerten soll, und wie mir das weiterhilft?
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Ellert am 14 März 2019, 19:53:23
Um das Grundverständnis über die Wirkungsweise von Events zu vertiefen, gibt es genügend Literatur,

https://wiki.fhem.de/wiki/Event
https://wiki.fhem.de/wiki/Automatisierung
https://wiki.fhem.de/wiki/Quick-Start
https://wiki.fhem.de/wiki/DOIFtools#Zugriff_auf_den_Event-Monitor_in_der_Detailansicht_des_DOIF
http://fhem.de/Heimautomatisierung-mit-fhem.pdf

um nur einiges zu nennen.

Und, die zu betrachtenden Events müssen natürlich zum Kontext passen  ;)
Titel: Antw:DOIF Schaltstellungswechsel erkennen
Beitrag von: Otto123 am 15 März 2019, 13:02:28
Hi,

mal eine Alternative, du willst doch einfach ein toggle oder?
Kann deine Lampe toggle? -> set hueBridge1_HUEDevice21 toggle

Wenn ja nimmst Du den Eventmonitor und lässt Dir ein notify dort erzeugen.
https://wiki.fhem.de/wiki/Event_monitor
Es kann auch sein, das es hilft beim shelly dies zu setzen.
attr shelly_bad event-on-change-reading .*

Sollte so etwas bei rauskommen:
define n_huetoggle notify shelly_bad:switch.*(0|1) set hueBridge1_HUEDevice21 toggle

Gruß Otto