[gelöst] Umstellung EIB->KNX: notify löst jetzt fünf mal aus ???

Begonnen von grappa24, 13 April 2016, 11:36:50

Vorheriges Thema - Nächstes Thema

grappa24

Ich hab ein notify auf meinem EIB/KNX Schalter, der die Alarmanlage scharf schaltet.

Nach der Umstellung von EIB auf KNX löst dieses notify jetzt statt 1x gleich 5x aus. WTF ist das denn jetzt wieder ....  ;)  ;)

Hier mein TUL: define KNX TUL eibd:localhost 1.1.249
attr KNX useEIB 0


Die EIB Instanzen hab ich durch Ändern von EIB auf KNX und Aufnahme des model in die Definition umgezogen, und mangels Info alle mit dpt1 versehen. Vlt. liegts ja am Datentyp????

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

BITTE mehr input...eventlog, fhem.cfg, ...
Meine glaskugel ist grad beim polieren  8)

grappa24

#2
was brauchst Du denn konkret, bevor ich Dir jetzt zu viel gebe ...  ;)

Hier mal der Schalter und sein notify:

define ug_alarmtaster KNX 2601:dpt1
attr ug_alarmtaster IODev KNX

define notifier_ug_alarmtaster notify ug_alarmtaster {\
   if ($EVENT eq "on") {\
      fhem ("set webcam_alle_fg on");;\
   } else {\
         fhem ("set webcam_alle_fg off");;\
     };;\
   fhem ("set ug_sound_ok on");;\
}


Einmal aus- und einschalten erzeugt

2016.04.13 11:07:17 3: FS20 set webcam_alle_fg off
2016.04.13 11:07:17 3: FS20 set ug_sound_ok on
2016.04.13 11:07:17 3: FS20 set webcam_alle_fg off
2016.04.13 11:07:17 3: FS20 set ug_sound_ok on
2016.04.13 11:07:17 3: FS20 set webcam_alle_fg off
2016.04.13 11:07:17 3: FS20 set ug_sound_ok on
2016.04.13 11:07:17 3: FS20 set webcam_alle_fg off
2016.04.13 11:07:18 3: FS20 set ug_sound_ok on
2016.04.13 11:07:18 3: FS20 set webcam_alle_fg off
2016.04.13 11:07:18 3: FS20 set ug_sound_ok on
2016.04.13 11:08:07 3: FS20 set webcam_alle_fg off
2016.04.13 11:08:07 3: FS20 set ug_sound_ok on
2016.04.13 11:08:07 3: FS20 set webcam_alle_fg on
2016.04.13 11:08:07 3: FS20 set ug_sound_ok on
2016.04.13 11:08:07 3: FS20 set webcam_alle_fg off
2016.04.13 11:08:07 3: FS20 set ug_sound_ok on
2016.04.13 11:08:07 3: FS20 set webcam_alle_fg off
2016.04.13 11:08:07 3: FS20 set ug_sound_ok on
2016.04.13 11:08:08 3: FS20 set webcam_alle_fg on
2016.04.13 11:08:08 3: FS20 set ug_sound_ok on
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

Servus!

Na, das bringt doch schon was :-)

Ist ausgeschlossen, dass über die Notifies eine Art Rekursion entsteht? Also wird nochmal abgefragt, oder ein Wert im ug_alarmtaster nochmal geändert wird?

Drei Auslösungen erscheinen mir plausibel, fünf nicht. Warum drei und nicht eines? Weil Du auf alle drei Readings reagierts - state, getG1 und sender.

Probier mal:

define notifier_ug_alarmtaster notify ug_alarmtaster:.* {\
   if ($EVENT eq "on") {\
      fhem ("set webcam_alle_fg on");;\
   } else {\
         fhem ("set webcam_alle_fg off");;\
     };;\
   fhem ("set ug_sound_ok on");;\
}



oder:

define notifier_ug_alarmtaster notify ug_alarmtaster:(on)|(off).* {\
   if ($EVENT eq "on") {\
      fhem ("set webcam_alle_fg on");;\
   } else {\
         fhem ("set webcam_alle_fg off");;\
     };;\
   fhem ("set ug_sound_ok on");;\
}


Grüße, Andi

grappa24

