Hauptmenü

[gelöst] DOIF Verschachtelt

Begonnen von Shojo, 04 August 2017, 12:01:07

Vorheriges Thema - Nächstes Thema

amenomade

#15
Verstehe die Frage nicht ;)

EDIT: Ah doch, Moment. Du fragst ob das DOELSEIF im 2. Beispiel reicht
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Damian

Zitat von: Shojo am 06 August 2017, 19:52:10
Hat da wer noch eine Antwort für mich?
Oder war jetzt die Frage einfach zu blöd? :)

Ich denke, du musst deine Frage präzisieren, damit man sie beantworten kann.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

amenomade

Antwort: abhängig von was Du willst !

Soll [IT_F000FFFFFF:state] eq "off" die 2. Branche triggern oder nicht?

Im ersten DOELSEIF werden beiden Geräte triggern (eine Änderung von [TV_Parasonic_ETW60:power] oder von [IT_F000FFFFFF:state] wird dazu führen, dass die Bedingung bewertet wird, und evtl. die Befehle durchgeführt)

Im zweiten wir nur TV_Parasonic Einfluss haben.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Shojo

Oh ok :)

Wenn ich das DOIF so aufbaue läuft es wie gewollt (DOELSEIF([IT_F000FFFFFF:state] eq "off" and [TV_Parasonic_ETW60:power] eq "on")):

([IT_F000FFFFFF:state] eq "on")
(IF ([AVReceiver:power] eq "on")
(
set AVReceiver:FILTER=input!=cd input cd,
set AVReceiver:FILTER=volume!=38 volume 38,
set AVReceiver:FILTER=listeningMode!=extendedStereo listeningMode extendedStereo
)
ELSE
(
{GetHttpFile("192.168.0.120","/json?pass=1996&plain=[{%27data%27:%27A55A38C7%27,%20%27type%27:%27NEC%27,%20%27length%27:32,%27cdelay%27:5000},{%27data%27:%27A55A32CD%27,%20%27type%27:%27NEC%27,%20%27length%27:32}]")}
))
DOELSEIF([IT_F000FFFFFF:state] eq "off" and [TV_Parasonic_ETW60:power] eq "on")
(
set AVReceiver:FILTER=input!=hdmi1 input hdmi1,
set AVReceiver:FILTER=volume!=29 volume 29
)
DOELSEIF([IT_F000FFFFFF:state] eq "off" and [TV_Parasonic_ETW60:power] eq "off")
(
set AVReceiver:FILTER=power!=off off
)


Aber  wenn ich das so aufbaue, wird das DOELSEIF nicht getriggert (DOELSEIF([TV_Parasonic_ETW60:power] eq "on"))
Da ich dachte das sich DOIF() DOELSEIF() wie if{}else{} verhält..

([IT_F000FFFFFF:state] eq "on")
(IF ([AVReceiver:power] eq "on")
(
set AVReceiver:FILTER=input!=cd input cd,
set AVReceiver:FILTER=volume!=38 volume 38,
set AVReceiver:FILTER=listeningMode!=extendedStereo listeningMode extendedStereo
)
ELSE
(
{GetHttpFile("192.168.0.120","/json?pass=1996&plain=[{%27data%27:%27A55A38C7%27,%20%27type%27:%27NEC%27,%20%27length%27:32,%27cdelay%27:5000},{%27data%27:%27A55A32CD%27,%20%27type%27:%27NEC%27,%20%27length%27:32}]")}
))
DOELSEIF([TV_Parasonic_ETW60:power] eq "on")
(
set AVReceiver:FILTER=input!=hdmi1 input hdmi1,
set AVReceiver:FILTER=volume!=29 volume 29
)
DOELSEIF([IT_F000FFFFFF:state] eq "off" and [TV_Parasonic_ETW60:power] eq "off")
(
set AVReceiver:FILTER=power!=off off
)
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

amenomade

ZitatDa ich dachte das sich DOIF() DOELSEIF() wie if{}else{} verhält..

Nein. Eher wie if{} elsif {}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Shojo

#20
Zitat von: amenomade am 06 August 2017, 20:06:13
Nein. Eher wie if{} elsif {}

Sorry, meinte ich auch.

Also muss ich nicht nochmals  [IT_F000FFFFFF:state] im DOELSEIF prüfen, da ich ja das schon erledigt habe im DOIF... Richtig ?
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

amenomade

#21
Doch, wie oben geschrieben, wenn Du willst, dass [IT_F000FFFFFF:state] zur DOELSEIF Bedingung/trigger gehört.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Shojo

Ahhhh, nun ist der Groschen gefallen ....  ;D

Danke für die Erläuterung.

Gruß
Dennis
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It