Autor Thema: IF in notify  (Gelesen 406 mal)

Offline mheiker

  • New Member
  • *
  • Beiträge: 35
IF in notify
« am: 11 September 2021, 11:33:41 »
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

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11353
  • NIVEAu ist keine Creme...
Antw:IF in notify
« Antwort #1 am: 11 September 2021, 12:03:05 »
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
« Letzte Änderung: 11 September 2021, 12:05:29 von MadMax-FHEM »
FHEM PI3B+ Buster: 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)
FHEM PI3 RaspiOS (Test)

Offline mheiker

  • New Member
  • *
  • Beiträge: 35
Antw:IF in notify
« Antwort #2 am: 11 September 2021, 17:12:49 »
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
)
)

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19733
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:IF in notify
« Antwort #3 am: 11 September 2021, 21:30:41 »
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
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266
Zustimmung Zustimmung x 1 Liste anzeigen

Offline mheiker

  • New Member
  • *
  • Beiträge: 35
Antw:IF in notify
« Antwort #4 am: 12 September 2021, 12:41:49 »
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)