Danke. Das notify soll nur auf ein reading reagieren und nur bei on oder off.

Hat sich da etwas von KNX zu EIB geändert. Die von Dir vorgeschlagene Syntax habe ich bisher nie verwendet *staun*

Da muss ich wohl noch mehr umcodieren.
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

Ja, da hab ich gut was geändert :-)

mach mal

define test KNX 1/2/3:dpt1 4/5/6:dpt1:findemich

Und dann sende / empfange ein paar Telegramme. Dann weißt, was ich meine :-)


Andi291

P.S.: Das löst nicht das Problem, aber schau Dir mal das Attribut stateCmd an. Da kriegst Deine Rechnerei ohne Event unter.

grappa24

#7
ich hab jetzt offensichtlich EIB und KNX parallel laufen (von jedem Gerät gibt es eine EIB- und eine KNX-Instanz), was dazu führt, dass alle Befehle an EIB/KNX-Geräte von FHEM aus jetzt doppelt auf den Bus gegeben werden.

Was kann ich tun, dass wie "früher" nur EIB benutzt wird und KNX nicht?

Wenn ich 10_KNX_pm entferne, kommen wieder die Fehlermeldungen "cannot autoload KNX"
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

Morgen! Nichts - das ist nicht vorgesehen. Den eib kanns abschalten, den knx nicht. Möcht ich auch nicht, weil ist ja neue lösung.
Du kannst alle knx devices löschen und vorher autocreate deaktivieren.

grappa24

ja, das geht. Bleiben halt die Fehlermeldungen "KNX Unknown Device ..." im Log, muss ich halt damit leben ....

Andi, ich hab eine einfache EIB/KNX Installation - leider ohne jedlich Projektdoku, verändere auch an dem System seit 14 Jahren nix, kann also mit der alten Welt ganz gut leben. Hätte es zwar gern "fein" gemacht und nach KNX umgezogen, aber nachdem ich mich jetzt zwei mal im Kreis gedreht hab ...

Trotzdem Danke ...
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

Ich helf dir beim umzug - das wird schon. Bitte nicht aufgeben . . .

grappa24

gut, dann baue ich erst mal meine notify um, offensichtlich kann man denen (jetzt) sagen, auf welche Events sie ausschließlich reagieren sollen. Ein "else" ist dann natürlich tödlich ...
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

grappa24

Zitat von: Andi291 am 13 April 2016, 17:58:18
Drei Auslösungen erscheinen mir plausibel, fünf nicht. Warum drei und nicht eines? Weil Du auf alle drei Readings reagierts - state, getG1 und sender.
Wie kann ich denn dafür sorgen, dass mein notify nur auf ein (bestimmtes) Reading reagiert?

Eine Rekursion würde ich mal ausschließen
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

Siehe post #3. Das sollte nur auf state reagieren.

grappa24

#14
wie in der Anlage (jpg) gezeigt wird die Variante 2 aus Post#3 umgesetzt, das ist doch so nicht richtig, oder?

Mit notify ug_alarmtaster:.* {\ wird das geloggt: 2016.04.14 10:45:17 3: FS20 set webcam_alle_fg off
2016.04.14 10:45:17 3: FS20 set ug_sound_ok on
2016.04.14 10:45:17 3: FS20 set webcam_alle_fg on
2016.04.14 10:45:17 3: FS20 set ug_sound_ok on
2016.04.14 10:45:18 3: FS20 set webcam_alle_fg off
2016.04.14 10:45:18 3: FS20 set ug_sound_ok on
2016.04.14 10:45:18 3: FS20 set webcam_alle_fg off
2016.04.14 10:45:18 3: FS20 set ug_sound_ok on
2016.04.14 10:45:18 3: FS20 set webcam_alle_fg on
2016.04.14 10:45:18 3: FS20 set ug_sound_ok on
Es werden also die Zweige else-if-else-else-if durchlaufen, das notify insgesamt 5 x

jetzt hab ich sagar "Dauerschleife". Das notify soll ja nur greifen, wenn sich der Zustand ändert, ich hab grad den Verdacht, dass der Zustand regelmäßig gesendet wird und dann jedesmal das notify ausgelöst wird. Meine FHEM-Welt ist grad etwas durcheinander ...

FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...