RandomTimer - Anfängerproblem

Begonnen von justcallmeal, 07 Dezember 2016, 09:54:10

Vorheriges Thema - Nächstes Thema

justcallmeal

Hallo zusammen,

als ,,Neuer" im Forum, sowie auch Anfänger mit Fhem, habe ich versucht mit dem was ich hier im Forum gefunden habe, eine Anwesenheitssimulation zu generieren, die wie folgt funktionieren soll:

3 Lampen:  "Notlicht_Diele"  -  "Licht_Waschkueche" -  ,,Licht_Buero"  sollen sich innerhalb eines Zeitfensters von 17:00h bis 22:30h mit Random-Timer dann einschalten,
wenn der Dummy-Schalter "Abwesenheit" auf ,,on" steht.

Hinzu kommt eine Abhängigkeit der beiden Lampen ,,Notlicht_Diele" und ,,Licht_Buero", dass sie sich nur einschalten sollen, wenn die andere gerade aus ist (leichte zeitl. Überschneidungen könnten toleriert werden)
Die Lichtquelle ,,Notlicht_Diele" hat außer Zeit dem Hauptschalter ,,Abwesenheit" keine weiteren Abhängigkeiten.

Ich habe das wie folgt versucht umzusetzen:

###################################################_Zufallsschaltung_Notlicht
#define Zufall_Notlicht_Diele RandomTimer 17:00:00 Notlicht_Diele 22:30:00 180
#attr Zufall_Notlicht_Diele disableCond (Value("Abwesenheit") eq "off")
#attr Zufall_Notlicht_Diele switchmode 800/200
#
###################################################_Zufallsschaltung_Licht_Büro
#define Zufall_Licht_Buero RandomTimer 17:00:00 Licht_Buero 22:30:00 220
#attr Zufall_Licht_Buero disableCond (Value("Licht_Waschkueche") eq "on") || (Value("Abwesenheit") eq "off")
#attr Zufall_Licht_Buero switchmode 800/200
#
###################################################_Zufallsschaltung_Licht_Waschkueche
#define Zufall_Licht_Waschkueche RandomTimer 17:00:00 Licht_Waschkueche 22:30:00 220
#attr Zufall_Licht_Waschkueche disableCond (Value("Licht_Buero") eq "on") || (Value("Abwesenheit") eq "off")
#attr Zufall_Licht_Waschkueche switchmode 800/200
#

Leider funktioniert das ganze nicht ganz so wie gewünscht:
Der Hauptschalter ,,Abwesenheit" wird scheinbar nicht beachtet, d.h. die Lampen schalten, auch wenn Abwesenheit ,,off" gesetzt ist.
Es gibt Zeiten, da leuchtet nichts, sowie Zeiten, an denen die beiden Hauptlichter (Büro / Waschküche) beide leuchten.

Was läuft hier verkehrt? Wäre für ein paar Tipps dankbar.

VG,
Al

P.S: harwaretechnisch kommen 2 Unterputzaktoren  und ein Hutschienenaktor "(Notlicht_Diele") von Homematic  zum Einsatz. Fhem läuft auf Raspi3
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

Dietmar63

vielleicht hast du den Sinn des Moduls falsch verstanden.
Es soll in einem Zeitraum (ab Anfang Dämmerung bis zu einer festzulegenden Endezeit) das Licht einer Lampe zufällig ein- und auschalten.

Das Verhalten kannst du mit verbose  5 protokollieren lassen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

justcallmeal

Hallo Dietmar,

hm...   ....ich versuche meine Anforderung nochmal kurz zu fassen:

define Zufall_Licht_Buero RandomTimer 17:00:00 Licht_Buero 22:30:00 220
..schaltet das List zufällig zwischen 17:00 und 22:30h

attr Zufall_Licht_Buero disableCond (Value("Licht_Waschkueche") eq "on") || (Value("Abwesenheit") eq "off")
...soll die Random-Schaltung dann außer Betrieb setzen, wenn die Lampe Waschküche brennt oder der Dummy-Schalter "Abwesenheit" auf "off" steht.

Was ich bei Deinem Modul falsch verstanden haben soll verstehe ich leider auch nicht   :-[

VG, Al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

Dietmar63

Sollte funktionieren, aber die Syntax der Condition ist nicht richtig
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Brockmann

Ich würde die Lampen 2 und 3 mit nur einem RandomTimer schalten und oncmd/offcmd modifizieren.
oncmd bekommt ein kleines Skript in der Art {if (int rand(2) < 1){fhem("set lampe1 on")}else{fhem("set lampe2 on")}}
offcmd schaltet immer beide Lampen aus {fhem("set lampe1,lampe2 off")}

Also wenn der RandomTimer ein on generiert, wird per Zufall eine von beiden Lampen eingeschaltet.
Wenn der RandomTimer ein off generiert, werden sicherheitshalber beide ausgeschaltet - egal welche an war.

Dietmar63

((Value("Licht_Waschkueche") eq "on") || (Value("Abwesenheit") eq "off"))
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

justcallmeal

Hallo und danke für dieTips. Dietmars Tip/Korrektur mit der doppelten Klammer habe ich gerade ausprobiert: leider wird die Ausnahme-Condition, Abwesenheit "off" noch immer nicht beachtet, und der Timer schaltet munter die Lampen.

dem anderen Hinweis werde ich mal morgen nachgehen...


VG,
Al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.