FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ajuba am 16 April 2017, 22:04:33

Titel: GELÖST Notify: Schalten mittels zweier Schalter
Beitrag von: Ajuba am 16 April 2017, 22:04:33
Ich mache gerade meine ersten Gehversuche mit notify und versuche einen Dummy (später eine Funksteckdose) über 2 Wege zu schalten:
FS20 Fernbedienung (im toggle mode) und Dummy Schalter.

define ntest2 notify FS20_473405:.*|S_FreeTec:.* \
{\
if (Value("FS20_473405")eq "toggle"||Value("S_FreeTec") eq "on") \
{fhem ("set dum1 on")} \
elsif\
(Value("FS20_473405")eq "dimupdown"||Value("S_FreeTec") eq "off") \
{fhem ("set dum1 off")} }


Jeder Schaltzyklus EIN/AUS einzeln für sich (also immer vom selben Gerät) funktioniert auch ohne Probleme.
Wenn ich aber mische kommt vom zweiten Gerät statt des AUS Befehls auch der EIN Befehl
2017-04-16 21:46:47 dummy dum1 on
2017-04-16 21:46:47 FS20 FS20_473405 toggle
2017-04-16 21:46:52 dummy dum1 off
2017-04-16 21:46:52 FS20 FS20_473405 dimupdown
2017-04-16 21:46:58 dummy dum1 on
2017-04-16 21:46:58 dummy S_FreeTec on
2017-04-16 21:47:02 dummy dum1 off
2017-04-16 21:47:02 dummy S_FreeTec off
2017-04-16 21:47:08 dummy dum1 on
2017-04-16 21:47:08 FS20 FS20_473405 toggle
2017-04-16 21:47:13 dummy dum1 on
2017-04-16 21:47:13 dummy S_FreeTec off


Wo kann da der Fehler liegen?
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: rabehd am 16 April 2017, 22:49:52
Da steht, dass toggle immer on schaltet und dimupdown immer off.

ZitatWenn ich aber mische kommt vom zweiten Gerät statt des AUS Befehls auch der EIN Befehl
Wenn du mit Gerät die Fernbedienung und den Dummyschalter meinst, dann kommen von dort nur Zustände, die Befehle an den Steckdosendummy gibt dein notify.
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: Ajuba am 16 April 2017, 23:05:07
Ja, mit Gerät sind das echte Gerät FS20 Fernbedienung und das virtuelle DummyGerät S_FreeTec gemeint.
Ja, mit der Fernbedienung schalte ich mit kurzem Tastendruck (toggle) ein und mit langem Tastendruck (dimupdown) aus. Sobald ich aber mit S_FreeTec ON eingeschaltet hatte schaltet FS20 dimupdown interessanterweise nicht mehr OFF sondern ON. Ich muss dann erst wieder mit S_FreeTec OFF schalten, dann kann ich mit FS20 korrekt ON und OFF schalten.

Es ist als ob das notify den Status von dum1 überprüfen würde und dadurch beeinflusst wird.
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: Otto123 am 16 April 2017, 23:19:21
Hi Ajuba,

ich übersetze mal den if Zweig:
Wenn FS20_473405 gleich "toggle" oder S_FreeTec gleich "on" ist, also wenn ein Vergleich von beiden stimmt dann wird dum1 auf on geschaltet. Der elseif Zweig wird dann nicht durchlaufen.

Wenn FS20_473405 nicht "toggle" und S_FreeTec nicht "on" ist, dann wird der elseif Zweig durchlaufen.

Ich verstehe nicht was Du eigentlich willst, deswegen kann ich Dir die richtige Logik auch nicht sagen.

