notify: 2. Abfrage mit einbinden.

Begonnen von Wasserwerk33, 24 Januar 2025, 14:21:50

Vorheriges Thema - Nächstes Thema

Jamo

Mach Dir doch einfach mal einen Log oder einen Print in deinen code,
und schau Dir dann im Logfile an was passiert. Dann kannst Du das doch ganz einfach debuggen, und siehst welchen Wert EVTPART1 hat. Also etwa so:


MQTT2_zigbee_Mehrfachschalter1:action:.* {

Log 3, "EVTPART1=$EVTPART1";

if ($EVTPART1 eq ".1_single") {
 fhem("set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq ".1_double") {
 fhem ("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")
 }
 }
}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Nobbynews

Im device MQTT2_zigbee_Mehrfachschalter1 evtl. noch das Attribut event-on-change-reading gesetzt?
Das würde dann ggf. erklären, warum bei wiederholten 1_single kein Event und damit kein Triggern des notify ausgelöst wird.

Wasserwerk33

so nun brauch ich mal eine genaue antwort warum es nun funktoniert und leider vorher nicht

das habe ich eingefügt
attr MQTT2_zigbee_Mehrfachschalter1_notify_1 event-on-change-reading action
es schaltet sogar auf double nur fährt es noch 60sek noch nicht runter

Wasserwerk33

Zitat von: Nobbynews am 26 Januar 2025, 10:47:46Im device MQTT2_zigbee_Mehrfachschalter1 evtl. noch das Attribut event-on-change-reading gesetzt?
Das würde dann ggf. erklären, warum bei wiederholten 1_single kein Event und damit kein Triggern des notify ausgelöst wird.

in der einfachen schaltung hat es aber ohne event on change reading immer wieder getriggert.

Nobbynews

Zitat von: Wasserwerk33 am 26 Januar 2025, 10:49:09das habe ich eingefügt
attr MQTT2_zigbee_Mehrfachschalter1_notify_1 event-on-change-reading action
So war das nicht gemeint.
Bitte wieder löschen.
Das attribut verhindert, dass bei gleichem Wert des readings action ein Event ausgelöst wird.
Und ohne Event halt kein Triggern des notify.

Bitte mal ein list vom device.
Sonst wird das nix.

Nobbynews

Zitat von: Wasserwerk33 am 26 Januar 2025, 10:49:09es schaltet sogar auf double nur fährt es noch 60sek noch nicht runter
fhem ("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")Ist es richtig hier jeweils den gleichen Befehl abzusetzen?

Wasserwerk33

#21
Also es läuft auch bei mehrfacher auslösung des selben Befehls. Es schaltet das garagentor wieder on. Einmal fährt es mit on= hoch; das andere mal mit on=runter. Es ist ein 433Mhz schalter mal gewesen in der Garage aber der ist defekt. Nur noch der Empfänger ist am Hörmann tor angeschlossen.

Genauso fährt es nun nach 60 sek bei double triggern wieder automatisch runter. Hatte ein ; vergessen/gelöscht beim experiementieren

Internals:
   CFGFN     
   DEF        MQTT2_zigbee_Mehrfachschalter1:action:.* {
if ($EVTPART1 eq "1_single") {
 fhem("set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq "1_double") {
 fhem("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")
 }
 }
}

   FUUID      67937dab-f33f-c6b9-5325-e0f2eb7a37e112a5
   NAME       MQTT2_zigbee_Mehrfachschalter1_notify_1
   NOTIFYDEV  MQTT2_zigbee_Mehrfachschalter1
   NR         11830
   NTFY_ORDER 50-MQTT2_zigbee_Mehrfachschalter1_notify_1
   REGEXP     MQTT2_zigbee_Mehrfachschalter1:action:.*
   STATE      2025-01-26 10:55:10
   TRIGGERTIME 1737885310.10845
   TYPE       notify
   eventCount 29
   READINGS:
     2025-01-26 10:25:57   state           active
     2025-01-26 10:55:10   triggeredByDev  MQTT2_zigbee_Mehrfachschalter1
     2025-01-26 10:55:10   triggeredByEvent action: 1_single
Attributes:
   event-on-change-reading action
   room       Draußen




könnte man dieses mit ins WIki packen??

Otto123

Zitat von: Wasserwerk33 am 26 Januar 2025, 11:00:50Attributes:
  event-on-change-reading action
das ist Unfug und hat im notify so nix zu suchen - stört nicht und hilft nicht :)

Du könntest (Du musst nicht!) das im mqtt Device setzen um da die Events zu begrenzen.
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

Wasserwerk33

wenn ich das attr unter dem Mehrfachschalter setzte triggert der schalter nur einmal. Sobald ich es wieder unter dem notiy setzte reagiert es jedes mal wenn ich den Taster nur single oder double drücke.

so sieht die list des Schalters aus
Internals:
   CFGFN     
   CID        zigbee_Mehrfachschalter1
   DEF        zigbee_Mehrfachschalter1
   FUUID      679235cd-f33f-c6b9-44b5-1ee194ce33bdbd84
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     489
   NAME       MQTT2_zigbee_Mehrfachschalter1
   NR         11130
   STATE      Action: 1_single Batterie: 81 %
   TYPE       MQTT2_DEVICE
   eventCount 486
   myBroker_CONN myBroker_127.0.0.1_52326
   myBroker_MSGCNT 489
   myBroker_TIME 2025-01-26 11:15:42
   OLDREADINGS:
   READINGS:
     2025-01-23 13:27:57   IODev           myBroker
     2025-01-26 11:15:42   action          1_single
     2025-01-23 13:27:57   associatedWith  MQTT2_zigbee2mqtt
     2025-01-24 12:37:40   attrTemplateVersion 20200904
     2025-01-26 11:15:42   battery         81
     2025-01-26 11:15:42   linkquality     112
     2025-01-26 11:15:42   operation_mode  event
     2025-01-26 11:15:42   voltage         2900
