FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Det20 am 22 September 2017, 10:20:32

Titel: Alle Lichter auf einmal schalten
Beitrag von: Det20 am 22 September 2017, 10:20:32
Hallo,

ich möchte alle Lichter auf einen Schlag ein- oder ausschalten, die Lichtschalter heißen "Licht.EG.Flur", "Licht.OG.Bad" usw., sind also durch einen . voneinander getrennt.

set Licht.* off

Als Ergebnis bekomme ich nun "Can't locate object method "set" via package "Licht" (perhaps you forgot to load "Licht"?) at (eval 4290) line 1. ". Ich habe es schon mit " versucht, selbes Ergebnis. Habe ich etwas übersehen?
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: KölnSolar am 22 September 2017, 10:27:36
so wird das vermutlich nix....
Schau Dir mal structure an.
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: Beta-User am 22 September 2017, 10:29:30
...und die Verwendung des "." in Gerätenamen ist auch eher suboptimal (schau dir mal die Bedeutung des "." in regex an ;) ).

Was liefert denn ein
list Licht.*
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: Det20 am 22 September 2017, 10:35:19
Zitat
...und die Verwendung des "." in Gerätenamen ist auch eher suboptimal

Dachte ich auch schon, blöderweise verwende ich den . überall (gewohnt aus anderen Entwicklungssprachen). Gibt es da einen Workaround? Ein \ davor oder so?



list Licht.*

Licht.DG.Flur
Licht.DG.Schraege
Licht.EG.Flur
Licht.EG.HWR
Licht.EG.WC
...
Licht.EG.Nina
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: Otto123 am 22 September 2017, 10:37:22
Hi Det20,

Ich habe fast die gleichen Namensgebung wie Du, bloß ohne die sinnlosen Punkte.
Da funktioniert das was Du willst einwandfrei. Einfach so  ;D

Wenn Du das nicht mehr ändern willst kannst Du einen Filter im devspec nehmen. Du setzt z.B. attr <> comment auf Licht und kannst dann set comment=Licht off  verwenden.

Siehe -> https://fhem.de/commandref_DE.html#devspec

Bei Dir muss das eigentlich auch funktionieren, es wird wohl ein Gerät dabei sein was kein Schalter ist. Schau das list nochmal komplett an.

Gruß Otto
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: Det20 am 22 September 2017, 10:45:06
Da habe ich doch einen Punkt vergessen, so funktioniert es:

set Licht.EG.* off
set Licht.OG.* off

Danke für die schnellen Antworten
Titel: Antw:Alle Lichter auf einmal schalten
Beitrag von: Otto123 am 22 September 2017, 10:46:07
es braucht keinen Workaround, Du kannst mit regEx den Punkt nicht einfach so eindeutig ermitteln, dass ist alles. Der Punkt match jedes Zeichen auch den Punkt.
Du kannst nur nicht auf diese Wiese Licht.bla von Licht_bla unterscheiden.

Der Fehler liegt in einem Deiner Geräte.

Gruß Otto