bedingtes NOTIFY geht nicht

Begonnen von Gunther, 12 Januar 2022, 23:04:35

Vorheriges Thema - Nächstes Thema

Gunther

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

MadMax-FHEM

#1
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
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)

Gunther

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

frank

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

MadMax-FHEM

Zitat von: frank 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'......"

Stimmt, das kommt noch dazu ;)

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

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)

TomLee

Zitat von: frank 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'......"

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';}

Gunther

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

Gunther

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

Jamo

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.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Gunther

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

MadMax-FHEM

Poste doch mal ein list vom notify und vom dumy.
Und Auszüge aus dem Eventmonitor...

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)

Gunther

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

MadMax-FHEM

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+ 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)

TomLee

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

Gunther

Zitat von: MadMax-FHEM am 14 Januar 2022, 16:34: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