[Gelöst] Notify schaltet mehrfach hin und her

Begonnen von sigi3001, 02 Februar 2023, 22:47:42

Vorheriges Thema - Nächstes Thema

sigi3001

Hallo!

Ich versuche gerade seit Stunden eine scheinbar einfache Lampenkopplung zu realisieren.
Also wenn Lampe1 über einen KNX-Taster oder die FHEM-Oberfläche ein- bzw. ausgeschaltet wird, soll Lampe2 den gleichen Zustand einnehmen.
Klingt erstmal total einfach.
Natürlich habe ich dazu gleich das anscheinend passende Notify im Wiki gefunden:

define LichtamRadioan notify LichtKueche set RadioKueche $EVENT
... und für meine Zwecke so modifiziert:
define Lichtkopplung notify EGEsstischHaengelampe set EGEsstischDeckenlampe $EVENT

Das resultiert jetzt aber leider darin, dass die Lampen mehrmals ein- und ausgeschaltet werden, bevor sie den interessanterweise korrekten Endzustand erreichen.
Sieht im Eventmonitor so aus:
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: off
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe off
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe on
2023-02-02 22:43:26 KNX EGEsstischHaengelampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischHaengelampe setG1: on
2023-02-02 22:43:26 KNX EGEsstischHaengelampe on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: off
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe off
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: on
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe on
2023-02-02 22:43:26 KNX EGEsstischHaengelampe last-sender: 1.1.5
2023-02-02 22:43:26 KNX EGEsstischHaengelampe getG1: on
2023-02-02 22:43:26 KNX EGEsstischHaengelampe on

Die Regexp sind eindeutig.

Was mache ich da falsch?

Cheers,
Sigi
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

Otto123

#1
Zitat von: sigi3001 am 02 Februar 2023, 22:47:42
Die Regexp sind eindeutig.
Hi Sigi,

interessanter Satz - was meinst Du damit?

Dein notify triggert jetzt auf alles was das Device an Events sendet, Du musst das Suchmuster schärfer machen!

Am Besten im Eventmonitor das notify gleich anlegen lassen.

Du musst Dir auch anschauen, ob set .. $EVENT das richtige ist. Eventuell darfst Du nur $EVTPARTx verwenden.
Siehe auch hier https://wiki.fhem.de/wiki/Notify

Dein Suchmuster kann am Ende optimiert so aussehen EGEsstischHaengelampe:o[nf]+  ;) da kannst Du auch mit $EVENT arbeiten.

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

sigi3001

Hallo Otto,

vielen Dank für die rasche Antwort!

Mit eindeutigen Regexp meinte ich, dass die Bezeichnungen der Lampen eindeutig sind und dadurch eigentlich nichts anderes mittriggern sollte.
Wenn ich drüber nachdenke, hat aber eh nix falsches mitgetriggert, sondern nur mehrfach.
Genau wie du geschrieben hast:
ZitatDein notify triggert jetzt auf alles was das Device an Events sendet, Du musst das Suchmuster schärfer machen!

Langsam lichtet sich der Nebel in meinem Gehirn!
Werde heute abend versuchen deinen Input umzusetzen.

Noch eine allgemeine Frage:
Nachdem ich ein totaler Anfänger bin - wo kann ich ein Grundlagenwissen herkriegen, wie man z.B. sowas macht :"...lampe:o[nf]+"

Cheers,
Sigi
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

JoWiemann

Zitat von: sigi3001 am 03 Februar 2023, 09:52:57

Noch eine allgemeine Frage:
Nachdem ich ein totaler Anfänger bin - wo kann ich ein Grundlagenwissen herkriegen, wie man z.B. sowas macht :"...lampe:o[nf]+"


Nun ja, es gibt ein ziemlich dickes Buch über Reguläre Ausdrücke. Mir hilft oft diese Seite: https://www.data2type.de/xml-xslt-xslfo/regulaere-ausdruecke

PS: Hast Du im auslösenden Device "event-on-change-reading" gesetzt. Damit wird ein Event für die ausgewählten Readings nur noch dann erzeugt, wenn sich der Inhalt tatsächlich geändert hat.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

erwin

