Steckdose schalten nach PRESENCE

Begonnen von der-Lolo, 08 September 2013, 11:40:21

Vorheriges Thema - Nächstes Thema

der-Lolo

Hallo,
mein Heimkino Subwoofer hängt hinter einer Philips Living Whites Steckdose (pl-subwoofer)
diese soll nur anschalten wenn das Presence Modul den Denon verstärker present meldet -
allerdings nicht zwischen 22:00 und 08:00

define Subwoofer_an at *08:00:00 define subwoofer_an notify Denon:pre* set HUEDevice7 on
attr Subwoofer_an room events
define Subwoofer_aus at *22:00:00 set HUEDevice7 off;;\
delete subwoofer_an
attr Subwoofer_aus room events

Ich hab vielleicht etwas zu kompliziert gedacht als ich der meinung war das das
notify ja nur existieren brauch wenn nicht gerade nacht ist...
 
Jedenfalls wenn die Zeilen in der fhem.cfg stehen stürzt fhem ab - lässt sich auch nicht wieder starten...
Erst wenn die Zeilen auskommentiert wurden startet fhem wieder...

roedert

define subwoofer_an notify Denon:pre* { if ($hour >=8 && $hour <= 22) { fhem "set HUEDevice7 on" }}


Habs jetzt nichts getestet - müsstest mal den Syntax checken

betateilchen

Zitat von: roedert schrieb am Do, 10 Oktober 2013 13:40if ($hour >=8 && $hour <= 22)

ich finde ja $hour ~~ [8..21] viel übersichtlicher und leichter verständlich.

22 als Stundenangabe in Kombination mit <= wäre übrigens falsch, weil 22:59 dann auch noch enthalten wäre und das Ganze nicht um 22:00 aufhören würde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roedert

stimmt, $hour < 22 natürlich

$hour ~~ [8..21] ist natürlich eleganter, so genau kannte ich mich in den Möglichkeiten nicht aus, wieder was dazugelernt :-) danke!

der-Lolo

#4
Vielen Dank für die Hinweise...
Ich habe nun folgendes eingefügt, getestet und für gut befunden...

Denon:pre* funktionierte übrigens nicht - deswegen habe ich present und absent einfach ausgeschrieben...

define subwoofer_an notify Denon:present { if ($hour ~~ [8..21]) { fhem "set HUEDevice7 on" }\
else { fhem "set HUEDevice7 off" }}
define subwoofer_aus notify Denon:absent set HUEDevice7 off

Leider bin ich jetzt über das Denon Modul gestolpert welches mir als reading die aktuellen werte des Denon AVR liefert.
Ich würde nun gerne das subwoofer_an notify verändern sodass -
Wenn der Denon eine Lautstärke > DENON_AVR DenonAVR volume_level_pct: 40 und die $hour ~~ [8..21] bedingung erfüllt ist soll HUEDevice7 anschalten.

Beim normalem TV schauen gehen wir selten über 40% Lautstärke, wenn wir aber eine Blu-Ray schauen ist Kino angesagt also etwas lauter und der Subwoofer sorgt für den notwendigen Bums.

Ich habe schon mehrfach abfragen auf ReadingsVal() gesehen, aber leider immer noch nicht ganz verstanden wie das funktioniert...
Helft ihr mir nochmal auf die Sprünge?

Danke schonmal.

aqua_chris

Hallo zusammen,

geht das

Zitat von: roedert am 10 Oktober 2013, 13:58:36
$hour ~~ [8..21]

auch noch genauer, also mit Minutenangabe? Ich habe ein
$hour ~~ [8:30..21:00] oder $hour ~~ [08:30..21:00] oder $hour ~~ [08:30:00..21:00:00] oder $hour ~~ [08:30:[00]..21:00[00]] leider ohne Erfolg getestet. :(

Gruss
Chris