Attributes:
   alias      Mehrfachschalter Garage
   devicetopic zigbee2mqtt/Mehrfachschalter1
   event-on-change-reading action
   icon       control_home
   model      zigbee2mqtt_scene_controller
   readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   stateFormat Action: action Batterie: battery %

so vom Notify
Internals:
   CFGFN     
   DEF        MQTT2_zigbee_Mehrfachschalter1:action:.* {
if ($EVTPART1 eq "1_single") {
 fhem("set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq "1_double") {
 fhem("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")
 }
 }
}

   FUUID      67937dab-f33f-c6b9-5325-e0f2eb7a37e112a5
   NAME       MQTT2_zigbee_Mehrfachschalter1_notify_1
   NOTIFYDEV  MQTT2_zigbee_Mehrfachschalter1
   NR         11830
   NTFY_ORDER 50-MQTT2_zigbee_Mehrfachschalter1_notify_1
   REGEXP     MQTT2_zigbee_Mehrfachschalter1:action:.*
   STATE      2025-01-26 11:14:19
   TRIGGERTIME 1737886459.29802
   TYPE       notify
   eventCount 29
   READINGS:
     2025-01-26 10:25:57   state           active
     2025-01-26 11:14:19   triggeredByDev  MQTT2_zigbee_Mehrfachschalter1
     2025-01-26 11:14:19   triggeredByEvent action: 1_single
Attributes:
   room       Draußen

Nobbynews

Zitat von: Wasserwerk33 am 26 Januar 2025, 11:19:02wenn ich das attr unter dem Mehrfachschalter setzte triggert der schalter nur einmal. Sobald ich es wieder unter dem notiy setzte reagiert es jedes mal wenn ich den Taster nur single oder double drücke.
Das ist ein völlig korrektes Verhalten.
Daher ja meine Frage, ob das Attribut GESETZT ist.
Ich schrieb nicht, dass es gesetzt werden soll.
Also bitte wieder im MQTT2-device LÖSCHEN!!!
Und wie Otto schon schrieb: Im notify macht das ÜBERHAUPT KEINEN Sinn. Also auch hier bitte wieder LÖSCHEN!!
Auch wenn ich kein Pocorn mag.....

Wasserwerk33

habe ich schon gelöscht.

ich lösche es nun nochmal komplett und baue es dann nochmal neu auf. Hatte es schonmal das es dann funktonierte und vorher wollte es einfach nicht.
Vielleicht hilft es. Den es müsste ja funktonieren sagt ihr.


Otto123

Zitat von: Wasserwerk33 am 26 Januar 2025, 11:19:02 jedes mal wenn ich den Taster nur single oder double drücke.
wenn das Verhalten gewünscht ist, darf man event-on-change-reading nicht setzen
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

Wasserwerk33

Guten MOrgen,

hatten gestern etwas Zeit mich um mein Notify zu kümmern. Hatte ja gesagt ich lösche es einfach nochmal und setzte es nochmal noch auf.
Nun läuft es. Weiß aber nicht wieso. Habe sogar noch ein Bereich mehr mit eingefügt. Es läuft nun ohne Probleme.

So sieht es nun aus.
Internals:
   DEF        MQTT2_zigbee_Mehrfachschalter1:action:.* {
if ($EVTPART1 eq "1_single") {
 fhem("set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq "1_double") {
 fhem("set IT_0FF000000F on;sleep 60;set IT_0FF000000F on")
}else {
 if ($EVTPART1 eq "2_single") {
 fhem("set IT_0FF000000F on;sleep 15;set IT_0FF000000F on")
 }
 }
}
}

   FUUID      67937dab-f33f-c6b9-5325-e0f2eb7a37e112a5
   NAME       MQTT2_zigbee_Mehrfachschalter1_notify_1
   NOTIFYDEV  MQTT2_zigbee_Mehrfachschalter1
   NR         189
   NTFY_ORDER 50-MQTT2_zigbee_Mehrfachschalter1_notify_1
   REGEXP     MQTT2_zigbee_Mehrfachschalter1:action:.*
   STATE      Letzte Action: action: 1_single
   TRIGGERTIME 1738736335.52022
   TYPE       notify
   READINGS:
     2025-01-29 07:24:43   state           active
     2025-02-05 07:18:55   triggeredByDev  MQTT2_zigbee_Mehrfachschalter1
     2025-02-05 07:18:55   triggeredByEvent action: 1_single
Attributes:
   room       Draußen
   stateFormat Letzte Action: triggeredByEvent

MadMax-FHEM

#28
Es gibt in Perl auch elsif ;) statt:

else{ if() {}}

EDIT: und evtl. tut ein abschließendes else <- wenn nix von dem zuvor passt   / anzuwenden und dort dann zumindest eine Logausgabe zu machen, nach dem Motto "das kam an, wurde aber nicht behandelt"... Dann kannst du später sehen, warum etwas nicht so gelaufen ist, wie erwartet, sollte es mal dazu kommen...
In etwa:
if(Bedingung1)
{
  Ausführung 1
}
elsif(Bedingung 2)
{
  Ausführung 2
}
elsif(Bedingung 3)
{
  Ausführung 3
}
else
{
  Logausgabe: unbehandelter Fall
}

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)

Beta-User

Es gibt auch noch "return;", wenn man nach einem Zweig schon fertig ist ;) .

Dann ist alles danach automatisch ein logisches "else".
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files