Hallo,
ich habe schon seit einiger Zeit das PWMR-Modul zur Raumtemp.-Regelung am laufen. Das funktioniert auch sehr gut, Danke an den Entwickler!
Bisher verwende ich den internen Kalender bzw. die TempRules und Temperaturvorgaben tempDay und tempNight, die sich nur umständlcih ändern lassen.
Jetzt habe ich dummys mit slidern für die Temperaturvorgaben gebaut, die per notify die Attribute setzen sollen. Ich finde keine Lösung, das notify kann nur set-Befehle absetzen und die Temp-Attribute im PWMR akzeptieren nur Werte von 0..30 und keine Zeichenketten.
folgender Test funktioniert auch nicht:
attr Temp_Laden tempDay {return ReadingsNum("Raumtemperatur_Laden_Tag","state",0)}
attr Temp_Laden tempDay {ReadingsNum("Raumtemperatur_Laden_Tag","state",0)}
in der Befehlszeile geben die Tests die richtigen Werte zurück.
Raumtemperatur_Laden_Tag = Dummy mit Slider
Temp_Laden = PWMR-Modul
Ich möchte die TempRules gern behalten und keine externe Zeitsteuerung und Vorgabe über desiredTemp machen.
Hi,
Zitat von: Sebuz am 24 November 2023, 10:02:05das notify kann nur set-Befehle absetzen
das stimmt nicht, Du kannst im Ausführungsteil eines notify quasi alles absetzen.
Sicher kannst Du nicht unbedingt im attr einen Perl Befehl direkt angeben, das ist zumindest Dein Problem - wenn ich das richtig verstanden habe?
Vorschlag für den Ausführungsteil im notify zum Test in der Kommandozeile
{my $val=ReadingsNum("Raumtemperatur_Laden_Tag","state",0);;fhem("attr Temp_Laden tempDay $val")}
Beim DEF Editor kannst Du aus ;; dies ; machen.
Gruß Otto
Hallo Otto,
danke für die schnelle Antwort! Das funktioniert auf Anhieb!
Das ist mein Einstieg in Perl und Variablendefinition - geht das nur so oder kann man den Wert auch anders "maskieren"?
Viele Grüße aus Hainichen in Sachsen
ach da gibt es viele Möglichkeiten. Du brauchst die Variable z.B. nicht:
{fhem("attr Temp_Laden tempDay ".ReadingsNum("Raumtemperatur_Laden_Tag","state",0))}
In dem Fall liest sich das noch halbwegs, aber mit dieser Methode (concatenation) wird der Code ganz schnell unleserlich.
Die Variable ist meist die eingängige Schreibweise :)