Hallo ich brauch mal eure Hilfe bitte.
define Wearmelampe2 DOIF ([18:00-03:30])(set wlamp2 on)(set wlamp2 off) DOELSE ([Temp_Mitte:temperature ] > 40 or [03:31-17:59]) (set wlampe2 off)
attr Wearmelampe2 repeatcmd 660
attr Wearmelampe2 wait 0,300
##wlamp2 soll zwischen 18:30 und 3:30 einschalten alle 6 minuten 5 minuten lang
##wlamp2 soll Nicht einschalten zwischen 3:31 und 17:59 UND nicht bei einer Temperatur ÜBER 40 grad.
Könnt ihr mir mal ein wenig auf die sprünge Helfen?
Wie zeigt sich der Fehler genau? Schau mal hier: http://forum.fhem.de/index.php/topic,16311.msg106131.html#msg106131
ZitatWill nicht so wie ich.
Ist ein bisschen dürftig.
http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen (http://hier) gibt es jede Menge Beispiele.
Ich hoffe Dein FHEM ist aktuell, DOIF wurde ständig weiter entwickelt.
Gruß Otto
Zitat von: Ellert am 17 Dezember 2015, 19:04:32
Wie zeigt sich der Fehler genau?
Die Lampe ist aus.
Zitat von: Otto123 am 17 Dezember 2015, 20:01:39
http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen (http://hier) gibt es jede Menge Beispiele.
Ich hoffe Dein FHEM ist aktuell, DOIF wurde ständig weiter entwickelt.
Gruß Otto
Fhem läuft auf 5.7
Das DOIF Wiki habe ich mehrfach gelesen dadurch ist auch mein DOIF Code entsandten
define Wearmelampe2 DOIF ([18:00-03:30])(set wlamp2 on-for-timer 300)
attr Wearmelampe2 repeatcmd 360
Für deine erste Anforderung, die Zweite verstehe ich nicht. Tut mir leid
Gruß Otto
Zitat von: Otto123 am 17 Dezember 2015, 21:22:39
define Wearmelampe2 DOIF ([18:00-03:30])(set wlamp2 on-for-timer 300)
attr Wearmelampe2 repeatcmd 360
Für deine erste Anforderung, die Zweite verstehe ich nicht. Tut mir leid
Gruß Otto
Danke Otto.
So eine lösung hatte ich am anfang.
aber ich will ein WorstCase vermeiden und zwar das die Wärmelampe die Bartagame Röstet.
deswegen dachte ich das
DOELSE ([Temp_Mitte:temperature ] > 40 or [03:31-17:59]) (set wlampe2 off)
das dadurch die lampe selbst innerhalb der schaltzeit die lampe aus bleibt weil die Temperatur zu hoch ist.
1. DOELSE ist nicht DOELSEIF! Also DOELSE könnte am Ende einfach stehen mit set Lampe off - keine Bedingung!
2. Dein Zeitintverall mit Temperaturüberwachung ist genau (bis auf ein halbe Stunde) die fehlende Zeitscheibe mit der ohne!? Also wenn dann doch immer mit Temperaturüberwachung:
define Wearmelampe2 DOIF ([18:00-03:30] and [Temp_Mitte:temperature ] < 40) (set wlamp2 on-for-timer 300)
Als Text: die Lampe geht zwischen 18:00 bis 3:30 an wenn die Temperatur kleiner 40 grad ist.
Wenn Du die 5 min noch mit separater Temp Überwachung willst, solltest Du das separat machen.
Gruß Otto
OK ich verstehe so langsam.
Das war mein erster ansatz der auch die Lampe angemacht hat und nach 45 minuten wieder aus.
define Wearmelampe DOIF ([Temp_Mitte:temperature ] < 30 or [9:00-16:30]) (set wlampe1 on-for-timer 2700) DOELSEIF ([Temp_Mitte:temperature ] > 40 or [16:31-8:59]) (set wlampe1 off)
attr Wearmelampe cmdpause 360
Das problem war sie ist nicht wieder an gegangen.
Ich würde sie auch
um 8 uhr on-for-timer 2700
um 12 uhr on-for-timer 2700
um 16 uhr on-for-timer 2700
schalten aber sie muß innerhalb der 45 Minuten aus gehen wenn sie über 40 grad erreicht.
PS ich hoffe du verstehst was ich meine ;)
Es hängt ein Leben davon ab?
Dann mach eine Temperatursteuerung unabhängig von FHEM, also nur mit Hardware (oder Sensor und Schalter direkt gepeered).
Und schalte diese Steuerung nach belieben an und aus mit DOIF und Zeitscheiben.
Alternativ mach ein THRESHOLD (http://fhem.de/commandref_DE.html#THRESHOLD)
define HeizungTerrarium THRESHOLD Temp_Mitte:temperature wlampe1
set HeizungTerrarium desired 35
set HeizungTerrarium hysteresis 5
DOIF für Zeitsteuerung
define di_HzgTerrarium DOIF ([09:00-16:30]) (set HeizungTerrarium desired 35) DOELSE (set HeizungTerrarium desired 30)
Gruß Otto
Guten Morgen.
Danke für den Code.
Nach Rücksprache mit meiner Regierung
werde ich die uv a/b Wärme Lampe alle 4 Stunden für je 1 std schalten
Und den Trashold für die ganztägigen Wärme Lampen einzeln schalten.
Da im Terrarium 3 Wärme Zonen sind die bei ganztägigen Betrieb eine konstante Temperatur haben.
wenn also die Temperatur in der Mitte über 40 Grad ist schaltet die ganztägige wärmelampen Mitte dann ab.
Wenn ich den Code fertig habe Poste ich ihn mal damit ihr Profis mal einen Blick drauf werfen könnt.
//Edit:
So ... Habe Fertig. Bitte steinigen wenn was Falsch ist!! sonnst lerne ich es nie
define HeizungTerrarium_Links THRESHOLD Temp_Links:temperature WLamp_Links
attr HeizungTerrarium_Links number_format %.1f
attr HeizungTerrarium_Links state_cmd1_gt off
attr HeizungTerrarium_Links state_cmd2_lt on
attr HeizungTerrarium_Links state_format _m _dv _sc
define di_HzgTerrarium_Links DOIF ([07:00-17:00]) (set HeizungTerrarium_Links desired 30) DOELSE (set HeizungTerrarium_Links desired 20)
define HeizungTerrarium_Mitte THRESHOLD Temp_Mitte:temperature WLamp_Mitte
attr HeizungTerrarium_Mitte number_format %.1f
attr HeizungTerrarium_Mitte state_cmd1_gt off
attr HeizungTerrarium_Mitte state_cmd2_lt on
attr HeizungTerrarium_Mitte state_format _m _dv _sc
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 30)
define HeizungTerrarium_Rechts THRESHOLD Temp_Rechts:temperature WLamp_Rechts
attr HeizungTerrarium_Rechts number_format %.1f
attr HeizungTerrarium_Rechts state_cmd1_gt off
attr HeizungTerrarium_Rechts state_cmd2_lt on
attr HeizungTerrarium_Rechts state_format _m _dv _sc
define di_HzgTerrarium_Rechts DOIF ([07:00-17:00]) (set HeizungTerrarium_Rechts desired 30) DOELSE (set HeizungTerrarium_Rechts desired 30)
define di_HeizLamp1 DOIF ([8:00])(set HeizLamp1 on-for-timer 2700) DOELSE (set HeizLamp1 off)
attr di_HeizLamp1 cmdpause 11700
attr di_HeizLamp1 repeatsame 3
## Hier schaltet die UV A/B Wärme Lampe um 8 Uhr an für 45 Minuten und nach 3 Std 15 min nochmal das ganze dann insgesamt 3 mal
normal wäre das ja dann 8 Uhr 12 Uhr und 16 Uhr richtig?
define di_HeizLamp1 DOIF ([8:00])(set HeizLamp1 on-for-timer 2700) DOELSE (set HeizLamp1 off)
attr di_HeizLamp1 cmdpause 11700
attr di_HeizLamp1 repeatsame 3
## Hier schaltet die UV A/B Wärme Lampe um 8 Uhr an für 45 Minuten und nach 3 Std 15 min nochmal das ganze dann insgesamt 3 mal
Das wird nicht funktionieren. Denn das Modul wird nur ein mal um 8:00 Uhr getriggert und sonst nicht.
Die Lösung lässt sich aber mit dem neuen Attribut repeatcmd realisieren : siehe http://fhem.de/commandref_DE.html#DOIF_repeatcmd
on-for-timer schaltet doch auch wieder aus, daher ist DOELSE nicht nur sinnfrei sondern auch wirkungslos, weil es keinen Trigger gibt, der die Bedingung unwahr werden lässt.
Unter dem obigen Link findest du aber ein Beispiel, welches dein Problem löst ;)
Gruß
Damian
Ahhhh schau an. Danke ;D
define di_HeizLamp1 DOIF ([8:00])(set HeizLamp1 on-for-timer 2700) DOELSE (set HeizLamp1 off)
attr di_HeizLamp1 repeatcmd 11700
attr di_HeizLamp1 repeatsame 3
## Hier schaltet die UV A/B Wärme Lampe um 8 Uhr an für 45 Minuten und nach 3 Std 15 min nochmal das ganze dann insgesamt 3 mal
So ist es dann richtig?
Hatte mich an
Zitat
Anwendungsbeispiel: Die Meldung soll maximal dreimal erfolgen mit einer Pause von mindestens 10 Minuten
define di_washer DOIF ([Watt]<2) (set pushmeldung "washer finished")
attr di_washer repeatsame 3
attr di_washer cmdpause 600
orientiert.
was mir aber auch aufgefallen ist in meinen Codes
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 30)
läßt das Licht weiter brennen auch nach 17 Uhr. Da in der Nacht eine Temperatur von 22 Grad sind
Ich habe das auf
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 20)
Geändert
Aber was ich noch nicht so verstehe
was passiert wenn ich die Temperatur 35 Grad erreicht habe... Dann geht die Lampe ja wieder aus..
bis sie unter 20 Grad gefallen ist?
define di_HeizLamp1 DOIF ([8:00])(set HeizLamp1 on-for-timer 2700) DOELSE (set HeizLamp1 off)
attr di_HeizLamp1 repeatcmd 11700
attr di_HeizLamp1 repeatsame 3
## Hier schaltet die UV A/B Wärme Lampe um 8 Uhr an für 45 Minuten und nach 3 Std 15 min nochmal das ganze dann insgesamt 3 mal
Wie schon geschrieben, macht in dieser Konstellation DOELSE keinen Sinn daher:
define di_HeizLamp1 DOIF ([08:00])(set HeizLamp1 on-for-timer 2700)
Zitat von: Damian am 18 Dezember 2015, 19:55:14
define di_HeizLamp1 DOIF ([8:00])(set HeizLamp1 on-for-timer 2700) DOELSE (set HeizLamp1 off)
attr di_HeizLamp1 repeatcmd 11700
attr di_HeizLamp1 repeatsame 3
## Hier schaltet die UV A/B Wärme Lampe um 8 Uhr an für 45 Minuten und nach 3 Std 15 min nochmal das ganze dann insgesamt 3 mal
Wie schon geschrieben, macht in dieser Konstellation DOELSE keinen Sinn daher:
define di_HeizLamp1 DOIF ([08:00])(set HeizLamp1 on-for-timer 2700)
sorry das böse copy paste sollte natürlich ohne DOELSE sein .. hatte das schon beim ersten mal verstanden aber nicht geädert ^^
Zitat von: gNomeX am 18 Dezember 2015, 20:24:18
sorry das böse copy paste sollte natürlich ohne DOELSE sein .. hatte das schon beim ersten mal verstanden aber nicht geädert ^^
Ach ja, es muss noch:
attr di_HeizLamp1 do always
damit jeden Tag um 8:00 Uhr die Sache funktioniert.
Gruß
Damian
Zitat von: Damian am 18 Dezember 2015, 22:01:55
Ach ja, es muss noch:
attr di_HeizLamp1 do always
damit jeden Tag um 8:00 Uhr die Sache funktioniert.
Gruß
Damian
hatte ich auch überlegt ob das noch zu gefügt werden muss
Zitat von: gNomeX am 18 Dezember 2015, 19:38:23
was mir aber auch aufgefallen ist in meinen Codes
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 30)
läßt das Licht weiter brennen auch nach 17 Uhr. Da in der Nacht eine Temperatur von 22 Grad sind
Ich habe das auf
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 20)
Geändert
Aber was ich noch nicht so verstehe
was passiert wenn ich die Temperatur 35 Grad erreicht habe... Dann geht die Lampe ja wieder aus..
...bis sie unter 20 Grad gefallen ist?
Wenn ich das noch gelöst bekomme das die lampe um 17 Uhr aus geht egal welche Temperatur ist bin ich fast fertig.
Zitat von: gNomeX am 18 Dezember 2015, 22:11:08
hatte ich auch überlegt ob das noch zu gefügt werden muss
Wenn ich das noch gelöst bekomme das die lampe um 17 Uhr aus geht egal welche Temperatur ist bin ich fast fertig.
Wo ist das Problem? Die THRESHOLDS arbeiten autark und halten die definierte Temperatur durch Ein- und Ausschalten (Hysterese 1 Grad ist default).
Bei 20 Grad geht die Lampe aus und wird wieder eingeschaltet, wenn die voreingestellte Temperatur höher ist als die tatsächlich und das wird wohl erst wieder um 07:00 Uhr der Fall sein.
Gruß
Damian
Das Problem ist wenn die Lampe 14 Uhr abschaltet bekomme ich die Temperatur nicht unter 20 Grad innerhalb der normalen Schaltzeiten also bis 17 Uhr
Wenn ich den Trashold auf 26 schalte würde die Lampe nach 17 Uhr wieder an gehen da eine Temperatur von unter 26 erreicht wird.
Ist es möglich ein 2ten doif Befehl zu nutzen der den status abfragt und die Lampe
Nach 17 Uhr abschalten wenn der Status on gegeben ist?
Zitat von: gNomeX am 19 Dezember 2015, 08:34:47
Das Problem ist wenn die Lampe 14 Uhr abschaltet bekomme ich die Temperatur nicht unter 20 Grad innerhalb der normalen Schaltzeiten also bis 17 Uhr
Warum soll die Lampe um 14:00 Uhr dauerhaft ausgeschaltet sein.
Noch mal: Zwischen 07:00 und 17:00 Uhr hast du die Soll-Temperatur auf 35 Grad eingestellt, damit pendelt die Temperatur durch ständiges Ein- und Ausschalten zwischen 34 und 35 Grad (das macht doch das THRESHOLD-Modul). Beim THRESHOLD-Modul handelt es sich um einen Zweipunktregler (die Funktion eines solchen lässt sich im Internet nachschlagen)
Um 17:00 Uhr wird Solltemperatur auf 20 Grad eingestellt. Da bei dir im Zimmer aber die Temperatur nicht unter 20 Grad fällt, wird das THRESHOLD niemals die Lampe einschalten, weil die Solltemperatur (20 Grad) in deinem Zimmer nicht unterschritten wird.
Gruß
Damian
Also war das alles so richtig wie ich das hatte?
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 20)
Zitat von: gNomeX am 19 Dezember 2015, 09:50:02
Also war das alles so richtig wie ich das hatte?
define di_HzgTerrarium_Mitte DOIF ([07:00-17:00]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 20)
ja. und wenn du zwischendurch die Lampe ausschalten möchtest, dann solltest du das nur über das Setzen der Solltemperatur erledigen, ansonsten wird das THRESHOLD-Modul sie bald wieder einschalten ;)
Gruß
Damian
Danke dir.. und Auch Otto für die Geduld und Hilfe.
Dann kann das Thema als erledigt geschlossen werden.
Ich werde später noch mal als Edit die Code zeilen posten für Anfänger wie ich einer bin.
Hier der Vorerst endgültige Code
Mit Beschreibung
#----------------------Platzhalter für kommende Wärmelampe
#define HeizungTerrarium_Links THRESHOLD Temp_Links:temperature WLamp_Links
#attr HeizungTerrarium_Links number_format %.1f
#attr HeizungTerrarium_Links state_cmd1_gt off
#attr HeizungTerrarium_Links state_cmd2_lt on
#attr HeizungTerrarium_Links state_format _m _dv _sc
##Derzeit nicht in Betrieb
#define di_HzgTerrarium_Links DOIF ([07:05-17:25]) (set HeizungTerrarium_Links desired 26) DOELSE (set HeizungTerrarium_Links desired 20)
##di_HzgTerrarium_Mitte Schaltet WLamp_Rechts von 07:05-17:25 eine Soll Max Temperatur von 26 Grad und eine Min Temperatur von 25 Grad UND Nach 17:25 Eine Max Temperatur von 20 Somit bleiben die WLamp_Mitte aus (bei einer Terrarium Temp über 20 Grad)
#----------------------
define di_HauptLamp DOIF ([07:20-17:15]) (set HauptLamp on) DOELSE (set HauptLamp off)
attr di_HauptLamp do always
##Schaltet die Grundbeleuchtung von 7:20 bis 17:15
#----------------------
define HeizungTerrarium_Mitte THRESHOLD Temp_Mitte:temperature WLamp_Mitte
attr HeizungTerrarium_Mitte number_format %.1f
attr HeizungTerrarium_Mitte state_cmd1_gt off
attr HeizungTerrarium_Mitte state_cmd2_lt on
attr HeizungTerrarium_Mitte state_format _m _dv _sc
##Defeniert HeizungTerrarium_Mitte THRESHOLD
define di_HzgTerrarium_Mitte DOIF ([07:05-17:25]) (set HeizungTerrarium_Mitte desired 35) DOELSE (set HeizungTerrarium_Mitte desired 20)
##di_HzgTerrarium_Mitte Schaltet WLamp_Rechts von 07:05-17:25 eine Soll Max Temperatur von 39 Grad und eine Min Temperatur von 25 Grad UND Nach 17:25 Eine Max Temperatur von 20 Somit bleiben die WLamp_Mitte aus (bei einer Terrarium Temp über 20 Grad)
#----------------------
define HeizungTerrarium_Rechts THRESHOLD Temp_Rechts:temperature WLamp_Rechts
attr HeizungTerrarium_Rechts number_format %.1f
attr HeizungTerrarium_Rechts state_cmd1_gt off
attr HeizungTerrarium_Rechts state_cmd2_lt on
attr HeizungTerrarium_Rechts state_format _m _dv _sc
##Defeniert HeizungTerrarium_Rechts THRESHOLD
define di_HzgTerrarium_Rechts DOIF ([07:10-17:20]) (set HeizungTerrarium_Rechts desired 39) DOELSE (set HeizungTerrarium_Rechts desired 20)
#di_HzgTerrarium_Rechts Schaltet WLamp_Rechts von 07:10-17:20 eine Soll Max Temperatur von 39 Grad und eine Min Temperatur von 25 Grad UND Nach 17:20 Eine Max Temperatur von 20 Somit bleiben die WLamp_Rechts aus (bei einer Terarium Temp über 20 Grad)
#----------------------UV Wärmelampe(Sonnenplatz)
define di_HeizLamp1 DOIF ([8:00] or [12:00] or [16:00])(set HeizLamp1 on-for-timer 2700)
attr di_HeizLamp1 do always
#Heizlamp1 = UV Wärmelampe(Sonnenplatz)
#Schaltet NUR 8, 12 und 16 Uhr für jeweils 45 Minuten = 2700 Sekunden
#----------------------
define di_UVLamp1 DOIF ([07:00-17:30]) (set UVLamp1 on) DOELSE (set UVLamp1 off)
attr di_UVLamp1 do always
##UV Lampe Schaltet Nur von 7:00-17:30 Uhr
##Beleuchtung Schaltet wie im Code zu sehen nacheinander um einen Sonnenaufgang/Untergang zu Simulieren
##Aufgang: UVLamp1 (7:00) -> WLamp_Mitte (7:05) -> WLamp_Rechts (7:10) -> HauptLamp (7:20) -> HeizLamp1(8,12,16 Uhr)
##Untergang: HeizLamp1( 16:45 Uhr) -> HauptLamp (17:15)-> WLamp_Rechts (17:20) -> WLamp_Mitte (17:25) -> UVLamp1 (17:30)
Ich hoffe die Agame freut sich über die technische Lösung. ;)
Schöne Feiertage
Otto
Der ist total Happy ;D und Frauchen und Sohnemann auch.
Danke vielmals das ihr mir den einstieg in die Welt von Fhem so erleichtert habt.
Dir auch Frohe Feiertage.