Hi,
Wie schon weiter oben geschrieben, bekommst du für jeden Tastendruck zumindest 3 events!
Zitat2023-02-02 22:43:26 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe setG1: off
2023-02-02 22:43:26 KNX EGEsstischDeckenlampe off
Aber dein notify ist NICHT eindeutig - triggert also 3 mal......
Vorschlag:
define Lichtkopplung notify EGEsstischHaengelampe:(on|off) set EGEsstischDeckenlampe $EVENT
Noch besserer Vorschlag (ohne notify):
Zitatattr  EGEsstischDeckenlampe stateCMD {....}
Beispiele dafür gibts im wiki: https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Otto123

Anmerkungen:
Das Suchmuster bei notify ist zwar regExp, ist aber "konservativ" gestrickt - siehe Antwort von Rudi https://forum.fhem.de/index.php?topic=115414.0.
Der erste Vorschlag von Erwin sieht auf den ersten Blick eingängiger aus als meiner, ist aber auf den zweiten Blick nicht so effizient.
Man kann das mit dieser Funktion prüfen:
{notifyRegexpCheck('EGEsstischHaengelampe:(on|off)')}
Mein Vorschlag ist auch ein Kompromiss, der spricht nämlich nicht ausschließlich auf on und off an. Aber in dem Fall kommen nur diese beiden Events vor und diese Konstrukt ist im System effizienter:
{notifyRegexpCheck('EGEsstischHaengelampe:o[nf]+')}
Beide regExp sind gültig, notify kommt aber mit der Klammer nicht gut klar. Man kann das ausführlich schreiben:
EGEsstischHaengelampe:on|EGEsstischHaengelampe:off
damit kommt notify wieder besser klar als mit der Kurzform mit ()
Erwins zweiter Vorschlag ist für KNX sicher unschlagbar - aber mW nicht bei anderen Devicetypen zu finden.

Dein Fall ist dann nochmal spezieller, weil das von Jörg erwähnte Reading (hier state) im Event gar nicht auftaucht.
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

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sigi3001

@Otto:
Vielen Dank für deine Erklärungen - die letztere Variante ist die für mich einleuchtendste (und ausserdem am leichtesten zu verstehen ;) ).
Ich habe diese Variante jetzt mal umgesetzt. Dennoch kriege ich noch mehrere ON-Events:

2023-02-03 17:02:12 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-03 17:02:12 KNX EGEsstischDeckenlampe setG1: on
2023-02-03 17:02:12 KNX EGEsstischDeckenlampe on
2023-02-03 17:02:12 KNX EGEsstischHaengelampe last-sender: fhem
2023-02-03 17:02:12 KNX EGEsstischHaengelampe setG1: on
2023-02-03 17:02:12 KNX EGEsstischHaengelampe on
2023-02-03 17:02:12 KNX EGEsstischDeckenlampe last-sender: fhem
2023-02-03 17:02:12 KNX EGEsstischDeckenlampe setG1: on
2023-02-03 17:02:12 KNX EGEsstischDeckenlampe on
2023-02-03 17:02:12 KNX EGEsstischHaengelampe last-sender: 1.1.5
2023-02-03 17:02:12 KNX EGEsstischHaengelampe getG1: on
2023-02-03 17:02:12 KNX EGEsstischHaengelampe on

Was mir dabei komisch vorkommt ist, dass obwohl ich die EGEsstischHaengelampe triggere zuerst ein ON auf der EGEsstischDeckenlampe daherkommt.
Wie kann das zustande kommen?


@Erwin:
Ich habe mir den Wiki-Link und diverse weitere Erklärungsversuche zu stateCMD mehrfach durchgelesen. Leider kapiere ich nur einen Teil davon.
Mir erschliesst sich vor allem überhaupt nicht, wie ich da ohne notify auskommen könnte.
Falls das für KNX die beste Methode ist wäre ich aber sehr daran interessiert das zu lernen und zu verstehen, da praktisch alles was ich in der Zukunft programmieren möchte mit KNX zu tun hat. Und ich wäre froh gleich von Anfang an ein möglichst "sauberes" System zu erstellen.

@betateilchen:
Hä? Was ist ein Popcorn Thread?
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

erwin

Hi sigi3001!
ZitatWas mir dabei komisch vorkommt ist, dass obwohl ich die EGEsstischHaengelampe triggere zuerst ein ON auf der EGEsstischDeckenlampe daherkommt.
poste mal ein list der beide KNX-devices. Evtl. hast du für die Deckenlampe die gleiche GA-addr. wie für die HängeLampe definiert? oder noch ein notify, dass hier reinspuckt? -oder: da gibts noch mehere Möglichleiten, (z.B.: in der ETS definition des Tasters...)

