Hauptmenü

Bug in DOIF?

Begonnen von LeoSum, 10 Juli 2016, 09:22:33

Vorheriges Thema - Nächstes Thema

LeoSum

Hallo zusammen,
ich habe ein dummy device, welches den Status eines Musikplayers wiedergibt ( Radio | Spotify | Mute ).

Anhand dieses Status möchte ich nun eine Intertechnosteckdose schalten, welche einen Verstärker bestromt. Dies habe ich zunächst über ein DOIF versucht:

define doif_PowerKueche DOIF ([Musikplayer_Dummy] eq "Mute") (set IT_Verstaerker off) DOELSEIF ([Musikplayer_Dummy] eq "Radio") (set IT_Verstaerker on) DOELSEIF ([Musikplayer_Dummy] eq "Spotify") (set IT_Verstaerker on)
Dieses DOIF hat komischerweise genau das gegenteil bewirkt. Schalte ich den Dummy von Mute nach Radio geht der Verstärker an, schalte ich zurück nach Mute geht er aus.
Vertauschen der set ... on / off Befehle hat hier Abhilfe geschaffen.
Allerdings geht dann der Verstärker auch aus, wenn ich von Radio nach Spotify oder andersherum schalte. Eigentlich sollte er doch nur ausschalten wenn der Status Mute ist.

Ich habe es jetzt mit zwei notifys gelöst, das funktioniert einwandfrei:
define notify_PowerKueche1 notify Musikplayer_Dummy:Mute set IT_Verstaerker off
define notify_PowerKueche2 notify Musikplayer_Dummy:(Radio|Spotify) set IT_Verstaerker on


Oder stehe ich auf dem Schlauch und DOELSE macht alles richtig?

Eine Erklärung würde mich sehr freuen!

Gruß
Leo

Vize

Moin,

schau dir nochmal die Klammersetzung an, besonders im letzten DOELSEIF-Zweig..

Gruß
Andreas

Ma_Bo

So wie dein DOIF aufgebaut ist, passiert folgendes :

Wenn du auf Mute stellst, geht der Verstaerker off, wenn du auf Radio stellst, geht der Verstaerker on (wobei hier wahrscheinlich ein Leerzeichen zuviel ist) und wenn du auf Spotify stellst, geht der Verstaerker on, aber nur wenn du die Klammer richtig setzt.

Das hier:
DOELSEIF ([Musikplayer_Dummy eq "Spotify") (set IT_Verstaerker on)

muss:
DOELSEIF ([Musikplayer_Dummy] eq "Spotify") (set IT_Verstaerker on)
da fehlt die Klammer.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

LeoSum

Danke, ich hab es oben angepasst.

Aber leider war das nur ein Übertragungsfehler vom Notepad ins Forum beim Anpassen auf leserliche Namen.
In fhem hatte ich die Klammern richtig (so wie es jetzt im ersten Post ist.
Daran lag es also leider nicht.

Ma_Bo

Ich habe exakt dein DOIF jetzt mal genommen und mir 2 dummys angelegt einer namens Musikplayer_Dummy und einer IT_Verstaerker

zu dem Musikplayer_Dummy habe ich attr webCmd Mute:Radio:Spotify angelegt.

wenn ich jetzt umschalte passiert genau folgendes :

Mute -> IT_Verstaerker geht AUS
Radio -> IT_Verstaerker geht EIN
Spotify ->  IT_Verstaerker geht EIN

kann es sein, dass dein IT_Verstaerker zwar in fhem schaltet, aber das Signal nicht an die IT Steckdose durchkommt?

Was anderes kann ich mir nicht vorstellen, ist dein fhem aktuell?
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

LeoSum

fhem ist aktuell,
die Signale kommen schon durch, aber eben die falschen, also genau andersherum.

Keine Ahnung was da falsch läuft. Ich nehme es jetzt hin und arbeite halt mit den notifys :)

Danke fürs reingucken

Damian

Zitat von: LeoSum am 10 Juli 2016, 14:09:49
fhem ist aktuell,
die Signale kommen schon durch, aber eben die falschen, also genau andersherum.

Keine Ahnung was da falsch läuft. Ich nehme es jetzt hin und arbeite halt mit den notifys :)

Danke fürs reingucken

Du kannst in den Readings deines DOIF-Moduls sehen, welches Ereignis (beginnend mit e_) zu der Ausführung geführt hat.

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF