Hauptmenü

IF in notify

Begonnen von mheiker, 11 September 2021, 11:33:41

Vorheriges Thema - Nächstes Thema

mheiker

Hallo zusammen,

ich bin ein wenig am Verzweifeln, denn ich bekomme eine IF-Verzweigung im notify nicht umgesetzt.

Aktuell sieht mein Code so aus:


Mathias:absent

IF ([du_Heizungen] eq "on")
(set FBDECT_fritzbox_grpD3E581_3C5AAA62E desired-temp 16.5,
set FBDECT_fritzbox_grpD3E581_3C5AAAB30 desired-temp 16.5,
set FBDECT_fritzbox_11960_0669120 desired-temp 16.0,
set FBDECT_fritzbox_11960_0701984 desired-temp 16.0)

ELSE
(set FBDECT_fritzbox_grpD3E581_3C5AAA62E desired-temp 7.5,
set FBDECT_fritzbox_grpD3E581_3C5AAAB30 desired-temp 7.5,
set FBDECT_fritzbox_11960_0669120 desired-temp 7.5,
set FBDECT_fritzbox_11960_0701984 desired-temp 7.5)


Wenn sich der Resident "Mathias" (das bin ich  ;) ) auf absent ändert, sollen Thermostate (FBDECT...) umgestellt werden und das je nach Zustand der Heizung (dummy-device du_Heizungen).

In der CommandRef steht, dass IF mehrere Komma-getrente Befehle ausführt. Das scheint aber gar nicht zu klappen, kein Thermostat ändert seinen Zustand.
Mit Semikolon getrennt versuchte ich es auch bereits, dann wird aber das erste Device (FBDECT_fritzbox_grpD3E581_3C5AAA62E) nicht angesteuert.

Kann man mir da helfen?

Vielen Dank bereits im Voraus!
Mathias

MadMax-FHEM

#1
Ich persönlich löse sowas ja mit Perl und damit Perl if ;)
...und meist auch "ausgelagert" in eine Sub...
(jaja, ich weiß: unnötiger Wechsel nach Perl und dann wieder "zurück" mittels fhem(" ")... Aber meistens mache ich ja mehr in so einer Sub 8)  )

Aber ich hab mal die commandref zu IF bemüht und da steht folgendes:

Zitat von: commandref
Falls ein Komma im FHEM-Ausdruck vorkommt, muss dieser zusätzlich geklammert werden, damit das Komma nicht als Trennzeichen erkannt wird:

define check at +00:10 IF ([outdoor:humidity] > 10) ((set switch1,switch2 off))

Schon mit "Doppelklammer" versucht?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

mheiker

Hallo Joachim,

besten Dank für deine schnelle Antwort!

Leider hat es mit zwei Klammern auch nicht geklappt...nach viel hin- und hertesten habe ich das notifiy jetzt weggeworfen (mit der Syntax komme ich nicht so recht klar ;)) und das in ein DOIF geändert...und: klappt :)

([Mathias] eq "absent" and [Hannah] eq "absent") (

IF ([du_Heizungen] eq "on") (
set FBDECT_fritzbox_grpD3E581_3C5AAA62E desired-temp 16.5,
set FBDECT_fritzbox_grpD3E581_3C5AAAB30 desired-temp 16.5,
set FBDECT_fritzbox_11960_0669120 desired-temp 16.0,
set FBDECT_fritzbox_11960_0701984 desired-temp 16.0
)

ELSE (
set FBDECT_fritzbox_grpD3E581_3C5AAA62E desired-temp 7.5,
set FBDECT_fritzbox_grpD3E581_3C5AAAB30 desired-temp 7.5,
set FBDECT_fritzbox_11960_0669120 desired-temp 7.5,
set FBDECT_fritzbox_11960_0701984 desired-temp 7.5
)
)

Otto123

Hi,

dein DOIF ist jetzt aber ein doppelt gemoppeltes IF :) im DOIF steckt ja das IF schon drin.

Falls Du in Zukunft nochmal notify probieren willst: generell ist es gut als Ausgangspunkt den Eventmonitor zu nutzen! Zur normalen Doku (commandref) gibt es noch diese Anleitung: https://wiki.fhem.de/wiki/Notify

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

mheiker

Das stimmt wohl :) Aber das DOIF soll nur auslösen und verzweigen, wenn die erste Bedingung passt...

Ich werd mich mal daran machen und beim nächsten Mal ein notify basteln!  8)