ad stateCmd: dazu muss ich zuerst die logik im KNX-Modul erklären:
bei jeder Änderung eines Zustands im KNX-Device wird ein reading - readingname entspechend des GA_Alias gesetzt (also in deinem Fall setG1 / getG1). Unmitttelbar danach wird der gleiche Wert auch ins reading state gestetzt.  Das ist mal historisch so gewachsen, der Wert des letzten events soll immer im reading state sein....
Das ist aber (für KNX-devices) nicht immer sinnvoll, daher gibt es die attribute stateRegex und stateCmd.
stateCmd kann perl-code enthalten, das z.B. den Wert vom state-reading modifiziert, aber auch beliebige andere perl- routinen....
Ein Beispiel:
attr EGEsstischHaengelampe stateCmd {
  if ($gadName eq 'getG1') {
    fhem ("sleep 0.05 quiet; set RadioKueche $state;");
  }
  return $state;
}

Erklärung: Wenn event: 'EGEsstischHaengelampe getG1 on/off' kommt, wird ein 'set RadioKueche on/off' ausgelöst,
das sleep ist notwendig, um zuerst die laufenden events abzuarbeiten bevor neue cmd/events generiert werden!!!
mit dem 'return $state' wird der Wert unverändert ins reading state gesetzt.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

sigi3001

Hallo Erwin!

Hier sind die Devices:

define EGEsstischHaengelampe KNX 0/1/3:dpt1
attr EGEsstischHaengelampe room EG
#   CFGFN     
#   DEF        0/1/3:dpt1
#   FUUID      63dccd24-f33f-956d-68b1-42f2b38b9e7eae4c
#   IODev      KNX
#   KNX_MSGCNT 30
#   KNX_RAWMSG C01105w0010301
#   KNX_TIME   2023-02-03 17:02:12
#   LASTInputDev KNX
#   MSGCNT     30
#   NAME       EGEsstischHaengelampe
#   NR         5017
#   STATE      on
#   TYPE       KNX
#   eventCount 40
#   model      dpt1
#   GADDETAILS:
#     g1:
#       CODE       00103
#       GROUP      0/1/3
#       MODEL      dpt1
#       NO         1
#       OPTION     
#       RDNAMEGET  getG1
#       RDNAMEPUT  putG1
#       RDNAMESET  setG1
#       SETLIST    :on,off,toggle
#   GADTABLE:
#     00103      g1
#   READINGS:
#     2023-02-03 10:00:20   IODev           KNX
#     2023-02-03 17:02:12   getG1           on
#     2023-02-03 17:02:12   last-sender     1.1.5
#     2023-02-03 17:02:12   setG1           on
#     2023-02-03 17:02:12   state           on
#
setstate EGEsstischHaengelampe on
setstate EGEsstischHaengelampe 2023-02-03 10:00:20 IODev KNX
setstate EGEsstischHaengelampe 2023-02-03 17:02:12 getG1 on
setstate EGEsstischHaengelampe 2023-02-03 17:02:12 last-sender 1.1.5
setstate EGEsstischHaengelampe 2023-02-03 17:02:12 setG1 on
setstate EGEsstischHaengelampe 2023-02-03 17:02:12 state on



