Hallo, habe heute meine Lacrosse Temp. mit meinem Eigenbau Jeelink installiert und Laufen sehr gut. :-)
Nun habe ich eine DOIf fürs Bad geschrieben.....
define HeizungBZAn DOIF ([19:00-21:00] and [Temp1:temperature] <21) (set SteckdoseBad on)
define HeizungBZAus DOIF ([19:00-21:00] and [Temp1:temperature] >22.5)(set SteckdoseBad off)
Ich möchte das zwischen der Uhrzeit wenn die Temp unter 21 ist die Heizung anschalten
und wieder bei 22.5 aus.....
1. Das geht ja bestimmt auch noch kürzer (ich möchte das lernen)
2. das attribut attr HeizungBZAn do always kann ich ja nicht schreiben habe ja 2 define ???
Ganz anderer Ansatz:
define HeizungBZ THRESHOLD Temp1:temperature:1.5:21.75 SteckdoseBad
define HeizungBZTime DOIF ([19:00-21:00]) (set HeizungBZ active,save) DOELSE (set HeizungBZ deactivated,save)
Oder so wie hier (http://fhem.de/commandref_DE.html#DOIF_Weitere_Anwendungsbeispiele)
Die Frage versteh ich nicht: 2. das attribut attr HeizungBZAn do always kann ich ja nicht schreiben habe ja 2 define ???
Du musst doch attr HeizungBZAn do always
und attr HeizungBZAus do always
schreiben!?
Und lerne bitte Code Tags ???
Gruß Otto
erst einmal Danke Otte....ja ich lerne hier jeden Tag, aber Arbeiten, Familie und mein ALter und noch Fhem...ich glaube das ist zur Zeit etwas zu viel. Werde aber aber auf jeden Fall reinlesen und versuchen zu verstehen...Danke
du hast 2 DOIFs definiert, anstatt ein DOIF mit 2 Bedingungen. Ich glaube das hattest du in deinem ersten Post nicht ganz auf dem Schirm und warst deshalb ein bisschen verwirrt.
define HeizungBZ THRESHOLD Temp1:temperature:1.5:21.75 SteckdoseBad
define HeizungBZTime DOIF ([19:00-21:00]) (set HeizungBZ active,save) DOELSE (set HeizungBZ deactivated,save)
noch einmal Danke,
Ich define Heizung BZ mit dem Modul THRESHOLD mit dem Sensor und Aktor und gebe dann die Temperatur an . Aber wie verstehe ich jetzt 1.5;21,75 ???
und dann wird der Aktor SteckdoseBad Ohne on oder off geschrieben warum ???
zweite define ist mir klar....zwischen 19-21 Uhr Heizung BZ active und speichern und wenn das nicht zutrift dann HeizungBZ deactivated, save
ist beim Modul THRESHOLD active = on und deactivated =off ???
Hier wäre die Doku (http://fhem.de/commandref.html#THRESHOLD)
THRESHOLD weiß, dass es on und off setzen muss, das ist default. Wenn nicht müsste man es angeben.
21.75 ist der Mittelwert aus Deinen 22.5 und 21.0 Der ist die Solltemeperatur, wie bei Dir.
1.5 ist die Hysterese, also die Differenz aus Deinen Werten 22.5 minus 21.0
muss ich noch do always schreiben, die Heizung ist einmal an und ausgegangen und dann nicht mehr, habe auch bis 23:oo Uhr verlängert ?
THRESHOLD läuft autark. do always ist was DOIF spezifisches. Und für die Zeitsteuerung braucht es kein do always.
mach mal ein list HeizungBZ
und poste das Ergebnis in Code tags (# Taste über den Smilies)
Gruß Otto
Internals:
DEF Temp1:temperature:1.5:21.75 SteckdoseBad
NAME HeizungBZ
NR 310
NTFY_ORDER 50-HeizungBZ
STATE disabled
TYPE THRESHOLD
cmd1_gt set SteckdoseBad off
cmd2_lt set SteckdoseBad on
cmd_default 2
hysteresis 1.5
init_desired_value 21.75
offset 0
sensor Temp1
sensor_reading temperature
Readings:
2016-11-24 21:47:08 cmd wait for next cmd
2016-11-24 21:47:08 desired_value 21.75
2016-11-24 21:47:08 mode deactivated
2016-11-24 20:58:36 sensor_value 20.9
2016-11-24 21:47:08 state disabled
2016-11-24 21:47:08 threshold_max 21.75
2016-11-24 21:47:08 threshold_min 20.25
Attributes:
disable 1
number_format %.1f
state_cmd1_gt off
state_cmd2_lt on
state_format _m _dv _sc
Vielen Dank
Naja, da habe ich die Doku nicht bis zu Ende gelesen. :-X
THRESHOLD sieht das anders als ich:
2016-11-24 20:58:36 sensor_value 20.9
2016-11-24 21:47:08 threshold_max 21.75
2016-11-24 21:47:08 threshold_min 20.25
Er nimmt die Temperatur nicht als Mittelwert sondern als Maximum.
Er wartet jetzt das die Temperatur auf 20.25 sinkt und schaltet dann wieder ein.
Du gibst folgendes in die Kommandozeile ein:
set HeizungBZ offset 0.75
Damit bekommt er noch einen Offset von 0.75. Die Temperatur ist dann der Mittelwert wie ich es erklärt habe. Du wirst sehen das sich die Werte für max und min verändern.
Alternativ gibst Du set HeizungBZ desired 22.5
ein.
Damit setzt Du die obere Temperatur einfach wie bei in Deinem Ansatz auf 22.5°.
Gruß Otto
Internals:
DEF Temp1:temperature:1.5:21.75 SteckdoseBad
NAME HeizungBZ
NR 310
NTFY_ORDER 50-HeizungBZ
STATE disabled
TYPE THRESHOLD
cmd1_gt set SteckdoseBad off
cmd2_lt set SteckdoseBad on
cmd_default 2
hysteresis 1.5
init_desired_value 21.75
offset 0.75
sensor Temp1
sensor_reading temperature
Readings:
2016-11-24 22:04:44 cmd wait for next cmd
2016-11-24 21:47:08 desired_value 21.75
2016-11-24 21:47:08 mode deactivated
[u][b]2016-11-24 20:58:36 sensor_value 20.9 [/b][/u]
2016-11-24 21:47:08 state disabled
2016-11-24 22:04:44 threshold_max 22.5
2016-11-24 22:04:44 threshold_min 21
Attributes:
disable 1
number_format %.1f
state_cmd1_gt off
state_cmd2_lt on
state_format _m _dv _sc
geht immer noch nicht an.....und ich bin auf T: 20.2 H: 47
Aber das Modul ist deaktiviert --> 2016-11-24 21:47:08 state disabled
Gib set HeizungBZ active
ein und er wird loswurzeln. Es dauert immer eine Minute oder so
define HeizungBZ THRESHOLD Temp1:temperature:1.5:21.75 SteckdoseBad
attr HeizungBZ disable 1
attr HeizungBZ number_format %.1f
attr HeizungBZ state_cmd1_gt off
attr HeizungBZ state_cmd2_lt on
attr HeizungBZ state_format _m _dv _sc
define HeizungBZTime DOIF ([19:00-23:00]) (set HeizungBZ active,save) DOELSE (set HeizungBZ deactivated,save)
meine Config.....ich habe aber nichts deaktiviert....
habe attr HeizungBZ disable 1 einmal geblockt....und schon ging die Heizung an...
siehst du im Eventmonitor Events von deinem Temperaturfühler ?
Irgendwelche event-Atrribute beim Fühler gesetzt ?
Zitat von: derNeue am 24 November 2016, 22:19:45
habe attr HeizungBZ disable 1 einmal geblockt....und schon ging die Heizung an...
Wie meinst Du das? geblockt?
Ich war aber auch nicht bei Dir und hab es deaktiviert! Ich meine im list stand es drin! Dein Pumuckl macht auch FHEM? :o
Warum hast Du nicht set HeizungBZ active gemacht?
Habe jetzt einmal HeizungBZ auf aktiv gesetzt....danke für die Hilfe....werde mich bei Fragen wieder melden....Danke
Zitat von: derNeue am 24 November 2016, 20:23:12ja ich lerne hier jeden Tag
Dann sei dir die Überschrift nochmal verziehen, aber "DOIF Frage" bei "DOIF"? Wäre schlimm, wenn es keine Frage zu
DOIF wäre! Und drei Fragezeichen müssen auch nicht sein, zumal "DOIF Frage" selbst keine Frage ist.
Zum eigentlichen Problem: eigentlich warst du schon auf dem richtigen Weg, aber statt zwei reicht ein DOIF aus:
define HeizungBZAn DOIF ([19:00-21:00] and [Temp1:temperature] < 21) (set SteckdoseBad on)
DOELSEIF ([19:00-21:00] and [Temp1:temperature] > 22.5)(set SteckdoseBad off)
brauchst du auch kein extra
THRESHOLD, so einfache Sachen kann DOIF noch alleine.
do always wäre hier sogar überflüssig, im GGteil, so wird die Steckdose nicht bei jeder neuen Temperaturmeldung wieder an- oder ausgeschaltet, obwohl sie diesen Zustand schon hat (Trägheit der Heizung).
Vielen Dank für den DOIF befehl, ich werde mich bessern und bessere Betreff schreiben...