FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Bastel-Frank am 16 September 2018, 13:00:36

Titel: notify auf <device> level: set_xx
Beitrag von: Bastel-Frank am 16 September 2018, 13:00:36
Hallo zusammen,

(ich verzweifle gerade, habe alles probiert=

wie kann ich ein notify definieren, welchen ein Event wie "<device> level: set_xx" abfängt? (HM-Rollladen-Aktor)

Viele Grüße
Frank
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: CoolTux am 16 September 2018, 13:15:15
Eventmonitor öffnen, Event raussuchen und den gesamten Event markieren, danach create notify oder so.
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Bastel-Frank am 16 September 2018, 13:28:07
habe ich versucht. In diesem Event-Editor kommt dann

define KG.az.RO_notify_1 notify KG.az.RO:level:.set_20 {}

dieses möchte ich für alle Devices anwenden und habe daraus

define abc_notify notify .*:level:.set_*

gemacht und das funktioniert leider nicht.

Was mache ich falsch?
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: CoolTux am 16 September 2018, 13:40:30
Vor dem letzten Stern ein Punkt setzen.
Aber ich würde das so nicht machen, damit reagiert dein notify auf alle Devices. ALLE
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Bastel-Frank am 16 September 2018, 13:45:10
Super, das hat funktioniert. Vielen Dank dafür.  ;D

Zitat von: CoolTux am 16 September 2018, 13:40:30
Aber ich würde das so nicht machen, damit reagiert dein notify auf alle Devices. ALLE

Ja, das ist ein Problem... Gibt es eine Lösung, dass dieses Event nur auf beistimmt Device-Typen (subTypes) regiert, z.B. auf alle Rollladen-Aktoren?
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: CoolTux am 16 September 2018, 13:47:57
Nein. Du kannst nur Devicenamen angeben. Aber Regex ist mächtig und wenn du deine Rolläden entsprechend benannt hast ist es einfach.
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Bastel-Frank am 16 September 2018, 13:56:54
ok, dann werde ich ein paar Namen ändern müssen, aber kein Problem.

Eine Frage noch:
Warum fehlte eigentlich der Punkt? Welche Bedeutung hat dies in meinem Fall?
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: CoolTux am 16 September 2018, 14:07:02
Der Punkt steht immer für genau ein Zeichen, ohne diesen Punkt hat in Deinem Fall der Stern keine Bedeutung. Ist nicht die bash unter Linux.
Genaueres erfährst Du wenn Du Dich zum Thema RegEx einarbeiten.
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Otto123 am 16 September 2018, 14:19:37
Zitat von: CoolTux am 16 September 2018, 13:47:57
Nein. Du kannst nur Devicenamen angeben. Aber Regex ist mächtig und wenn du deine Rolläden entsprechend benannt hast ist es einfach.
Beispiel bei mir  ;D Rollo.*
Titel: Antw:notify auf &lt;device&gt; level: set_xx
Beitrag von: nastymorbol am 16 September 2018, 15:04:13
Der Punkt steht für ein beliebiges Zeichen. Das * bedeutet keine oder beliebige Anzahl von Wiederholungen Matchen. _* würde also auf alles Matchen was auf einen _ oder mehrere __ endet. _.* Matcht entsprechend auf alles was einen _ und dann beliebige Zeichen enthält.


Gesendet von iPhone mit Tapatalk
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Bastel-Frank am 16 September 2018, 19:51:08
Vielen Dank für die Hinweise. RegEx ist echt nicht einfacht.

Ich habe "immer" gedacht der "*" wäre ein beliebiger Platzhalter wie z.B. bei SQL.
Titel: Antw:notify auf <device> level: set_xx
Beitrag von: Beta-User am 16 September 2018, 20:18:32
Du mußt übrigens nicht zwingend die Namen ändern, es geht auch sowas:

defmod Umwaelzpumpe_Schalter notify Licht_Bad_Spiegel:on|(Schalter_EZ1_Btn_06|Schalter_SZ1_Btn_06):short ...

Das sollte gleichbedeutend sein mit
defmod Umwaelzpumpe_Schalter notify Licht_Bad_Spiegel:on|Schalter_[ES]Z1_Btn_06:short ...

Sowas kann man mit http://regex101.com/ auch gut testen.