Hauptmenü

Und-Verknüpfung

Begonnen von MiMoAC, 02 November 2016, 22:01:06

Vorheriges Thema - Nächstes Thema

MiMoAC

Hallo,

ich bin noch Anfänger mit FHEM. Ich würde gerne folgendes Programmieren:

Wenn ein Schalter1 und ein Schalter2 "gedrückt" werden soll ein Schalter 3 eingeschaltet werden.

Meine Versuche sehen so aus:

define Button1 dummy
attr Button1 eventMap on:on off:off
attr Button1 room Test

define Button2 dummy
attr Button2 eventMap on:on off:off
attr Button2 room Test

define Button3 dummy
attr Button3 eventMap on:on off:off
attr Button3 room Test

define Test123 at +*00:15 { if ( "Button1" eq "on" && "Button2" eq "on" ) { fhem("set Button3 on") } else { fhem("set Button3 off")}}



Wofür steht eigentlich das?: +*00:15


Es kann sein, das mal ein Schalter immer an ist und der andere zwischendurch Ein und Ausgeschaltet wird.

Beispiel:

Wenn ich Schalter 1 immer an habe aber Schalter 2 z.B. Anwesenheit und Abwesenheit schaltet, dann soll Schalter 3 nur an sein, wenn ich Abwesend bin (also Schalter 2 an ist).

Also eine einfache UND-Verknüpfung.

Am liebsten wäre mir eine Lösung für mehr als 2 Schalter und für eine ODER-Verknüpfung.

Ich hoffe ihr könnt mir helfen.

Ich hoffe ich habe mich verständlich ausdrücken können.

JoWiemann

Hallo,

du benutzt ein "at" und ein +* mit Zeitangabe. Heist: wiederhole alle 15 Minuten die Befehle in den Klammern. Was Du brauchst ist ein notify oder doif. Bitte  commandref oder Wiki hierzu lesen. Ach ja, die Einsteigerhilfe im Wiki ist Pflicht.



Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

MiMoAC

Ich habe die Einsteigerhilfe gelesen. Verstehe es aber nicht ganz.

Also wie ich notify für einen Schalter verwende das weiß ich. Aber wie kann ich FHEM so programmieren, das wenn Schalter 1 und Schlater 2 gedrückt wurden eine aktion auslöst?

Das war eine Variante, die aber nicht funktioniert:


define NButtons notify Button1,Button2 {\
   if ("$EVENT" ne "off") {\
   fhem ("set Button3 on") ;; Log(1, "Button3")\
   }\
   else {\
   fhem ("set Button3 off") ;; Log(1, "Button3")\
   }\
}



Und diese Änderungen brachten auch nichts:

define NButtons notify Button1 && Button2 {\
...


define NButtons notify Button1 ;; Button2 {\
...

JoWiemann

Bist Du sicher, dass du "und" meinst, also beide gleichzeitig oder doch eher "oder", also einer von beiden?


Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

MiMoAC

Also was ich gerne haben möchte ist.

Das ein Gerät eingeschaltet wird, wenn Schalter 1 UND Schalter 2.

Allerdings soll es auch so sein, dass wenn Schalter 1 (dummy) schon an ist und Schalter 2 (dummy) eingeschaltet wird, dass das Gerät eingeschaltet wird. Und umgekehrt.

Ich hoffe das ich es richtig erkläre.

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Damian

Zitat von: MiMoAC am 05 November 2016, 20:19:12
Also was ich gerne haben möchte ist.

Das ein Gerät eingeschaltet wird, wenn Schalter 1 UND Schalter 2.

Allerdings soll es auch so sein, dass wenn Schalter 1 (dummy) schon an ist und Schalter 2 (dummy) eingeschaltet wird, dass das Gerät eingeschaltet wird. Und umgekehrt.

Ich hoffe das ich es richtig erkläre.

z. B.

define di DOIF ([Schalter1] eq "on" and [Schalter2] eq "on") (set bla bla)


Gruß

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

MiMoAC

Das klappt schon gut!

Wenn einer der Schalter ausgeschaltet wird, soll auch das Gerät wieder ausschalten.

Angenommen Schalter 1 würde regelmäßigr ein- und ausschalten dann soll auch das erä immer ein und ausgeschaltet werden.

ThomasHe

Ich habe mich damit jetzt auch eine Zeit herumgequält und ich glaube es gibt da eine einfach Lösung, zumindest klappt es so bei mir  :D

UND Lösung: Schalter1 und Schalter2 müssen an sein, damit die Lampe angeht
define Einschalten notify Schalter1:on|Schalter2:on set Lampe on

ODER Lösung: Schalter1 oder Schalter2 müssen an sein, damit die Lampe angeht
define Einschalten notify Schalter1:on||Schalter2:on set Lampe on

Der Unterschied sind die pipes |

MiMoAC

Danke für die Rückmeldung. :-)

Also mit dem angegebenen Code:

define Einschalten notify Schalter1:on|Schalter2:on set Lampe on

Habe ich eine Art ODER Verknüpfung. Schalte ich einen der Schalter ein, geht die Lampe sofort an.

Leider geht die Lampe nicht aus, wenn ich einen Schalter abschalte.

Otto123

#10
Ist ja irgendwie klar, von off steht ja nirgends etwas.
define Ausschalten notify Schalter1:off|Schalter2:off set Lampe off
Würde das Gleiche rückwärts machen. Ob Du das so willst?
Der hier:
define Schalten notify Schalter1:o.*|Schalter2:o.* set Lampe $EVENT
könnte eventuell sogar Beides in einem notify - aber das ist nur ne Idee und nicht geprüft. Hängt von den Events ab die generiert werden.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

FranzB94

Hi MiMoAC!
Zitat von: MiMoAC am 06 November 2016, 14:38:18
Also mit dem angegebenen Code:
define Einschalten notify Schalter1:on|Schalter2:on set Lampe on
Leider geht die Lampe nicht aus, wenn ich einen Schalter abschalte.

Du bist ja echt cool! Das Notify heisst ja auch Einschalten und hinter den Doppelpunkten steht  on. Definiere doch mal ein weiteres Notify mit Ausschalten und off nach den Doppelpunkten!   

Edit: 2 Leipziger ein Gedanke! Otto war schneller.