define EGEsstischDeckenlampe KNX 0/1/6:dpt1
attr EGEsstischDeckenlampe room EG
#   CFGFN     
#   DEF        0/1/6:dpt1
#   FUUID      63dc1833-f33f-956d-0ea5-812195ffa104aef4
#   IODev      KNX
#   KNX_MSGCNT 84
#   KNX_RAWMSG C0111cw0010600
#   KNX_TIME   2023-02-03 08:18:30
#   LASTInputDev KNX
#   MSGCNT     84
#   NAME       EGEsstischDeckenlampe
#   NR         4689
#   STATE      on
#   TYPE       KNX
#   eventCount 418
#   model      dpt1
#   GADDETAILS:
#     g1:
#       CODE       00106
#       GROUP      0/1/6
#       MODEL      dpt1
#       NO         1
#       OPTION     
#       RDNAMEGET  getG1
#       RDNAMEPUT  putG1
#       RDNAMESET  setG1
#       SETLIST    :on,off,toggle
#   GADTABLE:
#     00106      g1
#   READINGS:
#     2023-02-02 21:46:48   EinAus-get      off
#     2023-02-02 21:54:19   EinAus-set      off
#     2023-02-02 21:58:28   IODev           KNX
#     2023-02-02 21:53:50   Status-get      off
#     2023-02-03 08:18:30   getG1           off
#     2023-02-03 17:02:12   last-sender     fhem
#     2023-02-03 17:02:12   setG1           on
#     2023-02-03 17:02:12   state           on
#
setstate EGEsstischDeckenlampe on
setstate EGEsstischDeckenlampe 2023-02-02 21:46:48 EinAus-get off
setstate EGEsstischDeckenlampe 2023-02-02 21:54:19 EinAus-set off
setstate EGEsstischDeckenlampe 2023-02-02 21:58:28 IODev KNX
setstate EGEsstischDeckenlampe 2023-02-02 21:53:50 Status-get off
setstate EGEsstischDeckenlampe 2023-02-03 08:18:30 getG1 off
setstate EGEsstischDeckenlampe 2023-02-03 17:02:12 last-sender fhem
setstate EGEsstischDeckenlampe 2023-02-03 17:02:12 setG1 on
setstate EGEsstischDeckenlampe 2023-02-03 17:02:12 state on



Siehst du da irgendeinen Fehler?
Ein anderes Notify das eine der beiden Lampen enthält gibts auch nicht.

Vielen Dank für deine Erklärung des stateCMD. Das muss ich erst ein bisserl wirken lassen.....

LG
Sigi
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

sigi3001

Jetzt hab ich gerade bei einem "structure" mit Telegrambenachrichtigung ein ähnliches Verhalten entdeckt:

Ich habe eine structure mit 2 Nachtlichtern angelegt, die gemeinsam über eine Zeitschaltuhr geschaltet werden sollen.
Wenn das Ding dann einschaltet bekomme ich 2 bis 4x die Telegram Nachricht gesendet.
(Bei normalen Einzellampen kriege ich die Meldung nur 1x.)

Hier die Devices:

define Nachtlicht structure Gruppe GarderobeNachtlicht StiegeNachtlicht
attr Nachtlicht room System
#   ATTR       Gruppe
#   CHANGEDCNT 15
#   DEF        Gruppe GarderobeNachtlicht StiegeNachtlicht
#   FUUID      63d98d5c-f33f-956d-f0a8-45cd8f32a52d0d3a
#   NAME       Nachtlicht
#   NOTIFYDEV  StiegeNachtlicht,GarderobeNachtlicht,global
#   NR         238
#   NTFY_ORDER 50-Nachtlicht
#   STATE      on
#   STILLDONETIME 0
#   TYPE       structure
#   eventCount 48
#   READINGS:
#     2023-02-03 20:50:36   LastDevice      StiegeNachtlicht
#     2023-02-03 20:50:36   LastDevice_Abs  StiegeNachtlicht
#     2023-02-03 20:50:36   state           on
#
setstate Nachtlicht on
setstate Nachtlicht 2023-02-03 20:50:36 LastDevice StiegeNachtlicht
setstate Nachtlicht 2023-02-03 20:50:36 LastDevice_Abs StiegeNachtlicht
setstate Nachtlicht 2023-02-03 20:50:36 state on



