Gerätename: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== Erläuterung == Jedes Gerät wird bei der Erstellung mit ''define'' mit einem Namen versehen, über den es im weiteren in Kommandos, Skripten, Aktionen…“) |
Krikan (Diskussion | Beiträge) K (Kategorisiert) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Erläuterung == | == Erläuterung == | ||
Jedes [[Gerät]] wird bei der Erstellung mit ''define'' mit einem Namen versehen, über den es im weiteren in Kommandos, Skripten, Aktionen identifiziert wird. Dies kann dann über den gesamten Namen oder auch in manchen Fällen über Namensmuster geschehen. Im letzteren Fall wird dann eine Aktion für alle Geräte ausgeführt, deren Gerätename auf das Muster passt. Genaueres wird in der [https://fhem.de/commandref_DE.html#devspec Referenz] erläutert. | Jedes [[Gerät]] wird bei der Erstellung mit ''define'' mit einem Namen versehen, über den es im weiteren in Kommandos, Skripten, Aktionen identifiziert wird. Dies kann dann über den gesamten Namen oder auch in manchen Fällen über Namensmuster geschehen. Im letzteren Fall wird dann eine Aktion für alle Geräte ausgeführt, deren Gerätename auf das Muster passt. Genaueres dazu wird in der [https://fhem.de/commandref_DE.html#devspec Referenz] erläutert. | ||
== Umbenennen == | == Umbenennen == | ||
Zeile 8: | Zeile 8: | ||
== Vergaberegeln == | == Vergaberegeln == | ||
Es empfiehlt sich daher, möglichst frühzeitig im Projekt Regeln für die Vergabe von Gerätenamen zu finden. Beispiele dafür finden sich [https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html hier] oder in der [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerfibel (S. 18)]. | Es empfiehlt sich daher, möglichst frühzeitig im Projekt Regeln für die Vergabe von Gerätenamen zu finden. Beispiele dafür finden sich [https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html hier] oder in der [http://fhem.de/Heimautomatisierung-mit-fhem.pdf Einsteigerfibel (S. 18)]. So können Namen von Anfang an korrekt vergeben und stabil über die Projektzeit verwendet werden. | ||
== Restriktionen == | == Restriktionen == | ||
Gerätenamen unterliegen folgenden Restriktionen und Empfehlungen: | Gerätenamen unterliegen folgenden Restriktionen und Empfehlungen: | ||
# Die '''Länge''' ist grundsätzlich durch die Praktikabilität (Lesbarkeit, Tippaufwand und Fehlervermeidung in Skripten) begrenzt. Technische Längenbeschränkungen sind bei der Erstellung nicht vorhanden. Es '''empfiehlt''' sich aber dringend, '''maximal 32 Zeichen''' zu verwenden, da einige Module (z. B. [[DbLog]], [[configdb]]) Gerätenamen bis zu einer Länge von 32 Zeichen korrekt unterstützen. | # Die '''Länge''' ist grundsätzlich durch die Praktikabilität (Lesbarkeit, Tippaufwand und Fehlervermeidung in Skripten) begrenzt. Technische Längenbeschränkungen sind bei der Erstellung nicht vorhanden. Es '''empfiehlt''' sich aber dringend, '''maximal 32 Zeichen''' zu verwenden, da einige Module (z. B. [[DbLog]], [[configdb]]) Gerätenamen bis zu einer Länge von 32 Zeichen korrekt unterstützen. | ||
# '''Zulässige Zeichen''' sind '''die englischen Groß- und Kleinbuchstaben ("a".."z", "A".."Z"), die Ziffern ("0".."9"), der Unterstrich "_"''' und (im Moment der Definition) auch der Doppelpunkt ":". Letzter kann z. B. beim Einsatz von ''Notify'' als Trennzeichen missinterpretiert werden. Daher die Empfehlung: keinen Doppelpunkt verwenden. | # '''Zulässige Zeichen''' sind '''die englischen Groß- und Kleinbuchstaben ("a".."z", "A".."Z"), die Ziffern ("0".."9"), der Unterstrich "_"''' und (im Moment der Definition) auch der Doppelpunkt ":". Letzter kann z. B. beim Einsatz von ''Notify'' als Trennzeichen missinterpretiert werden. Daher die '''Empfehlung: keinen Doppelpunkt verwenden'''. | ||
Ab Revision 13938 ist der Doppelpunkt im Gerätenamen nicht mehr erlaubt, siehe {{Link2Forum|Topic=70280|LinkText=forbid : in device name}}. | |||
[[Kategorie:Glossary]] |
Aktuelle Version vom 31. Oktober 2017, 16:41 Uhr
Erläuterung
Jedes Gerät wird bei der Erstellung mit define mit einem Namen versehen, über den es im weiteren in Kommandos, Skripten, Aktionen identifiziert wird. Dies kann dann über den gesamten Namen oder auch in manchen Fällen über Namensmuster geschehen. Im letzteren Fall wird dann eine Aktion für alle Geräte ausgeführt, deren Gerätename auf das Muster passt. Genaueres dazu wird in der Referenz erläutert.
Umbenennen
Geräte können später umbenannt werden (Rename), wobei FHEM versucht, möglichst intelligent, abhängige Objekte zu finden und mit umzubenennen. Auch versuchen manche Module intelligente Hilfe bei Umbenennungen, z. B. CUL_HM mit SET deviceRename <newName>, bei dem versucht wird, die HM-Channels eines Gerätes gleich mit zu erfassen.
Allerdings können dabei (eigene) Skripte mit "hart kodierten" Namen oder auch Aktionen, die auf Gerätemuster (s.o.) basieren, übersehen werden und daher nicht mehr korrekt funktionieren. Vorsicht ist also angebracht.
Vergaberegeln
Es empfiehlt sich daher, möglichst frühzeitig im Projekt Regeln für die Vergabe von Gerätenamen zu finden. Beispiele dafür finden sich hier oder in der Einsteigerfibel (S. 18). So können Namen von Anfang an korrekt vergeben und stabil über die Projektzeit verwendet werden.
Restriktionen
Gerätenamen unterliegen folgenden Restriktionen und Empfehlungen:
- Die Länge ist grundsätzlich durch die Praktikabilität (Lesbarkeit, Tippaufwand und Fehlervermeidung in Skripten) begrenzt. Technische Längenbeschränkungen sind bei der Erstellung nicht vorhanden. Es empfiehlt sich aber dringend, maximal 32 Zeichen zu verwenden, da einige Module (z. B. DbLog, configdb) Gerätenamen bis zu einer Länge von 32 Zeichen korrekt unterstützen.
- Zulässige Zeichen sind die englischen Groß- und Kleinbuchstaben ("a".."z", "A".."Z"), die Ziffern ("0".."9"), der Unterstrich "_" und (im Moment der Definition) auch der Doppelpunkt ":". Letzter kann z. B. beim Einsatz von Notify als Trennzeichen missinterpretiert werden. Daher die Empfehlung: keinen Doppelpunkt verwenden.
Ab Revision 13938 ist der Doppelpunkt im Gerätenamen nicht mehr erlaubt, siehe forbid : in device name.