Gerätename: Unterschied zwischen den Versionen
K (→Vergaberegeln: .) |
Krikan (Diskussion | Beiträge) K (Kategorisiert) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 13: | Zeile 13: | ||
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.