Autor Thema: bedingtes NOTIFY geht nicht  (Gelesen 563 mal)

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
bedingtes NOTIFY geht nicht
« am: 12 Januar 2022, 23:04:35 »
Ich möchte zwei Dummy-Variablen (pushover_heizungsstatus_hilke und pushover_heizungsstatus_gunther : an/aus) nutzen, um einstellen zu können, ob beim Statuswechsel der Heizung auf 1 eine Pushnachricht an meine Frau oder mich gesendet wird.

Leider bekomme ich immer eine Fehlermeldung, weiß aber nicht was falsch ist.

Das steht im DEV des notify:
heizung_Status:1
{if (Value("pushover_heizungsstatus_hilke") eq 'ja') { fhem "set Pushover msg title="Heizungsstatus" Die Heizung steht auf Tagbetrieb. device='IPhone8Hilke' "}};;
{if (Value("pushover_heizungsstatus_gunther") eq 'ja') { fhem "set Pushover msg title="Heizungsstatus" Die Heizung steht auf Tagbetrieb. device='IPhone7GB' "}};;

Habe diverse Klammer und Anführungsstrich-Optionen, die mir sinnvoll erschienen erfolglos getestet.

Folgende Fehlermeldung kommt:
syntax error at (eval 4205595) line 1, near ""set Pushover msg title="Heizungsstatus"
Habt Ihr einen Tipp für mich?
Oder sollte ich auf ein DOIF umsteigen?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11614
  • NIVEAu ist keine Creme...
Antw:bedingtes NOTIFY geht nicht
« Antwort #1 am: 12 Januar 2022, 23:06:03 »
Klammern falsch...

define nNotify notify Device:Regex {if(Bedingung1){fhem("fhem-Befehl1")}if(Bedingung2){fhem("fhem-Befehl2")}}

Ergo: deine erste "if-Zeile" macht Perl "auf" und Perl am Ende auch wieder "zu" Was danach kommt, also 2tes if ist dann "falsch"...

EDIT: die Strichpunkte sind auch unnötig ;)

Du brauchst für EINEN Auslöser doch nicht auf DOIF umsteigen... ;)

{ -> Perl } -> fhem
Siehe: https://wiki.fhem.de/wiki/Klammerebenen und auch https://wiki.fhem.de/wiki/Notify

Anmerkung: lass die Verwendung von Value! Value greift auf STATE (ja das INTERNAL!!!) zu! Das wird z.B. durch stateFormat beeinflusst! Besser ReadingsVal("Device", "Reading", "Ersatzwert") oder ReadingsNum...

Gruß, Joachim
« Letzte Änderung: 12 Januar 2022, 23:19:39 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)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #2 am: 12 Januar 2022, 23:32:08 »
Danke Dir!
Schaue ich mir die Tage an.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Offline frank

  • Hero Member
  • *****
  • Beiträge: 10678
Antw:bedingtes NOTIFY geht nicht
« Antwort #3 am: 12 Januar 2022, 23:44:12 »
die fehlermeldung bezieht sich wohl aber auf die anführungszeichen.
beim "verschachteln" von anführungszeichen musst du unterschiedliche verwenden.
"set Pushover msg title='Heizungsstatus'......"
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11614
  • NIVEAu ist keine Creme...
Antw:bedingtes NOTIFY geht nicht
« Antwort #4 am: 12 Januar 2022, 23:45:39 »
die fehlermeldung bezieht sich wohl aber auf die anführungszeichen.
beim "verschachteln" von anführungszeichen musst du unterschiedliche verwenden.
"set Pushover msg title='Heizungsstatus'......"

Stimmt, das kommt noch dazu ;)

Die "Strichlein" waren wohl zu klein für mein Auge ;)

Gruß, Joachim
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 TomLee

  • Hero Member
  • *****
  • Beiträge: 3890
  • ... wer sät, der erntet ...
Antw:bedingtes NOTIFY geht nicht
« Antwort #5 am: 12 Januar 2022, 23:48:04 »
die fehlermeldung bezieht sich wohl aber auf die anführungszeichen.
beim "verschachteln" von anführungszeichen musst du unterschiedliche verwenden.
"set Pushover msg title='Heizungsstatus'......"

Seh ich genauso, wobei alle anderen Erläuterungen ja nicht falsch waren.

Hier eine Möglichkeit es auch mit weniger Klammern umzusetzen :

heizung_Status:1
{return fhem ("set Pushover msg title='Heizungsstatus' Die Heizung steht auf Tagbetrieb. device='IPhone8Hilke'") if ReadingsVal('pushover_heizungsstatus_hilke','state','false') eq 'ja';
return fhem ("set Pushover msg title='Heizungsstatus' Die Heizung steht auf Tagbetrieb. device='IPhone7GB'") if ReadingsVal('pushover_heizungsstatus_gunther','state','false') eq 'ja';}

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #6 am: 13 Januar 2022, 07:37:17 »
Danke Euch!
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #7 am: 13 Januar 2022, 23:23:20 »
Habe nun folgendes über die Kommandozeile in FHEM erfolgreich getestet:
{if (ReadingsVal('pushover_heizungsstatus_gunther','state','false') eq 'an') { fhem "set Pushover msg Die Heizung steht auf Tagbetrieb. title='Heizungsstatus' device='IPhone7GB' "}}also wenn
pushover_heizungsstatus_gunther auf "an" steht, geht die Nachricht raus. bei "aus" nicht.
So soll es sein.

