Hauptmenü

Tuerklingel und Radio

Begonnen von hietzi, 21 Februar 2017, 14:02:57

Vorheriges Thema - Nächstes Thema

hietzi

Möchte folgendes umsetzen und hab glaube eine Denkfehler :-)

Habe im Vorraum einen Raspi 3 mit Display stehen. Aif diesem läuft FTUI und squeezelite .
Jetzt möchte ich sobald jemand an der Türe klingelt ein mp3 abspielen und falls auf squeezelite gerade ein Radiosender läuft das dieser wieder gestartet wird nach dem klingeln
Das geht auch mit folgendem DOIF

([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "playing")) (set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3) DOELSE (sleep 10) (set SB_PLAYER_b827eb1f4cfb volume 80, set SB_PLAYER_b827eb1f4cfb favorites KRONEHIT)

Jetzt wollte ich noch ein zweites DoIf hinzufügen falls kein Radiosender läuft das er nur klingeln soll und sonst nichts
Hätte ich mit folgendem DOIF gemacht

([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "stopped")) (set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3) DOELSE (sleep 10) (set SB_PLAYER_b827eb1f4cfb volume 80)

Sobald ich aber dann klingel hängt sich fhem auf und ich hab ein dauerklingeln .

Habt ihr ne Ahnung wo ich den Denkfehler habe oder denke ich komplett kompliziert :-)

thx und lg

Ellert

Versuche mal die Abfrage des SB_Player auf nicht triggernd (?) zu stellen.

hietzi

öhm was meinst du damit genau  ;D ;D

Ellert

Ich meine Du solltest abstellen, dass DOIF 1 auslöst, weil DOIF 2 etwas abspielt und dass DOIF 2 auslöst, wenn DOIF 1 aufhört zu spielen, vereinfacht gesagt.

Per

Zitat von: Ellert am 21 Februar 2017, 17:31:46Versuche mal die Abfrage des SB_Player auf nicht triggernd (?) zu stellen.
Bewirkt das nicht, dass beim Klingeln entweder DOIF_1-cmd_1 und DOIF_2-cmd_2 oder DOIF_1-cmd_2 und DOIF_2-cmd_1 gleichzeitig auslösen?

@hietzi: Versuch mal, deine Codes mittels <Enter> lesbarer zu gestalten.

([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "playing"))
(set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3)
DOELSE
(sleep 10) (set SB_PLAYER_b827eb1f4cfb volume 80, set SB_PLAYER_b827eb1f4cfb favorites KRONEHIT)


([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "stopped"))
(set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3)
DOELSE
(sleep 10) (set SB_PLAYER_b827eb1f4cfb volume 80)


Außerdem würde ich versuchen, beides in ein DOIF zu packen. Und das sleep durch wait ersetzen.
([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "playing"))
(set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3)
(set SB_PLAYER_b827eb1f4cfb volume 80, set SB_PLAYER_b827eb1f4cfb favorites KRONEHIT)
DOELSEIF ([IT_0F0000000F:state] eq "on" and ([SB_PLAYER_b827eb1f4cfb:playStatus] eq "stopped"))
(set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb volume 100, set SB_PLAYER_b827eb1f4cfb favorites tuerklingel3mp3)
(set SB_PLAYER_b827eb1f4cfb volume 80)


attr XXX wait 0,10:0,10

Wenn das System noch Infos hast, wie du dein squeezelite gestartet wird, kannst du dieses in die Abfrage (IF) einbeziehen und das DOIF wird vereinfacht. Oder die alte Lautstärke wieder herstellen. Nicht pauschal 80%.

Ellert

ZitatBewirkt das nicht, dass beim Klingeln entweder DOIF_1-cmd_1 und DOIF_2-cmd_2 oder DOIF_1-cmd_2 und DOIF_2-cmd_1 gleichzeitig auslösen?
So weit habe ich ehrlich gesagt nicht gescrollt, aber nach dem Du die DOIF strukturiert hast, würde ich zustimmen

Per

Zitat von: Ellert am 22 Februar 2017, 08:29:07aber nach dem Du die DOIF strukturiert hast, würde ich zustimmen
Deshalb ja:
Zitat von: Per am 22 Februar 2017, 00:19:33Codes mittels <Enter> lesbarer zu gestalten.


hietzi

Danke für eure Hilfe.
Aber wie so oft habe ich den Wald vor lauter Bäumen nicht gesehen  ;D ;D ;D

ein einfaches
([IT_0F0000000F:state] eq "on") (set IT_0F0000000F on-for-timer 5, set SB_PLAYER_b827eb1f4cfb sayText |tuerklingel3.mp3| Es steht jemand vor der Tür!)

tuts auch komplett