Hauptmenü

regex mit 2 ziffern

Begonnen von Kurt77, 02 Februar 2022, 09:30:13

Vorheriges Thema - Nächstes Thema

Kurt77

Hallo,
code:
------------------------------------------------------
Internals:
   DEF        d_callmonitor:external_number:.\d\d set Sonos_Buero speak 40 de hallo
code:
------------------------------------------------------
   FUUID      61f970a5-f33f-6c85-eace-8a7b4cc5e83a40ff
   NAME       n_test
   NOTIFYDEV  d_callmonitor
   NR         102
   NTFY_ORDER 50-n_test
   REGEXP     d_callmonitor:external_number:.\d\d
   STATE      2022-02-02 09:07:56
   TRIGGERTIME 1643789276.21113
   TYPE       notify
   READINGS:
     2022-02-02 09:05:07   state           active
     2022-02-02 09:07:56   triggeredByDev  d_callmonitor
     2022-02-02 09:07:56   triggeredByEvent external_number: 05
------------------------------------------------------

Das Suchmuster besteht bei diesem notify aus 2 Ziffern. Funktioniert auch, aber Sonos reagiert 2-mal. D.h., dasss ich 2-mal "hallo" höre.

Woran liegt das?

Danke und Gruß,
Kurt


betateilchen

Zitat von: Kurt77 am 02 Februar 2022, 09:30:13
Woran liegt das?

An dem notify vermutlich nicht. Ich habe das gerade mal nachgebaut und getestet - das notify löst hier nur einmal aus.
Kann es sein, dass Du noch ein zweites notify (oder DOIF oder ähnliches) hast, was auf die gleiche regexp reagiert?

Ersetze doch mal den Ausführungsteil des notify durch {Debug "test"} dann siehst Du im Logfile, ob das tatsächlich zweimal abgearbeitet wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

"event-on-change-reading" entsprechend setzen bei "d_callmonitor" !?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Beta-User

Zitat von: DeeSPe am 02 Februar 2022, 09:39:00
"event-on-change-reading" entsprechend setzen bei "d_callmonitor" !?
...und was, wenn dann 2x nacheinander derselbe Anrufer durchklingelt?

Wenn (!) durch einen einzigen Anruf doppelt getriggert wird, evtl. eine kurze "Totzeit" dazwischenschalten mit dem Attribut "disabledAfterTrigger"?
Server: HP-T620@Debian 11, 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

Kurt77


Zitat von: Beta-User link=topic=125937.msg1205296#msg120529
6 date=1643799172

Wenn (!) urch einen einzigen Anruf doppelt getriggert wird, evtl. eine kurze "Totzeit" dazwischenschalten mit dem Attribut "disabledAfterTrigger"?
Hallo Beta-User,
danke, das war's! Da hätte ich ja auch drauf kommen können.
interessant ist übrigens, dass 2 nichts bewirkt hat. Attribut steht jetzt auf 5.
Gruß Kurt

betateilchen

Zitat von: Beta-User am 02 Februar 2022, 11:52:52
Wenn (!) durch einen einzigen Anruf doppelt getriggert wird

Noch immer glaube ich nicht daran, dass das wirklich passiert.

Aber um das einschätzen zu können, bräuchte man zumindest mal einen Auszug aus dem eventMonitor, in dem man sehen kann, was bei einem eingehenden Anruf wirklich passiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sany

#6
auch wenn es jetzt zu gehen scheint finde ich die Lösung eher als Workaround.
Ich würde als allererstes den Eventmonitor mit Filter auf das triggernde Device (hier: d_callmonitor) ansetzen. Wenn da kurz nacheinander events mit dem passenden Reading kommen, dann wird auch das notify 2 mal reagieren. Betateilchen hat ja schon festgestellt, das es grundsätzlich funktioniert.
Mit "disabledAfterTrigger" unterdrückst du ja die Ausführung des notify, der (eigentlich) auslösende event kommt aber trotzdem. Vielleicht wolltest Du aber genau den sehen.

Aber wie immer: viele Wege führen nach Rom, wenn das Ergebnis für dich stimmt soll es so sein.

Gruß


Sany


fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

jhohmann

Wobei ich mich schon frage: Willst du nur auf zweistellige Rufnummern abfragen? Oder greift das notify nicht auch bei längeren Nummern?
Und vermutlich triggert der notify sowohl bei ankommenden als auch ausgehenden Anrufen. Ist das gewollt?
Ich habe z.B. bei mir zwei unterschiedlichen Notifys für rein
FritzBox_CallMonitor:event:.call
und raus.
FritzBox_CallMonitor:event:.ring
Raspberry Pi 4 - buster / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

Kurt77

Zitat von: jhohmann am 02 Februar 2022, 16:57:23
Wobei ich mich schon frage: Willst du nur auf zweistellige Rufnummern abfragen? Oder greift das notify nicht auch bei längeren Nummern?
Und vermutlich triggert der notify sowohl bei ankommenden als auch ausgehenden
Hallo jhohmann,
ich will bei Eingabe (also ausgehender Anruf) von genau 2 Ziffern triggeern und das funktioniert auch. bei eingehenden Anrufen löst das notify nicht aus, weil länger als 2 Ziffern.

Gruß Kurt