FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: saxandl am 30 Januar 2016, 17:17:20

Titel: Heizung -> Slider -> GPIO
Beitrag von: saxandl am 30 Januar 2016, 17:17:20
Hi!

ich habe an einem Pi einen w1-Temp-Sensor und auf GPIO ein Relais. Ziel ist, das
Realis high zu schalten, wenn Raumtemp < Sliderwert bzw. low, wenn
Raumtemp >= Sliderwert.

Mein Ansatz

10 # GPIO einrichten
20 define RELAIS RPI_GPIO 22
30 attr RELAIS direction output

40 # Slider Temp
50 define Heizung.Slider dummy
60 attr Heizung.Slider setList state:slider,16,1,25
70 attr Heizung.Slider webCmd state

80 # Slider-Wert auslesen => $sliderwert
90 define Heizung.Slider.Notify notify Heizung.Slider:* {\
100 my $sliderwert = ReadingsVal("Heizung.Slider","state","on");\
110 }

120 # Relais-schalten
130 define Termostat notify Wohnzimmer:temperature:.* {\
140 my $rel = (int($EVTPART1) < $sliderwert ? "on" : "off");\
150 fhem "set RELAIS $rel";\
160 }


Das Problem wird im log-file dargestellt: Die Variable $sliderwert wird in Zeile
100 deifiniert, jedoch nicht an zeile 140 übergeben:
"Global symbol "$sliderwert" requires explicit package ..."

Ich habe es auch mit var versucht - kein erfolg.

Die Frage lautet: Wie vergleiche ich IST- mit SOLL-Temp und löse entsprechend einen
"fhem 'set ..'" aus?

greets
Titel: Antw:Heizung -> Slider -> GPIO
Beitrag von: Puschel74 am 30 Januar 2016, 18:03:01
Variablen die mit my deklariert wurden sind nur innerhalb des notify gültig.
Das sagt aber auch die Meldung.
Entweder in jedem notify my verwenden oder Variablen global mit our deklarieren - dann aber auch bitte nur einmal.