Gruß Otto
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: automatisierer am 16 April 2017, 23:25:42
So rein von der Logik her, solltest du deine if-Prüfungen nicht auf die Fernbedienungen sondern auf das Device ausrichten.
Also:
if (Value("dum1")eq "on" {fhem ("set dum1 off")}
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: Ajuba am 16 April 2017, 23:48:21
Ich glaube ich habe das Problem selbst erkannt aber die Lösung fehlt mir noch.

Was ich will:
Am Tablet das Licht (z.Zt. den Dummy) einschalten und mit der Fernbedienung ausschalten bzw. umgekehrt. Also im Prinzip sowas wie einen Stromstoßtaster um in der konventionellen Hauselektrik zu bleiben.

Das wahrscheinliche Problem:
Ich habe es hier nicht mit Tast-Impulsen sondern mit Schalter Zuständen zu tun.
Somit bleibt z.B. der Tastendruck "Toggle" auf der FS20 Fernbedienung solange aktiv bis ich etwas anderes drücke oder ihm ein set "reset" sende. Dann geht nämlich dum1 auch auf off.

Jetzt könnte ich theoretisch wohl das notify so erweitern, dass es den "Sender" zusätzlich zum setzen das Aktors zurücksetzt. Ich muss dann aber eigentlich die "steigende Flanke" des Tasters auswerten um nicht gleich wieder den soeben geschaltenen Zustand selbst rückgängig zu machen. Ich hoffe, das war einigermaßen verständlich ausgedrückt.

Aber nochmal einfach gesagt, ich brauche eine Stromstoßschalter Konfiguration um von mehreren Stellen eine Lampe zu schalten.
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: alanblack am 17 April 2017, 08:03:53
Ich denke, dass dein Problem daher kommt, dass Du das mit einem notify lösen willst.
Du bekommt so ein Event von einem der beiden Geräte, fragst aber die Zustände beider Geräte ab.
Ist also der Zustand von dem S_Freetec "on", kannst du mit FS20_473405 toggeln bis Du schwarz wirst, der dum1 bleibt "on".

Du brauchst eher

define ntest2 notify FS20_473405:.* \
{\
if (Value("FS20_473405")eq "toggle" && Value("dum1") eq "off") \
{fhem ("set dum1 on")} \
elsif\
(Value("FS20_473405")eq "dimupdown" && Value("dum1") eq "on") \
{fhem ("set dum1 off")} }

define ntest3 notify S_FreeTec:.* \
{\
if (Value("S_FreeTec")eq "on" && Value("dum1") eq "off") \
{fhem ("set dum1 on")} \
elsif\
(Value("S_FreeTec")eq "off && Value("dum1") eq "on") \
{fhem ("set dum1 off")} }

(ungetestet)

Grüße
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: automatisierer am 17 April 2017, 08:15:16
Zitat von: Ajuba am 16 April 2017, 23:48:21
Ich glaube ich habe das Problem selbst erkannt aber die Lösung fehlt mir noch.

Was ich will:
Am Tablet das Licht (z.Zt. den Dummy) einschalten und mit der Fernbedienung ausschalten bzw. umgekehrt. Also im Prinzip sowas wie einen Stromstoßtaster um in der konventionellen Hauselektrik zu bleiben.

Ja eben, daher ist doch der Zustand der Fernbedienungen völlig wurst. Dein Notify muss halt auf die Events die von der Fernbedienung ausgelöst werden reagieren. Das kann ja auch jedes mal das selbe Event sein und muss nicht 'toggle' und 'dimupdown' im wechsel sein (das erste sollte ja der kurze Tastendruck und das Zweite wahrscheinlich ein langer Tastendruck des FS20-Device sein) Wenn du das Device 'dum1' immer zwischen 'on' und 'off' hin und her schalten willst, dann musst du in deinem Notify den Zustand von 'dum1' prüfen und nicht den der Fernbedienungen.
Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: Ajuba am 17 April 2017, 08:56:19
Danke mal für die Tipps. Ich kann erst am Abend wieder testen und melde mich dann wieder.

Gesendet von meinem SM-G920F mit Tapatalk

Titel: Antw:Notify: Schalten mittels zweier Schalter
Beitrag von: Ajuba am 17 April 2017, 21:48:46
Danke, das Aufteilen in 2 notify hat geholfen. Im Nachhinein betrachtet eh klar, dass das nicht gehen konnte.
Ich wollte eigentlich die Anzahl der notifies klein halten aber das ist anscheinend nicht möglich. Auch gut.

Danke nochmals