Hallo an alle
Ich habe folgendes Problem:
Ich schalte mit diesen Definition meine Heizungsthermostate auf off ,
hat der Kachelofen eine bestimmte Temperatur erreicht.
Kachelofen:temperature.* {if ((ReadingsVal("Kachelofen","temperature",99) > "28") && (Value("Kachelofen_Status")eq "off"))
{fhem (
"set HZ_Thermostat_Temperatur_Rechts desired-temp off ;
set HZ_Thermostat_Temperatur_Links desired-temp off ;
set HZ_Thermostat_Temperatur_Mitte desired-temp off ;
set Kachelofen_Status on")}}
Funktioniert tadellos.
Mit dieser Definition werden die Thermostate wieder eingeschaltet:
*23:50 if{(Value("Kachelofen_Status")eq "on") {fhem (
set HZ_Thermostat_Temperatur_Mitte desired-temp 24 ;
set HZ_Thermostat_Temperatur_Links desired-temp 24 ;
set HZ_Thermostat_Temperatur_Rechts desired-temp 24)}}
Es werden aber nur die HZ_Thermostat_Temperatur_Links und
HZ_Thermostat_Temperatur_Rechts eingeschaltet.
Der erste "set HZ_Thermostat_Temperatur_Mitte desired-temp 24 "
wird nicht geschaltet. Warum ??
Unten die Logfile aus der ich nicht schlau werde da ich mehrere Definitionen dieser
Art habe. Villeicht bin ich blind und übersehe etwas.
Logfile
2019.11.24 23:50:00 3: CUL_HM set HZ_Thermostat_Temperatur_Links desired-temp 24
2019.11.24 23:50:00 3: CUL_HM set HZ_Thermostat_Temperatur_Rechts desired-temp 24)}}
2019.11.24 23:50:00 3: Heizung_einschalten: Unknown command if{(Value("Kachelofen_Status")eq, try help.
Für Hilfe wäre ich sehr Dankbar.
Zitat von: zaberwolfi am 25 November 2019, 11:22:21
*23:50 if{(Value("Kachelofen_Status")eq "on") {fhem (
set HZ_Thermostat_Temperatur_Mitte desired-temp 24 ;
set HZ_Thermostat_Temperatur_Links desired-temp 24 ;
set HZ_Thermostat_Temperatur_Rechts desired-temp 24)}}
schau dir mal deine Klammern an , es fehlt die erste geschweifte Klammer auf vor dem if
Setze ich die Klammer so
*23:50 { if (Value("Kachelofen_Status") eq "on") { fhem (set HZ_Thermostat_Temperatur_Mitte desired-temp 24 ; set HZ_Thermostat_Temperatur_Links desired-temp 24 ; set HZ_Thermostat_Temperatur_Rechts desired-temp 24 )}}
bekomme ich:
syntax error at (eval 1863233) line 1, near "temp 24"
syntax error at (eval 1863233) line 1, near "temp 24"
syntax error at (eval 1863233) line 1, near "temp 24"
Wolfgang
In Raw Definition oder Kommandofeld, Semikola verdoppeln
Ausserdem würde ich die set Befehle in " " einschliessen
So funktionierts :
{if (Value("Kachelofen_Status") eq "on") { fhem ("set HZ_Thermostat_Temperatur_Mitte desired-temp 24 ; set HZ_Thermostat_Temperatur_Links desired-temp 24 ; set HZ_Thermostat_Temperatur_Rechts desired-temp 24" )}}
War doch etwas blind in andern Definitionen habe ich auch so gemacht
Danke an alle