Hi Zusammen,
bin absoluter FHEM-Frischling und habe gerade erfolgreich meine erste Steckdose in Betrieb genommen ;-)
Ich habe via "at"s festgelegt, daß die angeschlossene Lampe täglich um 19:00 an und 22:00 ausgeht.
Auf der Web-Oberfläche bekomme ich ja beide angezeigt, ich kann Sie hier aber nicht deaktivieren.
Nach dem Motto : Heute möchte ich mal nicht, dass das Ding angeht -> Klick und die at´s sind deaktivier.
Ist sowas möglich ?
Gruss
Oli
Zitatattr <at-device> disable 1
Du kannst Dir einen Dummy bauen dem Du den Status aktiv oder passiv (oder ja/nein) zuweist und in deinen at prüfst ob der dummy status aktiv ist
define dummy_lampe_an dummy
attr dummy_lampe_an setList state:aktiv,passiv
attr dummy_lampe_an webCmd state
define at_lampe_an at 19:00:00 {fhem("set lampe on-for-timer 10800") if (Value("dummy_lampe_an") eq "aktiv");;}
so mal aus dem Kopf ohne Gewähr
Super, vielen Dank.
Jetzt hat der Dummy auch den dummy verstanden ;-))
Die Variante von Tobias geht schneller, besonders wenn Du per Telnet auf der Kiste bist. Bei meiner Variante hast Du in der Weboberfläche einen Aktiv/Passiv Knopf und kannst den auch im Floorplan einbauen.
Ich wollte genau den Knopf auf der Weboberfläche.
Leider habe ich das Problem, das mir die Konfiguration immer wegfliegt sobald
ich eine weitere Änderung an der cfg gemacht habe. Sehr strange :
define Vitrine dummy
attr Vitrine setList state:aktiviert,deaktiviert
attr Vitrine webCmd state
define Vitrine_Taeglich_An at 16:30:00 {fhem("set wz_Vitrine on") if (Value("Vitrine") eq "aktiviert");;}
define Vitrine_Taeglich_Aus at 16:31:00 {fhem("set wz_Vitrine off") if (Value("Vitrine") eq "aktiviert");;}
attr Vitrine room Wohnzimmer
attr Vitrine_Taeglich_An room Wohnzimmer
attr Vitrine_Taeglich_Aus room Wohnzimmer
Nach dem 2. speichern fliegt mir alles nach dem state raus.
von Hand eingegeben oder irgendwo raus kopiert?
Beim Kopieren können schon mal seltsame Zeilenumbrüche mit reingeraten
Klappt doch.
Kaum macht man´s richtig - schon funktionierts.
Danke nochmal !
Hallo,
ich habe es mit nach deiner Anleitung nachgebaut.
#at Befehl mit Ein-Ausschalter für Waermepumpe
define WS_Waermempumpe dummy
attr WS_Waermempumpe icon icoHEIZUNG
attr WS_Waermempumpe room Heizung
attr WS_Waermempumpe setList state:aktiviert,deaktiviert
attr WS_Waermempumpe webCmd state
define Waermepumpe_Taeglich_An at 04:00:00 {fhem("set Waermepumpe on") if (Value("WS_Waermepumpe") eq "aktiviert")} \
define Waermepumpe_Taeglich_Off at 22:50:00 {fhem("set Waermepumpe off") if (Value("WS_Waermepumpe") eq "aktiviert")} \
Ich erhalte im Logfile folgende Fehlermeldung:
statefile: Waermepumpe_Taeglich_An already defined, delete it first
Waermepumpe_Taeglich_Off already defined, delete it first
Kann mir jemand helfen ?
Ich finde den Fehler nicht.
gruss
KLAUS
Waermepumpe_Taeglich_An und Waermepumpe_Taeglich_Off existieren schon, evtl. von Versuchen vorher, und müssen erst gelöscht werden.
Wenn Waermepumpe_Taeglich_An und _Off auch täglich ausgeführt werden sollen fehlt da ein * vor der Uhrzeit
delete Waermepumpe_Taeglich_An
delete Waermepumpe_Taeglich_Off
define Waermepumpe_Taeglich_An at *04:00:00 {fhem("set Waermepumpe on") if (Value("WS_Waermepumpe") eq "aktiviert");;}
define Waermepumpe_Taeglich_Aus at *22:50:00 {fhem("set Waermepumpe off") if (Value("WS_Waermepumpe") eq "aktiviert");;}
Willst Du die Wärmepumpe laufen lassen wenn Du nach dem Einschalten WS_Waermempumpe auf deaktiviert stellst oder soll sie immer ausgeschaltet werden wenn sie um 22:50 an ist?
Der zweite Fall währe dann sowas wie
define Waermepumpe_Taeglich_Aus at *22:50:00 {fhem("set Waermepumpe off") if (Value("Waermepumpe") eq "on");;}
Guten Abend Jhohn,
vielen Dank für deine Antwort. Ich habe es soeben nach deiner Anleitung verbessert, und es scheint alles zu funktionieren.
Auch danke nochmal für deinen zweiteren Hinweis.
Du hast völlig Recht. Setze ich auf deaktiviert soll die Waermepumpe natürlich spätestens am Abend ausgeschaltet werden, und nicht mehr angeschaltet werden.
Erst dann, wenn ich nach meiner Urlaubsreise wieder auf aktiviert schalte.
Ich denke das müsste so klappen.
Darf ich dich noch fragen ob meine Vermutung so richtig ist ?
Wird die Waermepumpe auch brav AUS bleiben, wenn ich das dummy auf deactiviert setzte ?
schönen Abend
gruss
KLAUS
--------------------------------------------------
Final habe ich es so gemacht:
#at Befehl mit Ein-Ausschalter für Waermepumpe
define WS_Waermempumpe dummy
attr WS_Waermempumpe icon icoHEIZUNG
attr WS_Waermempumpe room Heizung
attr WS_Waermempumpe setList state:aktiviert,deaktiviert
attr WS_Waermempumpe webCmd state
define Waermepumpe_Taeglich_An at *04:00:00 {fhem("set Waermepumpe on") if (Value("WS_Waermepumpe") eq "aktiviert");;}
define Waermepumpe_Taeglich_Aus at *22:50:00 {fhem("set Waermepumpe off") if (Value("Waermepumpe") eq "on");;}
Meiner Meinung nach sollte das so funktionieren
Hallo,
habe auch mal so ein aktiviert/deaktiviert Knopf versucht ein zubauen aber ich bekomme immer folgende Fehlermeldung im Log:
Zitat2013-06-24 10:13:00 Global global DELETED WZ_Roll_Terasse_Sonne_runter
2013-06-24 10:13:00 Global global DEFINED WZ_Roll_Terasse_Sonne_runter
hier der Code:
define Sonne_Terrassenfenster dummy
attr Sonne_Terrassenfenster room Wohnzimmer
attr Sonne_Terrassenfenster setList state:aktiv,passiv
attr Sonne_Terrassenfenster webCmd state
define WZ_Roll_Terasse_Sonne_runter at *10:13 {fhem("set WZ_Roll_Terasse 20") if (Value("Sonne_Terrassenfenster") eq "aktiviert");;}
Ich komme leider nicht alleine weiter.......
Gruß Ole
Ohne dass ich verstehe was du genau machen und erreichen willst schlage ich erstmal vor, deine Zeile
Zitatdefine WZ_Roll_Terasse_Sonne_runter at *10:13 {fhem("set WZ_Roll_Terasse 20") if (Value("Sonne_Terrassenfenster") eq "aktiviert");;}
wie folgt zu schreiben:
define WZ_Roll_Terasse_Sonne_runter at *10:13:00 {if (Value("Sonne_Terrassenfenster") eq "aktiviert") { fhem("set WZ_Roll_Terasse 20") } }
(Die Leerzeichen vor und nach den Klammern dienen nur der Übersichtlichkeit und sind nicht zwingend.)
In jedem Fall müsstest du aber ein bisschen mehr schreiben.
Zitataber ich bekomme immer folgende Fehlermeldung im Log:
ist nur die halbe Miete. Was machst du, was sollte deiner Meinung nach passieren, und was passiert anstelle dessen?
Hallo,
wobei das
Zitat2013-06-24 10:13:00 Global global DELETED WZ_Roll_Terasse_Sonne_runter
2013-06-24 10:13:00 Global global DEFINED WZ_Roll_Terasse_Sonne_runter
ja keine Fehlermeldung im Sinne von das ist ein Fehler ist.
Zumindest in meinen Augen.
FHEM sagt damit ja nur das WZ_Roll_Terasse_Sonne_runter erst DELETED und dann DEFINED wurde.
Das ist ja an sich nicht falsch.
Grüße
Hallo,
ja ich möchte das ich im Sommer mein Terrassenfenster mit dem Rolladen beschatte. Das geht auch mit: "set WZ_Roll_Terasse 20" nun will ich auf der Weboberfläche auch ein Kopf zum aktiv/deaktivieren.
Hallo,
Das
Zitat2013-06-24 10:13:00 Global global DELETED WZ_Roll_Terasse_Sonne_runter
2013-06-24 10:13:00 Global global DEFINED WZ_Roll_Terasse_Sonne_runter
kommt daher
Zitatdefine WZ_Roll_Terasse_Sonne_runter at *10:13:00
Der * heisst täglich um 10:30 Uhr wird geprüft und danach für den nächsten Tag um 10:30 Uhr wieder angelegt (logischerweise).
Ich greif mal vor *Glaskugelpolier*.
Ich vermute mal du wunderst dich warum dein Code nicht das macht was er soll.
Er macht das schon richtig - so wie du ihn programmiert hast.
Das Problem wird vermutlich sein das du
Zitatif (Value("Sonne_Terrassenfenster") eq "aktiviert")
abfragst aber dein Dummy
Zitatattr Sonne_Terrassenfenster setList state:aktiv,passiv
aktiv oder passiv stehen hat.
Und aktiv != aktiviert
*Glaskugelwegräum*
Wenn ich falsch liege dann musst du uns schon genauer mitteilen was den nun nicht funktioniert und was dich zu dieser Annahme bewegt das es nicht so funktioniert.
Grüße
Ich habe mit dem Befehl: " define WZ_Roll_Terasse_Sonne_runter at *10:13 set WZ_Roll_Terasse 20" mein Rolladen täglich in eine Art Beschattung für mein Terrassenfenster. Nun möchte ich auf der Weboberfläche dafür eine Knopf und wenn der auf "aktiv" steht soll der Rollladen in die Beschattung fahren und wenn der auf "passiv" steht soll der Rolladen oben bleiben. Aber alles was ich sehe ist das im eventMonitor steht ist:
Zitat2013-06-24 10:13:00 Global global DELETED WZ_Roll_Terasse_Sonne_runter
2013-06-24 10:13:00 Global global DEFINED WZ_Roll_Terasse_Sonne_runter
Hallo,
Zitat von: ole30419 schrieb am Mo, 24 Juni 2013 22:09Ich habe mit dem Befehl: " define WZ_Roll_Terasse_Sonne_runter at *10:13 set WZ_Roll_Terasse 20" mein Rolladen täglich in eine Art Beschattung für mein Terrassenfenster. Nun möchte ich auf der Weboberfläche dafür eine Knopf und wenn der auf "aktiv" steht soll der Rollladen in die Beschattung fahren und wenn der auf "passiv" steht soll der Rolladen oben bleiben. Aber alles was ich sehe ist das im eventMonitor steht ist:Zitat2013-06-24 10:13:00 Global global DELETED WZ_Roll_Terasse_Sonne_runter
2013-06-24 10:13:00 Global global DEFINED WZ_Roll_Terasse_Sonne_runter
Und das ist das was ich oben schon beschrieben habe.
FHEM prüft um 10:13 das at - da ein * vorne dran steht wird es um 10:13 gelöscht und neu angelegt für den nächsten Tag.
Grüße
Ja, es geht .....
ich habe das Und aktiv != aktiviert nicht richtig gelesen. Nun habe ich das noch ein mal berichtigt und es hat geklappt, Super Danke !!! Sorry das ich das nicht gleich geschnallt habe
define Sonne_Terrassenfenster dummy
attr Sonne_Terrassenfenster room Wohnzimmer
attr Sonne_Terrassenfenster setList state:aktiv,passiv
attr Sonne_Terrassenfenster webCmd state
define WZ_Roll_Terasse_Sonne_runter at *10:13 {fhem("set WZ_Roll_Terasse 20") if (Value("Sonne_Terrassenfenster") eq "aktiv");;}
Hallo,
ZitatSorry das ich das nicht gleich geschnallt habe
Da gibt es nichts zu entschuldigen ;-)
Ich hätte ja auch anstelle von
Zitataktiv!=aktiviert
schreiben können das aktiv nicht gleich aktiviert bedeutet.
Aber das ! heisst in Perl (und auch einigen anderen Programmiersprachen) eben
Zitatnicht
und != heisst dann eben
Zitatnicht gleich
.
Das ! wirst du noch einige Male benötigen - spätestens wenn du auf (!($we)) prüfen willst (also nicht Wochenende).
Grüße