Hallo,
ich möchte einen GPIO (05) schalten, allerdings in Abhängigkeit eines anderen (AutomatikBetrieb).
Nur wenn der GPIO AutomatikBetrieb auf "off" steht, kann der GPIO.05 extern gesteuert werden.
Funktioniert leider nicht...warum ?
Zu schaltender GPIO.05:
define FilterManuell_an notify FilterManuell:on
IF ([AutomatikBetrieb:STATE] eq "off")(set GPIO.05 on)
ELSE (set GPIO.05 off)
#***********************************************
# Einlesen eines GPIO (hier GPIO.8)
#***********************************************
define AutomatikBetrieb RPI_GPIO 8
attr AutomatikBetrieb active_low yes
attr AutomatikBetrieb direction input
attr AutomatikBetrieb interrupt both
attr AutomatikBetrieb poll_interval 20
attr AutomatikBetrieb pud_resistor up
attr AutomatikBetrieb room DigitalPins
Wo liegt der Fehler??
Danke ;-)
Gruss
gahle
Hi,
mir ist nicht ganz klar was Du wirklich erreichen willst.
Gibt mal bitte ein list AutomatikBetrieb
Gruß Otto
Hallo,
ich schalte mit dem GPIO.05 eine Filterpumpe unseres Pools zeitgesteuert ein-/aus. Ich möchte gerne einen zweiten GPIO als Eingang nutzen und mit einem Schalter dann einen manuellen/automatischenm Betrieb erzeugen. ISt immer schön wenn alles per tablet geht, aber eine manuelle Steuerung im Pumpenraum hat sich las praktusch erforderlich heraustgestellt.
Also der GPIO.08 Automatilbetrieb dient als Eingang und erkennt die Stellung eine Schalters ausserhalb der Elektronik (Funktioniert). Nur wenn der Schalter auf "off" steht, dann darf die Pumpe den zeitgesteuerten Betrieb fahren, andernfalls nur manuell.
GG
Zitat von: Otto123 am 05 November 2017, 18:46:01
Gibt mal bitte ein list AutomatikBetrieb
Sorry ich sehe da keine Automatik Betrieb, ich sehe lediglich einen Trigger auf FilterManuell on
Und was an diesem notify nicht geht schreibst Du leider auch nicht. Also Deine Textaufgabe versteh ich schon, Deine Lösung aber leider nicht.
Ich benutze kein IF aber
STATE
ist ein internal und müsste daher mit & "geprefixed" werden oder das Reading state
nehmen.
Grüße Markus
Zitat von: KölnSolar am 05 November 2017, 20:44:37
Ich benutze kein IF aber
STATE
ist ein internal und müsste daher mit & "geprefixed" werden oder das Reading state
nehmen.
Grüße Markus
Das ist wieder so eine Sonderlocke? von IF und DOIF !? -> http://fhem.de/commandref_DE.html#IF
Gruß Otto
jaja und hier (https://forum.fhem.de/index.php/topic,79095.0.html) die nächste "Umgehung" von at, notify, Perl.
Hallo,
also, ich habe einen GPIO als Ausgang definiert, der ein Relais schaltet. Des Weiteren habe ich einen "Zeitschalter" definiert, der dieses Relais zu bestimmten Uhrzeiten ein-/ausschaltet. Nun möchte ich das erweitern und einen GPIO mit einem Schalter versehen, der entweder den "Zeitschalter" als Steurung für das Relais zulässt, oder manuelle das Relais einschaltet?. Wie verknüpfe ich nun den GPIO des Relais mit dem GPIO des Umschalters?
Also entweder Zeitbetrieb oder manuelles einschalten?
GPIO.05 schaltet das Relais:
# define GPIO.05 / Filterpumpe
define GPIO.05 RPI_GPIO 5
attr GPIO.05 direction output
attr GPIO.05 room DigitalPins
GPIO08 ist als Eingang des Schalters definiert:
#***********************************************
# Einlesen eines GPIO (hier GPIO.8)
#***********************************************
define AutomatikBetrieb RPI_GPIO 8
attr AutomatikBetrieb active_low yes
attr AutomatikBetrieb direction input
attr AutomatikBetrieb interrupt both
attr AutomatikBetrieb poll_interval 20
attr AutomatikBetrieb pud_resistor up
attr AutomatikBetrieb room DigitalPins
Und das hier die Definition des "Zeitschalters":
#********************************************************************
#define Zeitschalter Filterpumpe Intervall 1
#
#********************************************************************
# Einschaltzeit 1
define TimerFilterManuell1_ein at *07:00:00 set GPIO.05 on
# Ausschaltzeit 1
define TimerFilterManuell1_aus at *10:00:00 set GPIO.05 off
Wie stelle ich jetzt die Abhängigkeit GPIO.05 vom zustand GPIO.08 her?
Danke.
Gruss
gahle
Hi,
irgendwie trägst Du mit Deinen Erklärungen wenig zum Verständnis bei :-X
Mal als Grundlage, wenn hier jemand ein list <Gerätename> wissen möchte gibst Du bitte genau das in die Kommandozeile von FHEM ein -> list <Gerätename> und postest die Ausgabe in Codetags.
Was Du am Anfang mit dem notify wolltest ist mir immer noch nicht klar, aber deine jetzige Frage würde ich einfach so lösen
defmod TimerFilterManuell1_ein at *07:00:00 IF ([AutomatikBetrieb] eq "off") (set GPIO.05 on)
defmod TimerFilterManuell1_aus at *10:00:00 IF ([AutomatikBetrieb] eq "off") (set GPIO.05 off)
Das sind Befehle für die FHEM Kommanozeile! Lass bitte die Editiererei der fhem.cfg
Allerdings weiß ich immer noch nicht ob AutomatikBetrieb wirklich off liefert.
Gruß Otto
Hier die Lists:
Internals:
DEF 8
EXCEPT_FD 11
GPIO_Basedir /sys/class/gpio
GPIO_Nr 8
NAME AutomatikBetrieb
NR 100
STATE off
TYPE RPI_GPIO
WiringPi_gpio /usr/local/bin/gpio
READINGS:
2017-11-06 22:09:37 Dblclick off
2017-11-06 22:09:37 Longpress off
2017-11-07 12:57:17 Pinlevel low
2017-11-07 12:57:17 state off
fhem:
interfaces switch
Attributes:
active_low yes
direction input
interrupt both
poll_interval 20
pud_resistor up
room DigitalPins
Internals:
DEF 5
GPIO_Basedir /sys/class/gpio
GPIO_Nr 5
NAME GPIO.05
NR 26
STATE on
TYPE RPI_GPIO
WiringPi_gpio /usr/local/bin/gpio
READINGS:
2017-11-06 20:51:25 Pinlevel low
2017-11-07 12:00:00 state on
fhem:
interfaces switch
Attributes:
direction output
room DigitalPins
Ich habe 2 Fhem-Instanzen über FHEMWeb gekoppelt die notifier zu Beginn bedienen auf meinem "Main-Server" nur Dummy-Schalter, um den Zustand der einzelnen Schalter darzustllen. Die darfst du vergessen, war eine falschen Information, sorry. Letzlich gehts nur darum entweder das Realais wie bisher mir dem Zeitintervall zu schalten oder mit einem anderen Schalter das Relais manuell einzuschalten. Werde das nachher ausprobieren.
Gruss
gahle
Hi,
das sieht gut aus. Ich weiß es leider nicht ganz genau was IF jetzt wirklich genau abfragt wenn man kein Reading angibt, ich denke aber der state sieht gut aus. ;D
ZitatIF Statusabfrage des Devices "outdoor" in der Bedingung:
define check at +00:10 IF ([outdoor] eq "open") (set switch1 on)
entspricht mit Angabe des Internals mit &:
define check at +00:10 IF ([outdoor:&STATE] eq "open") (set switch1 on)
Wenn der Reading "state" abgefragt werden soll, dann wird der Readingname ohne & angegeben:
define check at +00:10 IF ([outdoor:state] eq "open") (set switch1 on)
Gruß Otto