Moin,
es geht nur um die richtige Schreibweise einer if-Bedingung in einem DOIF.
In dem DOIF-Device ist ein DEVICE-Name von einem anderen Device als reading eingetragen.
Zitat
([Termostat.*:ValvePosition"])
{
if ( [$SELF:$DEVICE] eq "-" ) ##1
{
fhem( "setreading $SELF $DEVICE ok );
}
}
Schreibt man bei ##1 statt $DEVICE z.B. Thermostat_1, klappt es. Ich habe dort "$DEVICE" in Anführungszeigehcn ausprobiert ... klappt nicht.
Wie muss ich die if-Bedingung ##1 richtig schreiben?
Ich habe das Problem jetzt gelöst, indem ich den gesuchten Wert bei ##1 mit ReadingsVal abfrage:
Zitatif ( ReadingsVal("$SELF", "$DEVICE", "") eq "-" )
aber schön wäre trotzdem, den "FHEM-Weg" auch zu wissen.
if ( ReadingsVal("$SELF", "$DEVICE", "") eq "-" )
entspricht:
if ( ReadingsVal("$SELF", $device, "") eq "-" )
entspricht:
if ([$SELF:$DEVICE] eq "-" )