FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: slor am 03 Januar 2020, 23:26:22

Titel: Reading wert zwischenspreichern
Beitrag von: slor am 03 Januar 2020, 23:26:22
Hallo zusammen,

ich möchte wenn meine Waschmaschine oder Trockner fertig ist eine kurze Ansage auf einem Echo Device machen.
Das funktioniert soweit auch ganz gut.
Damit man das gut hört, stelle ich die Lautstärke etwas hoch.
Das führ dazu, dass laufende Musik danach lauter, bzw. leiser weiterläuft.

Nun möchte ich die auf dem Gerät eingestellte Lautstärke auslesen, prüfen ob sie lauter als der Ansage Wert ist, ggf. erhöhen und danach den original Wert wieder setzen.
Setzen geht mit einem einfachen set Befehl.

Kann ich das mit dem Reading mit Doif umsetzen oder muss ich dazu eine MyUtils etc. heranziehen?

Das doif sieht aktuell so aus:
## Status 1
([KG_WK_SD1:2.POWER:d] >= 3 and [?$SELF:Zyklus] =~ "Fertig|Init|Läuft" )
(setreading $SELF Zyklus Läuft )
## Status 2
DOELSEIF ([KG_WK_SD1:2.POWER:d] < 3 and [?$SELF:Zyklus] =~ "Läuft")
(setreading $SELF Zyklus Fertig)
(set ECHO_XXXXX volume 50)
(set ECHO_XXXXX speak Die Waschmaschine ist fertig)
## Status 3
DOELSE
(setreading $SELF Zyklus Init)
Titel: Antw:Reading wert zwischenspreichern
Beitrag von: Damian am 04 Januar 2020, 00:06:25
Es ist immer das gleiche Prinzip: Readinginhalt sichern und danach wiederherstellen:

setreading $SELF volume [ECHO_XXXXX:volume],
setreading $SELF Zyklus Fertig,
set ECHO_XXXXX volume 50,
setreading ECHO_XXXXX volume [$SELF:volume]