cmd deletegroup

Begonnen von M.Schulze, 21 Juli 2022, 10:13:07

Vorheriges Thema - Nächstes Thema

M.Schulze

Hallo,

ein Befehl um alle Geräte in einer Gruppe schnell zu löschen wäre cool.


Die Gruppe wird sich dann ja auch löschen.

Also spezifizeren der zu löschenden Geräte über <group> anstatt <devspec> ?

z.B.
delete group <groupname>
deletegroup <groupname>


Weiterhin sollte diese Funktion auch in FHEM WEB angeboten werden

z.B.

  FW_pH "cmd=delete $d", "Delete Device", undef, "detLink delDev"
         if($d ne "global");
  FW_pH "cmd=deletegroup " . AttrVal($d, "group", undef), "Delete Group", undef, "detLink delDev"
         if($d ne "global" && AttrVal($d, "group", undef));


Sollte es diese Funktion schon geben ist sie vielleicht etwas versteckt.

MfG
Muss ich hier das Licht aus machen?

marvin78

Du könntest dir einen cmdalias dafür bauen. Da es über devspec schon leicht funktionert und kaum mehr Schreibarbeit ist, muss man hier sicher nicht einen eigenen Befehl einbauen.

M.Schulze

#2
Also da ich diese Funktion oft nutzen werde brauche ich da eine vernünftige Lösung. Ohne .cfg anzupassen, ohne "cmdalias", mit hilfe.

Aber als Provisorium danke für den Tip! Funktioniert auf den ersten Blick wie gewünscht. Auch im FHEM-WEB.

MfG



define c_deletegroup cmdalias deletegroup .* AS { for my $name (devspec2array("group=$EVENT")){ map { /^$EVENT$/ ? fhem("delete $name") : do{s/,$EVENT|$EVENT,//;; fhem("attr $name group $_")} } AttrVal($name,'group','') } }
Muss ich hier das Licht aus machen?

marvin78

Ich halte das für eine sehr vernünftige Lösung :)

marvin78

Ach: Ohne cmdalias und mit Hilfe:

delete group=GROUP

M.Schulze

Super, danke, hat sich dann erledigt.
Muss ich hier das Licht aus machen?