FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kud am 26 März 2013, 11:55:39

Titel: Mehrere Dummys gleichzeitig verändern
Beitrag von: kud am 26 März 2013, 11:55:39
Hallöchen,

Habe mehrere Dummys definiert.
Die Namen beginnen alle mit boost_temp_
Ein einzelner Befehl wie:
set boost_temp_az on
funktioniert.
Wenn ich jedoch
set boost_temp_* on
eingebe, funktioniert nichts.

Hat da Jemand einen Tip?

Titel: Aw: Mehrere Dummys gleichzeitig verändern
Beitrag von: Reinerlein am 26 März 2013, 12:00:06
Hi Kud,

das ist ein regulärer Ausdruck, bedeutet, dass du gerade alle Namen, die mit "boost_temp" anfangen und beliebig vielen (auch keinem) "_" enden, triffst.

Du möchtest aber vermutlich diesen Ausdruck:set boost_temp_.* onmachen.

Damit wird alles, was mit "boost_temp_" anfängt und mit beliebigen Zeichen endet, getroffen.

Grüße Reinerlein
Titel: Aw: Mehrere Dummys gleichzeitig verändern
Beitrag von: Stefan 69 am 26 März 2013, 12:17:50
Hallo,

dazu habe ich auch gleich mal eine Frage. Brauch ich ja kein neues Thema auf machen :-)

Ich möchte meine Rolläden auch mittels diesem "Befehl" schalten, was auch funktioniert.

Kann man irgendwie trotz dem einen einzelnen dort raus lassen?

Also: Bei mir fangen alle mit Ro_... an. Nun habe ich aber einen, der nicht mit den anderen Fahren soll.
Bräuchte diesen ja "vorne" nur umbenennen, aber da muss ich ja alles umschreiben.

Wie kann ich also einen einzelnen ausklammern?

Hoffe ich hab mich nich all zu blöd ausgedrückt :-)

Gruß Stefan
Titel: Aw: Mehrere Dummys gleichzeitig verändern
Beitrag von: Reinerlein am 26 März 2013, 15:37:58
Hi Stefan,

natürlich kann man den regulären Ausdruck auch in Richtung negation erweitern. Es wird dann allerdings irgendwann unleserlich bis häßlich und hat eher akademischen Charakter:set Ro_([^n][^o]).* on
Damit sollten alle, die mi "Ro_" anfangen, aber nur die, die nicht mit "no" weitergehen, getroffen werden.

Besser (da lesbar) ist es, die einzelnen erlaubten Möglichkeiten eines Anfangs als Alternative zu setzen:set (Ro_1|Ro_2).* onmatcht alles, was mit "Ro_1" und "Ro_2" anfängt, und beliebig weitergeht.

Grüße Reinerlein
Titel: Aw: Mehrere Dummys gleichzeitig verändern
Beitrag von: Stefan 69 am 26 März 2013, 16:14:52
Hallo Reinerlein,

danke für die Info!

Werde ich mir mal durch den Kopf gehen lassen, evtl. nehme ich für den entsprechenden Rolladen doch einen anderen Namen
(scheint mir persönlich einfacher).

Meine ganze .cfg ist eh ziemlich lang und für eure Verhältnisse sicher auch sehr unübersichtlich, da ich vieles doppelt habe.
Also für einzelne devices immer die gleiche Befehlsabfolge Trau mich aber nicht irgend etwas auszulagern, da ich damit keinerlei Durchblick habe und so lange der Laden läuft ist es sicher gut so :-)

Ist es denn eigentlich für die Performance von fhem wichtig, die .cfg kurz zu halten, oder "wurschtelt" sich fhem da schon durch?

Danke, Gruß Stefan
Titel: Aw: Mehrere Dummys gleichzeitig verändern
Beitrag von: Reinerlein am 26 März 2013, 19:08:50
Hi Stefan,

ob das in einer oder vielen Dateien steht ist Fhem zunächst mal ziemlich egal, da ja trotzdem jede Zeile verarbeitet werden muss (das Öffnen einer neuen Datei dauert zwar auch etwas, wollen wir hier aber mal vernachlässigen).

Ich persönlich habe trotzdem alles in einigermaßen sinnvolle Dateien zerlegt (manchmal Räume, manchmal Systeme o.ä.). Dadurch sind die Dateien stets ziemlich kurz, und, da ich sie über die Weboberfläche bearbeite, auch schnell editiert.
Wenn man mal nicht weiss, in welcher Datei ein Device abgelegt wurde, steht es im Device selbst noch drin...

Immer gleiche Befehlsabfolgen kann man in eine eigene 99_myUtils.pm auslagern (wenn es Perl-Code ist), oder, wie ich auch, in eine Config-Datei "trigger.cfg", und die Befehls-Folgen dann nur noch aufrufen. Dabei helfen auch die möglichen Parameter beim Notify (einfach mal in der Commandref nachlesen).

Grüße Reinerlein