define GarderobeNachtlicht KNX 2/1/4:dpt1:EinAus 8/3/12:dpt1:Status:listenonly
attr GarderobeNachtlicht userattr room_map structexclude
attr GarderobeNachtlicht room EG
#   DEF        2/1/4:dpt1:EinAus 8/3/12:dpt1:Status:listenonly
#   FUUID      63d98c89-f33f-956d-07d9-49031116de943427
#   IODev      KNX
#   KNX_MSGCNT 17
#   KNX_RAWMSG C0113aw0830c01
#   KNX_TIME   2023-02-03 20:50:36
#   LASTInputDev KNX
#   MSGCNT     17
#   NAME       GarderobeNachtlicht
#   NR         237
#   STATE      on
#   TYPE       KNX
#   eventCount 32
#   model      dpt1
#   GADDETAILS:
#     EinAus:
#       CODE       02104
#       GROUP      2/1/4
#       MODEL      dpt1
#       NO         1
#       OPTION     
#       RDNAMEGET  EinAus-get
#       RDNAMEPUT  EinAus-put
#       RDNAMESET  EinAus-set
#       SETLIST    :on,off,toggle
#     Status:
#       CODE       0830c
#       GROUP      8/3/12
#       MODEL      dpt1
#       NO         2
#       OPTION     listenonly
#       RDNAMEGET  Status-get
#       RDNAMEPUT  Status-put
#       RDNAMESET  Status-set
#       SETLIST    :on,off,toggle
#   GADTABLE:
#     02104      EinAus
#     0830c      Status
#   READINGS:
#     2023-02-03 10:24:57   EinAus-get      off
#     2023-02-03 20:50:36   EinAus-set      on
#     2023-02-01 22:19:05   IODev           KNX
#     2023-02-03 20:50:36   Status-get      on
#     2023-02-03 20:50:36   last-sender     1.1.58
#     2023-02-03 20:50:36   state           on
#
setstate GarderobeNachtlicht on
setstate GarderobeNachtlicht 2023-02-03 10:24:57 EinAus-get off
setstate GarderobeNachtlicht 2023-02-03 20:50:36 EinAus-set on
setstate GarderobeNachtlicht 2023-02-01 22:19:05 IODev KNX
setstate GarderobeNachtlicht 2023-02-03 20:50:36 Status-get on
setstate GarderobeNachtlicht 2023-02-03 20:50:36 last-sender 1.1.58
setstate GarderobeNachtlicht 2023-02-03 20:50:36 state on



define StiegeNachtlicht KNX 0/1/7:dpt1:EinAus 8/3/21:dpt1:Status:listenonly
attr StiegeNachtlicht userattr room_map structexclude
attr StiegeNachtlicht room OG
#   DEF        0/1/7:dpt1:EinAus 8/3/21:dpt1:Status:listenonly
#   FUUID      63d6cbd6-f33f-956d-36af-ef3e04ff91a7a6fe
#   IODev      KNX
#   KNX_MSGCNT 14
#   KNX_RAWMSG C01121w0831501
#   KNX_TIME   2023-02-03 20:50:36
#   LASTInputDev KNX
#   MSGCNT     14
#   NAME       StiegeNachtlicht
#   NR         162
#   STATE      on
#   TYPE       KNX
#   eventCount 27
#   model      dpt1
#   GADDETAILS:
#     EinAus:
#       CODE       00107
#       GROUP      0/1/7
#       MODEL      dpt1
#       NO         1
#       OPTION     
#       RDNAMEGET  EinAus-get
#       RDNAMEPUT  EinAus-put
#       RDNAMESET  EinAus-set
#       SETLIST    :on,off,toggle
#     Status:
#       CODE       08315
#       GROUP      8/3/21
#       MODEL      dpt1
#       NO         2
#       OPTION     listenonly
#       RDNAMEGET  Status-get
#       RDNAMEPUT  Status-put
#       RDNAMESET  Status-set
#       SETLIST    :on,off,toggle
#   GADTABLE:
#     00107      EinAus
#     08315      Status
#   READINGS:
#     2023-02-03 10:25:14   EinAus-get      off
#     2023-02-03 20:50:36   EinAus-set      on
#     2023-02-01 22:19:05   IODev           KNX
#     2023-02-03 20:50:36   Status-get      on
#     2023-02-03 20:50:36   last-sender     1.1.33
#     2023-02-03 20:50:36   state           on
#
setstate StiegeNachtlicht on
setstate StiegeNachtlicht 2023-02-03 10:25:14 EinAus-get off
setstate StiegeNachtlicht 2023-02-03 20:50:36 EinAus-set on
setstate StiegeNachtlicht 2023-02-01 22:19:05 IODev KNX
setstate StiegeNachtlicht 2023-02-03 20:50:36 Status-get on
setstate StiegeNachtlicht 2023-02-03 20:50:36 last-sender 1.1.33
setstate StiegeNachtlicht 2023-02-03 20:50:36 state on




