FHEM - Anwendungen > Heizungssteuerung/Raumklima

[gelöst] Raumtemperatur abfragen und um 3°C erhöhen

(1/2) > >>

Dennis1201:
Für die Heizungssteuerung im Badezimmer nutze ich ein FHT80b mit dem Namen Badezimmer und habe folgendes notify definiert:


--- Code: ---define notify Baden Taster_Bad_Btn_06 set Badezimmer desired-temp 25.0;define Baden1 at +00:03:00 set Badezimmer desired-temp 21.0;define Baden2 at +00:17:00 set Badezimmer desired-temp 5.5
--- Ende Code ---

Das funktioniert auch wunderbar, nur würde ich gerne die Temperatur gerne abhängig machen von der gemessenen Raumtemperatur. Also wenn 20°C gemessen werden sollen mit dem zweiten at 23°C eingestellt werden. Der 3-minütige Boost kann bestehen bleiben.
Leider komme ich trotz tagelanger Recherche und Fummelei nicht zum gewünschten Ergebnis. Probiert habe ich es erst so:


--- Code: ---define notify Baden Taster_Bad_Btn_06  {my $bad=(sprintf("%d",ReadingsVal("Badezimmer","measured-temp", 18) +3));fhem set Badezimmer $bad}
--- Ende Code ---

und mit einer Prozedur in der 99_myUtils:

--- Code: ---sub Bad($) {
# Raumtemperatur im Bad abfragen und um 2 Grad erhöhen
 my($bad) = @_;
 my $isttemp = ReadingsVal($bad,measured-temp);\
 my $solltemp = (sprintf("%d", $isttemp)) +3 ;\
 {fhem ("set $bad desired-temp" . $solltemp};\
}

--- Ende Code ---

Dabei habe ich sprintf benutzt, um nur den ganzzahligen Anteil zu nutzen, da die FHTs nur Werte wie z.B. 20.0 und 20.5 akzeptieren und ich daher mit gemessenen Temperaturen wie 20.1 nicht viel anfangen kann.

Ich habe zwar mal vor Ewigkeiten programmieren gelernt, aber damals war es nur BASIC und bei C++ bzw. Perl blicke ich nicht so ganz durch.
Kann mir bitte jemand einen Tipp geben was ich verkehrt mache? Vielen Dank und frohes Fest


Dennis

chris1284:

--- Code: ---define notify Baden Taster_Bad_Btn_06
--- Ende Code ---
schreibfehler?
ich denke es müsste
--- Code: ---define Baden notify Taster_Bad_Btn_06
--- Ende Code ---
heissen.
würde es so probieren (kannst du so aber nicht in die cfg kopieren!)

--- Code: ---define Baden notify Taster_Bad_Btn_06 {
my $bad= sprintf("%d",ReadingsVal("Badezimmer","measured-temp", 18) );
$bad = $bad +3;
fhem("set Badezimmer desired-temp $bad");}
--- Ende Code ---
oder

--- Code: ---define Baden notify Taster_Bad_Btn_06 {
my $bad= sprintf("%d",ReadingsVal("Badezimmer","measured-temp", 18) ) + 3;
fhem("set Badezimmer desired-temp $bad");}
--- Ende Code ---

Dennis1201:
Danke für Deine Antwort! Du hast recht, da ist in der Tat ein Schreibfehler drin. Allerdings nur hier im Forum, weil ich die Zeilen aus der Definition herauskopiert habe und dann das "define..." von Hand davorgeschrieben habe. In der fhem.cfg steht alles richtig drin.
Leider funktionieren Deine beiden Vorschläge auch nicht, d.h. es passiert genau das gleiche wie bei meinen eigenen Versuchen: nichts. Auch im Log steht rein gar nichts drin, es scheint fast so als würden die Befehle im Nirwana der Schaltkreise meines Raspis verschwinden.

Gruß Dennis

chris1284:
wenn garnichts passiert greift dein notify evtl nicht.

Dennis1201:
Das notify an sich funktioniert, solange der ursprüngliche Code drinsteht (der, den ich oben als allererstes gepostet hatte). Sobald aber eine perl-Funktion mit geschweiften Klammern dazukommt passiert leider nichts mehr. Weder beim Drücken des Tasters noch beim Aufruf mit "Trigger Baden" im Eingabefeld.

Gruß Dennis

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln