Hauptmenü

DOIF GPIO Abfrage

Begonnen von davidson, 21 Februar 2018, 22:12:40

Vorheriges Thema - Nächstes Thema

davidson

Hallo,

ich habe für euch wahrscheinlich eine leichte Frage. Ich möchte, wenn ein Signal anliegt ein Licht anschalten, und wenn es nicht mehr vorhanden ist ausschalten.

Habe folgen Code.

([Bewegungsmelder_Terrasse:"on"]) (set Licht_Terrasse on) DOELSE (set Licht_Terrasse off)

Leider funktioniert es nicht und ich bekomme folgende Fehlermeldung:

timer_01_c01
error: Wrong timespec Bewegungsmelder_Terrasseeq"on": either HH:MM:SS or {perlcode}
2018-02-21 22:02:00

Wenn ich cmd_1 oder 2 händisch ausführe, funktioniert es.

Bitte helft mir weiter.

Phill

#1
Die Syntax der Bedingung ist anders. Das musst du dir nochmal anschauen.


([Bewegungsmelder_Terrasse] eq "on") (set Licht_Terrasse on) DOELSE (set Licht_Terrasse off)

Bin aber jetzt nicht der DOIF Experte, denn eigentlich sehe ich gerade das deine Syntax ja auch so in der Commandref steht...
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

davidson

Danke für die schnelle Hilfe, habe es eben gesehen:-(

([Bewegungsmelder_Terrasse:state] eq "on") (set Licht_Terrasse on) DOELSE (set Licht_Terrasse off)

Frank_Huber

#3
Du musst unterscheiden zwischen Event und Zustands-Steuerung.

Dein ursprünglicher DOIF ging auf das Event, also exalt den Moment wo  "on" kam. Und das wenn ich es richtig sehe auch noch in falschem Syntax.

Der Vorschlag von Phil ist korrekter Weise auf den Zustand ausgelegt. Also solange "on" ansteht ist er aktiv.

Mit dem Handy online, daher kurz gefasst...

NewRasPi

#4
Hallo davidson
So als Anfänger würd ich das Problem sehen: "mach das Licht an und sofort - mach das Licht aus"
Bevor das Licht ausgeschaltet wird sollte eventuell ein Attribut "wait 0,20" (Dauer in Sekunden) etc. stehen.
Dann bemerkt man vielleicht auch das Dein Licht an ist. 
Schöne Grüße und viel Erfolg

Geändert in wait 0,20 damit es sofort an, aber verzögert ausgeschaltet wird
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Damian

Nur mal zum Verständnis.

Man kann beim DOIF genauso gut auf Ereignisse triggern, nichts anderes macht auch ein Notify.

Hier also:

([Bewegungsmelder_Terrasse:"on"]) (set Licht_Terrasse on) DOELSEIF ([Bewegungsmelder_Terrasse:"off"]) (set Licht_Terrasse off)

Die vorgeschlagene Zustandsabfrage funktioniert natürlich genauso gut. In beiden Fällen wird allerdings vorausgesetzt, dass der Bewegungsmelder seinen Zustand per Event auf off ändert.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF