Max Temperatur Scanner Nachbau

Begonnen von Kharim, 05 Dezember 2015, 13:27:48

Vorheriges Thema - Nächstes Thema

Kharim

Hallo zusammen,

ich versuche die Funktion des Max Temperaturscanners nachzubauen.
Dabei sollen alle Thermostate -0.5 gesetzt werden, eine at definiert werden, die dann wiederum nach 15Min wieder +0,5 setzt.

Das Scanner at sieht wie folgt aus:
+*00:30:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}


Leider funktioniert der Spaß nicht.

Log:
2015.12.05 13:15:04 1: PERL WARNING: Bareword found where operator expected at (eval 17281) line 16, near ""define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer"
  (Might be a runaway multi-line "" string starting on line 15)
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "ThermostatWohnzimmer", ""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: Bareword found where operator expected at (eval 17281) line 16, near "", "desiredTemperature"
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal(""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "ThermostatKueche", ""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal(""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "ThermostatKinderzimmer", ""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal(""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "ThermostatBad", ""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 16, near "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem(""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: String found where operator expected at (eval 17281) line 19, near "$tb2")}""
2015.12.05 13:15:04 3: eval: {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw-0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku-0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki-0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb-0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2");

fhem("define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
my $tw2 = $tw+0.5;
my $tku = ReadingsVal("ThermostatKueche", "desiredTemperature", 0);
my $tku2 = $tku+0.5;
my $tki = ReadingsVal("ThermostatKinderzimmer", "desiredTemperature", 0);
my $tki2 = $tki+0.5;
my $tb = ReadingsVal("ThermostatBad", "desiredTemperature", 0);
my $tb2 = $tb+0.5;
fhem("set ThermostatWohnzimmer desiredTemperature $tw2;
set ThermostatKueche desiredTemperature $tku2;
set ThermostatKinderzimmer desiredTemperature $tki2;
set ThermostatBad desiredTemperature $tb2")}");
}
2015.12.05 13:15:04 1: PERL WARNING: (Missing operator before ")}"?)
2015.12.05 13:15:04 3: TScanner: syntax error at (eval 17281) line 16, near ""define temp at +00:15:00 {
my $tw = ReadingsVal("ThermostatWohnzimmer"
syntax error at (eval 17281) line 19, near "")}")"

2015.12.05 13:15:47 3: get Cube credit10ms : Cube credit10ms => 900


Der erste Teil der Scanner Notify dabei hat bereits funktioniert und ist quasi nur in die temporäre at Definition hineinkopiert.

Sieht jemand auf Anhieb den Fehler?

Danke,
Kharim
Raspberry Pi 2 + Minibian + 2x MAX Cube CUN (868/433Mhz) + Thermostate + Fensterkontakte + Taster+RGB-LED Band über pigpiod + TFA Sensoren 30.3169/3125
Raspberry Pi 2 + Minibian +Z-Wave (USB) + Bewegungsmelder + Fensterkontakt + Sirene + SMS Steuer-/Benachrichtigung (ohne Internet)

willyk

Bei der Zeile
fhem("define temp at +00:15:00 {
wird ein Hochkomma verwendet. Der nachfolgende Code geht dann bis zum nächsten Hochkomma, das ist vor dem String Thermostatwohnzimmer:
my $tw = ReadingsVal("ThermostatWohnzimmer", "desiredTemperature", 0);
So wird das nix. Ich vermute du denkst dass die umgebenden Klammern den fhem-Befehl begrenzen, das ist aber nicht so. Siehe http://perlmaven.com/quoted-interpolated-and-escaped-strings-in-perl
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner