1Wire DS18B20 GPIO bei Wert schalten

Begonnen von Pf@nne, 05 Februar 2015, 15:31:56

Vorheriges Thema - Nächstes Thema

Pf@nne

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

FHEM auf: DS415+ (Master), Raspberry Pi 2

nesges

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.

Pf@nne

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?
FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

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?
FHEM auf: DS415+ (Master), Raspberry Pi 2