Hallo,
habe einen Dummy (Heizkoerper) für ein paar meiner HT´s mit den attributen:
set list state:eco,auto,14.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0
erstellt.
Dazu ein notify:
Heizkoerper.* {
my $valtemp = "%";
my $device = "ku_Thermostat,wz_Thermostat,bd_Thermostat,fl_Thermostat";
my $cmd = 'set '.$device.' desiredTemperature auto '.$valtemp;
fhem($cmd);
}
Soweit funktioniert auch alles nur wenn man im dummy auf "auto" schaltet gibt es eine Meldung im logfile:
PERL WARNING: Argument "auto" isn't numeric in multiplication (*) at ./FHEM/10_MAX.pm line 302
Wählt man statt "auto" eine Gradzahl aus der Liste gibt es keinen Eintrag im logfile. Habe das so schon lange am laufen die "Fehlermeldung" ist mir bisher noch nicht aufgefallen.
Was meint ihr einfach ignorieren (es funktioniert ja alles) oder habe ich da irgendwo einen Fehler eingebaut.
Gruß Holgi
Hi Holgi,
was soll den der Befehl
set <device> desiredTemperature auto auto
für einen Sinn machen ?
"auto" ist kein Synonym für eine Temperatur.
John
Hallo,
my $valtemp = "%";
müsste eigentlich auch $EVENT sein.
d.h. du kannst auch
my $cmd = 'set '.$device.' desiredTemperature auto '.$EVENT;
machen und kannst dir die
my $valtemp = "%";
sparen.
Weiters kannst du im notify noch auf $EVENT eq "auto" prüfen und Johns Hinweis eliminieren indem du dann kein auto auto sendest.
So aus dem Kopf:
Heizkoerper.* {
my $device = "ku_Thermostat,wz_Thermostat,bd_Thermostat,fl_Thermostat";
if ($EVENT ne "auto") {
my $cmd = 'set '.$device.' desiredTemperature auto '.$EVENT;
fhem($cmd);
}
}
Kommt das Warning nur bei auto oder auch bei eco?
Ich bin noch am grübeln wie du das eco auch abfangen kannst - && geht nicht da $EVENT nur auto ODER eco sein kann und || geht nicht da der jeweils andere dann wieder wahr ist.
Evtl. müsstest du die Abfrage auf auto || eco einfach ins leere laufen lassen:
Heizkoerper.* {
my $device = "ku_Thermostat,wz_Thermostat,bd_Thermostat,fl_Thermostat";
if ($EVENT eq "auto" || $EVENT eq "eco") {
--- hier kannst du auto oder eco setzen lassen ---
}
else {
fhem("set ".$device." desiredTemperature auto ".$EVENT);
}
}
Sorry ich hab den Code vermutlich jetzt etwas "verhunzt".
Grüße
Hm, wo kommt das 2. auto her ?
Der Hinweis kommt nur bei auto nicht bei eco.
Ich möchte damit erreichen das die HT´s alle wieder ins Wochenprogramm fahren, das funktioniert ja sogar trotz der Fehlermeldung.
Edit: Wenn ich das eingebe:
Heizkoerper.* {
my $device = "ku_Thermostat,wz_Thermostat,bd_Thermostat,fl_Thermostat";
if ($EVENT ne "auto") {
my $cmd = 'set '.$device.' desiredTemperature auto '.$EVENT;
fhem($cmd);
}
}
Kommt zwar keine Fehlermeldung aber die HT`s fahren auch nicht ins Wochenprogramm.
ZitatHm, wo kommt das 2. auto her ?
Aus deiner list und dem Code im notify.
Zitatset list state:eco,auto
Zitatmy $cmd = 'set '.$device.' desiredTemperature auto '.$valtemp;
Wenn $valtemp auto enthält wird desiredTemperature auto auto draus.
Zitat von: Puschel74 am 04 November 2014, 22:07:59
Aus deiner list und dem Code im notify.Wenn $valtemp auto enthält wird desiredTemperature auto auto draus.
Ja, das leuchtet selbst mir ein.
Hast mein Edit im vorigen post gelesen ?
Gruß Holgi
Hallo,
ZitatHast mein Edit im vorigen post gelesen ?
Jetzt ja.
Dann klappt es wohl doch nicht mit $EVENT - sorry.
Was mich aber wundert - % == $EVENT
meine ichAber da hab ich von MAX zu wenig Ahnung - ich kann dir maximal beim Code helfen (oder auch nicht wie man sieht).
Grüße
Kein Problem, trotzdem Danke für die Hilfe. Werde nachher nochmal ein wenig testen.
Edit: hab jetzt einfach das auto weggelassen und es klappt plötzlich. Bin mir sicher das ich das schonmal erfolglos versucht habe. ::)
Gruß Holgi