FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: b0bic am 29 Januar 2019, 14:04:07

Titel: Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: b0bic am 29 Januar 2019, 14:04:07
Hallo zusammen,

nach meinem Umzug habe ich größtenteils auf Homematic Komponenten gesetzt.
In jedem Zimmer ist nun mindestens eine HM-PB-6-WM55.

Ebenfalls habe ich jedem Zimmer
1x Squeezee Player
1x Hue Structure
1x Rolladen Structure.
1x HM Aktor für Licht.

Nun habe ich angefangen für einen Raum die Notifys für meine 6 fach Taster zu schreiben. Dies gelingt mir auch wie geplant. (Grundfunktion von Notifys ist verstanden  :o )

Wenn ich nun hochrechne, müsste ich 12 Notifys für jeden Raum schreiben. Ich habe 6 HM Taster, heißt ich müsste in Summe 72 Notifies schreiben, was ich sehr unübersichtlich und chaotisch finde.

Meine Idee/ Wunsch wäre ein Notify das wie folgt aussieht.

"wenn 6Fachtaster_{RAUMX} short dann set aktor_{RAUMX} on"

Das würde voraussetzen, dass jeder Device, z.b. ein Homematic Aktor für Licht: HM_Light_RAUMX heißt. Ich würde aber statt 72 Notifies nur noch 12 haben.

Bevor ich mir die Mühe mache und mir eine generische Namengebung ausdenke, würde ich gerne eure Erfahrung/ Tipps hierfür erfragen.
Gibt es hier Member, die eine ähnliche Umsetzung haben und mir Schlagwörter nennen können, mit denen ich mich bei der Planung auseinander setzen sollte?

Vielen Dank allen zusammen.

Grüße b0bic
Titel: Antw:Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: Paul am 29 Januar 2019, 14:13:56
ich habe mehrere Schalter die das gleiche schalten. da habe ich das notify so gelöst:
Internals:
   DEF        .*_Schalter_Btn_01:Short.* set Schuppenlicht on; attr Frostaus disable 1
   FUUID      5c42d7cb-f33f-7531-435f-050e13b5199b75d6
   NAME       Schuppen_on
   NR         243
   NTFY_ORDER 50-Schuppen_on
   REGEXP     .*_Schalter_Btn_01:Short.*
   STATE      active
   TYPE       notify
   READINGS:
     2019-01-28 13:36:53   state           active
Attributes:


Die Schalter heißen Wohnzimmer_Schalter, Keller_Schalter
Titel: Antw:Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: Otto123 am 29 Januar 2019, 14:38:00
Hi,

zunächst würde ich die wichtigen Hm Aktoren mit den entsprechenden Tasten peeren. Dann geht Licht auch falls FHEM tot.  :D

Wenn Du das so sehr generalisieren möchtest, dann helfen:


Gruß Otto
Titel: Antw:Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: Beta-User am 29 Januar 2019, 14:51:21
Es gibt immer eine Ladung Möglichkeiten, sowas umzusetzen...

Auf die Schnelle noch neben der Namenskonvention/regex (kann man z.B. auch wie hier (https://forum.fhem.de/index.php/topic,89136.msg895247.html#msg895247) auswerten) zwei weitere Varianten:
- anders aus dem $NAME ableiten (z.B. AttrVal+room) nutzen oder
- das Zieldevice mit einem Filter ableiten:
Bei mir gibt's sowas z.B. bei der Anwesenheitserkennung; Beispielcode:
define rr_xn_MAC_Check notify Fritzbox:mac_.*:.* {if ($EVTPART1 eq "inactive") {\
    fhem("set TYPE=dummy:FILTER=smartphone_MAC=$EVTPART0 smartphone absent");;\
  }\
  else {\
    fhem("set TYPE=dummy:FILTER=smartphone_MAC=$EVTPART0 smartphone present");;\
  }\
}

Dabei wird an den diversen "Anwesenheitsdummys", die mehrere Readings in einer ReadingsList definiert haben, eben das Reading "smartphone" auf an- bzw. abwesend gesetzt, aber eben nur, wenn der Readinginhalt mit dem Event (-teil) paßt. Es laufen also alle alle entsprechenden Infos aus der Fritzbox über dasselbe notify, das dann weiterverteilt und ggf. "in Kette" weitere notify auslöst.
Titel: Antw:Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: rabehd am 29 Januar 2019, 14:54:10
Zitatwenn 6Fachtaster_{RAUMX} short dann set aktor_{RAUMX} on

6Fachtaster_{RAUMX} wäre die Variable $NAME.
Daraus läßt sich sicher {RAUMX} herauslösen und in den Befehlsstring einsetzen. Das Prinzip habe ich bei einigen notify.
Titel: Antw:Generische Notifys für HM-PB-6-WM55 durch generische Device Namen
Beitrag von: Wuppi68 am 29 Januar 2019, 15:35:14
define noti_wildcard notify hm_pb_[1-6]:.*(long|short) {
  # some perl funcions
  # $EVENT and $NAME is your playpartner
}


sollte eigentlich funktionieren, wenn die Schalter hm_pb_1 bis 6 genannt wurden