Moin,
wie kann ich bei einem bestimmten Temperaturwert z.B. einen GPIO steuern.
Der Sensor läuft:
define GPIO4_DS18B20_0000055d15a7 GPIO4 28-0000055d15a7
attr GPIO4_DS18B20_0000055d15a7 alias Output 1
attr GPIO4_DS18B20_0000055d15a7 icon icoTempHeizung
attr GPIO4_DS18B20_0000055d15a7 model DS18B20
attr GPIO4_DS18B20_0000055d15a7 room Overheat
Auch der GPIO:
define Error_LED RPI_GPIO 5
attr Error_LED direction output
attr Error_LED room Overheat
Dieser lässt sich auch schon über einen Eingang steuern:
define ERROR notify 0x20_prxPortB0:on set Error_LED toggle
Ich habe bisher noch nicht ergooglen können, wie ich den Zusammenhang zwischen dem Messwert und dem Ausgang herstelle.
Eine Möglichkeit könnte THRESHOLD sein.
Leider erschließt sich mir die PEARL-Syntax nicht.
Kann mir hierbei jemand behilflich sein....
Gruß
Pf@nne
Zitat von: Pf@nne am 05 Februar 2015, 15:31:56
Eine Möglichkeit könnte THRESHOLD sein.
Leider erschließt sich mir die PEARL-Syntax nicht.
Die Perl-Syntax wird aber im Einsteigerhandbuch auf Seite 37 ganz anschaulich erklärt. Allerdings glaube ich nicht, dass du an der Stelle Perl brauchst. Sieh dir mal IF und DOIF in der commandref an.
Läuft.....
define MyCommand DOIF ([GPIO4_DS18B20_0000055d15a7:temperature] > 30) (set Error_LED on) DOELSEIF ([GPIO4_DS18B20_0000055d15a7:temperature] <= 30) (set Error_LED off)
attr MyCommand do always
attr MyCommand room Overheat
was macht das :temperature hinter dem Sensornamen?
Per DoIF klappt es ja ganz gut....
jetzt wollte ich das Ganze mit Threshold versuchen,
leider hakt es bei mir schon wieder an der Syntax....
define MyCommand DOIF ([GPIO4_DS18B20_0000055d15a7:temperature] > 30 or [GPIO4_DS18B20_0000055d6980:temperature] > 30) (set Error_LED on) DOELSEIF ([GPIO4_DS18B20_0000055d15a7:temperature] <= 30 and [GPIO4_DS18B20_0000055d6980:temperature] <= 30) (set Error_LED off)
attr MyCommand do always
attr MyCommand room Overheat
define OverheatOFF THRESHOLD GPIO4_DS18B20_0000055d15a7:temperature:1 Error_LED|set @ on|set @ off|1
Warum wird der Sensor nicht akzeptiert?