define NachtlichtTelegram notify Nachtlicht:on set AlarmBotLinz message Nachtlicht Linz EIN!
attr NachtlichtTelegram room Telegram
#   DEF        Nachtlicht:on set AlarmBotLinz message Nachtlicht Linz EIN!
#   FUUID      63d98e0f-f33f-956d-c154-d8a75e3033d432c7
#   NAME       NachtlichtTelegram
#   NOTIFYDEV  Nachtlicht
#   NR         239
#   NTFY_ORDER 50-NachtlichtTelegram
#   REGEXP     Nachtlicht:on
#   STATE      active
#   TRIGGERTIME 1675453836.18555
#   TYPE       notify
#   eventCount 2
#   READINGS:
#     2023-02-03 20:51:12   state           active
#     2023-02-03 20:50:36   triggeredByDev  GarderobeNachtlicht
#     2023-02-03 20:50:36   triggeredByEvent on
#
setstate NachtlichtTelegram active
setstate NachtlichtTelegram 2023-02-03 20:51:12 state active
setstate NachtlichtTelegram 2023-02-03 20:50:36 triggeredByDev GarderobeNachtlicht
setstate NachtlichtTelegram 2023-02-03 20:50:36 triggeredByEvent on



define NachtlichtTimer WeekdayTimer Nachtlicht 123456|06:30|on 123456|08:00|off 0123456|16:00|on 0123456|22:00|off
attr NachtlichtTimer commandTemplate set $NAME  $EVENT
attr NachtlichtTimer room Timer
#   COMMAND   
#   CONDITION 
#   DEF        Nachtlicht 123456|06:30|on 123456|08:00|off 0123456|16:00|on 0123456|22:00|off
#   DEVICE     Nachtlicht
#   FUUID      63d6cf67-f33f-956d-f4ef-cde2267457f1d427
#   GlobalDaylistSpec
#   LANGUAGE   en
#   NAME       NachtlichtTimer
#   NR         163
#   Profil 0: Sunday 16:00:00 on, 22:00:00 off,
#   Profil 1: Monday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   Profil 2: Tuesday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   Profil 3: Wednesday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   Profil 4: Thursday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   Profil 5: Friday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   Profil 6: Saturday 06:30:00 on, 08:00:00 off, 16:00:00 on, 22:00:00 off,
#   STATE      on
#   STILLDONETIME 0
#   TYPE       WeekdayTimer
#   eventCount 13
#   setModifier
#   READINGS:
#     2023-02-03 16:00:00   currValue       on
#     2023-02-03 16:00:00   nextUpdate      2023-02-03 22:00:00
#     2023-02-03 16:00:00   nextValue       off
#     2023-02-03 16:00:00   state           on
#   SWITCHINGTIMES:
#     123456|06:30|on
#     123456|08:00|off
#     0123456|16:00|on
#     0123456|22:00|off
#   TIMER:
#     NachtlichtTimer_4:
#       HASH       NachtlichtTimer
#       MODIFIER   4
#       NAME       NachtlichtTimer_4
#     NachtlichtTimer_midnight:
#       HASH       NachtlichtTimer
#       MODIFIER   midnight
#       NAME       NachtlichtTimer_midnight
#       SETTIMERATMIDNIGHT 1
#   helper:
#     daysRegExp (su|mo|tu|we|th|fr|sa|\$we|\!\$we)
#     daysRegExpMessage (su|mo|tu|we|th|fr|sa|$we|!$we)
#     SWITCHINGTIME:
#       0:
#         16:00:00   on
#         22:00:00   off
#       1:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#       2:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#       3:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#       4:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#       5:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#       6:
#         06:30:00   on
#         08:00:00   off
#         16:00:00   on
#         22:00:00   off
#     WEDAYS:
#       1          1
#       2          1
#   profil:
#     1:
#       EPOCH      1675402200
#       PARA       on
#       TIME       06:30
#       WE_Override 0
#       DAYS:
#         1
#         2
#         3
#         4
#         5
#         6
#     2:
#       EPOCH      1675407600
#       PARA       off
#       TIME       08:00
#       WE_Override 0
#       DAYS:
#         1
#         2
#         3
#         4
#         5
#         6
#     3:
#       EPOCH      1675436400
#       PARA       on
#       TIME       16:00
#       WE_Override 0
#       DAYS:
#         0
#         1
#         2
#         3
#         4
#         5
#         6
#     4:
#       EPOCH      1675458000
#       PARA       off
#       TIME       22:00
#       WE_Override 0
#       DAYS:
#         0
#         1
#         2
#         3
#         4
#         5
#         6
#   profile_IDX:
#     0:
#       16:00:00   3
#       22:00:00   4
#     1:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#     2:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#     3:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#     4:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#     5:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#     6:
#       06:30:00   1
#       08:00:00   2
#       16:00:00   3
#       22:00:00   4
#
setstate NachtlichtTimer on
setstate NachtlichtTimer 2023-02-03 16:00:00 currValue on
setstate NachtlichtTimer 2023-02-03 16:00:00 nextUpdate 2023-02-03 22:00:00
setstate NachtlichtTimer 2023-02-03 16:00:00 nextValue off
setstate NachtlichtTimer 2023-02-03 16:00:00 state on



