Hauptmenü

Heizung -> Slider -> GPIO

Begonnen von saxandl, 30 Januar 2016, 17:17:20

Vorheriges Thema - Nächstes Thema

saxandl

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

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.