Aber: Im notify funktioniert das nicht. Wenn ich das Dummy auf 1 schalte, passiert leider nix.
So sieht DEV des notifys aus:
heizung_Status:1
{if (ReadingsVal('pushover_heizungsstatus_gunther','state','false') eq 'an') { fhem "set Pushover msg Die Heizung steht auf Tagbetrieb. title='Heizungsstatus' device='IPhone7GB' "}};;

Habe ich noch einen Denkfehler?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1507
Antw:bedingtes NOTIFY geht nicht
« Antwort #8 am: 13 Januar 2022, 23:42:04 »
Eventuell hast Du event-on-change-reading gesetzt?
Hast Du im Eventmonitor geschaut, ob da auch ein event kommt, wenn Du heizung_Status:1 auf 1 schaltest.
Dort kannst Du auch direkt das notify erstellen, damit ist es dann immer richtig.
Intel NUC mit Linux Debian 10, Homematic (UART/HMUSB), Debmatic, HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, LaCrosse JeeLink, fhemApp Frontend für FHEM

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #9 am: 14 Januar 2022, 01:24:00 »
Danke für Deine Antwort!

Im Dummy ist kein event-in-change-reading gesetzt.
Event kommt. Wenn ich auf nötige anlegen gehe, steht dort dasselbe wie in meinem Notify (vorne).
Komisch
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11614
  • NIVEAu ist keine Creme...
Antw:bedingtes NOTIFY geht nicht
« Antwort #10 am: 14 Januar 2022, 07:42:11 »
Poste doch mal ein list vom notify und vom dumy.
Und Auszüge aus dem Eventmonitor...

Gruß, Joachim
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 Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #11 am: 14 Januar 2022, 16:09:38 »
Hier die lists

Internals:
   DEF        heizung_Status:1
{if (ReadingsVal('pushover_heizungsstatus_gunther','state','false') eq 'an') { fhem "set Pushover msg Die Heizung steht auf Tagbetrieb. title='Heizungsstatus' device='IPhone7GB' "}};;
   FUUID      5ce57bec-f33f-7b68-92f7-61af80f8f0bda645
   NAME       notify_heizungsstatus_pushover_1
   NOTIFYDEV  heizung_Status
   NR         3681
   NTFY_ORDER 50-notify_heizungsstatus_pushover_1
   REGEXP     heizung_Status:1
   STATE      2022-01-14 06:20:00
   TRIGGERTIME 1642137604.33378
   TYPE       notify
   READINGS:
     2022-01-13 23:18:03   state           active
     2022-01-14 06:20:00   triggeredByDev  heizung_Status
     2022-01-14 06:20:00   triggeredByEvent 1
Attributes:
   room       Logik,Logik_Heizung

Internals:
   CFGFN     
   FUUID      61df3f9e-f33f-7b68-b9c8-660b20ca8bd29e5c
   NAME       pushover_heizungsstatus_gunther
   NR         69429
   STATE      an
   TYPE       dummy
   READINGS:
     2022-01-13 23:17:16   state           an
Attributes:
   alias      Schalter: Aktivieren und Deaktivieren Pushnachricht Heizungsstatus gunther
   group      Status
   room       G_Dummydevices,Logik,Logik_Heizung
   setList    an aus
   webCmd     an:aus
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 11614
  • NIVEAu ist keine Creme...
Antw:bedingtes NOTIFY geht nicht
« Antwort #12 am: 14 Januar 2022, 16:34:31 »
list heizung_Status wäre noch gut und eben Eventmonitor auch von heizung_Status ;)

dummy wäre nicht nötig gewesen (schadet aber auch nicht) , sorry...

Gruß, Joachim
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 TomLee

  • Hero Member
  • *****
  • Beiträge: 3890
  • ... wer sät, der erntet ...
Antw:bedingtes NOTIFY geht nicht
« Antwort #13 am: 14 Januar 2022, 16:47:25 »
Es sind die zwei Semikolon in der DEF des notify die da nix zu suchen haben.
Eins ginge, wenn man da unbedingt eines stehen haben will  ;D

Offline Gunther

  • Hero Member
  • *****
  • Beiträge: 1617
  • Perl? Copy & Paste... ;-)
Antw:bedingtes NOTIFY geht nicht
« Antwort #14 am: 14 Januar 2022, 23:14:31 »
list heizung_Status wäre noch gut und eben Eventmonitor auch von heizung_Status ;)

Internals:
   FUUID      5ce57bec-f33f-7b68-be9b-126e2189c5658e4b
   NAME       heizung_Status
   NR         3665
   STATE      1
   TYPE       dummy
   READINGS:
     2022-01-14 06:20:00   state           1
Attributes:
   comment    1 = Tag / Anwesend
2 = Nacht / Schlafen
3 = Abwesend / Urlaub / Nottemperatur

   group      Status
   room       G_Dummydevices,Haus,Logik,Logik_Heizung
   setList    1 2 3
   sortby     01
   webCmd     1:2:3

Event Monitor:
2022-01-14 23:12:16 dummy heizung_Status 2
2022-01-14 23:12:22 dummy heizung_Status 1
2022-01-14 23:12:23 dummy heizung_Status 1

keine Reaktion im Event Monitor vom notify...
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

 

decade-submarginal