... und der Eventmonitor:

2023-02-03 20:46:34 KNX GarderobeNachtlicht last-sender: fhem
2023-02-03 20:46:34 KNX GarderobeNachtlicht EinAus-set: on
2023-02-03 20:46:34 KNX GarderobeNachtlicht on
2023-02-03 20:46:34 KNX StiegeNachtlicht last-sender: fhem
2023-02-03 20:46:34 KNX StiegeNachtlicht EinAus-set: on
2023-02-03 20:46:34 KNX StiegeNachtlicht on
2023-02-03 20:46:34 TelegramBot AlarmBotLinz message Nachtlicht Linz EIN!
2023-02-03 20:46:34 structure Nachtlicht on
2023-02-03 20:46:34 KNX GarderobeNachtlicht last-sender: 1.1.58
2023-02-03 20:46:34 KNX GarderobeNachtlicht Status-get: on
2023-02-03 20:46:34 KNX GarderobeNachtlicht on


Könnte das irgendwie auf die gleiche Ursache zurückzuführen sein?

Cheers,
Sigi

Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

erwin

Hi Sigi3001!
da ist nix mehrfach - alles ok

2023-02-03 20:46:34 KNX GarderobeNachtlicht last-sender: fhem
2023-02-03 20:46:34 KNX GarderobeNachtlicht EinAus-set: on   ### set cmd 1
2023-02-03 20:46:34 KNX GarderobeNachtlicht on
2023-02-03 20:46:34 KNX StiegeNachtlicht last-sender: fhem
2023-02-03 20:46:34 KNX StiegeNachtlicht EinAus-set: on         ### set cmd 2
2023-02-03 20:46:34 KNX StiegeNachtlicht on
2023-02-03 20:46:34 TelegramBot AlarmBotLinz message Nachtlicht Linz EIN!
2023-02-03 20:46:34 structure Nachtlicht on
2023-02-03 20:46:34 KNX GarderobeNachtlicht last-sender: 1.1.58
2023-02-03 20:46:34 KNX GarderobeNachtlicht Status-get: on  ### status von GardrobeNachtlicht (Feedback vom KNX-Aktor!)
2023-02-03 20:46:34 KNX GarderobeNachtlicht on

siehe meine Kommentare ####
es passieren immer 3 Events pro "Aktion": last-sender: xxx, <readingname>: <value>, state: <value>
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

sigi3001

#12
Hallo Erwin!

Hab mir gerade deine Antwort durch den Kopf gehen lassen.
Wenn ich das jetzt soweit richtig verstanden habe - in Verbindung mit meinen gestrigen mehrstündigen Studium von Regex - dann löst mein Telegram-Notify deshalb 3x aus, weil der Wortteil "Nachtlicht" in der Structure und im Namen der Lampen steckt.

Liege ich da richtig?

Wäre dann das die korrekte Syntax?

^Nachtlicht$


Cheers,
Sigi
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!

erwin

Zitatdann löst mein Telegram-Notify deshalb 3x aus, weil der Wortteil "Nachtlicht" in
... das glaub ich nicht, allerdings bin ich nicht so firm was structure betrifft.
ich denke, das reading state in deinem structure device wird mehrfach gesetzt durch die "Rückmeldung" der zwei KNX-devices an structure (und einmal mal durch set NachtLicht on  cmd)...
Schau dir doch mal die Attrs: clientstate_behavior und clientstate_priority an !

Alternativ: trigger doch Telegram-notify versuchsweise mit z.B: GarderobeNachtlicht:on
...das wäre der Beweis für mein Vermutung.
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

sigi3001

#14
Ja das habe ich schon probiert.
Zeigt das gleiche Verhalten - auch 3x Telegramm.

Jetzt habe ich mittlerweile auch ^Nachtlicht$:on probiert - da geht gar nix mehr.
Dann habe ich das Nachtlicht auf Nightlight umbenannt -> wieder 3x das Telegramm.

Ich probier jetzt mal mit clientstate herum...
Danke für den Hinweis!
Mühsam ernährt sich das Eichhörnchen.

Der Gira Homeserver ist tot! - Lang lebe FHEM!