fhem.pl anpassen für stateFormat

Begonnen von zap, 16 Dezember 2015, 15:06:13

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Rudi,

Das finde ich eine gute Lösung. Das betrifft aber nur die Namen der Readings? Richtig? Nicht deren Inhalt?
Ist das jetzt fest, dann würde ich versuchen das im Wiki im Developerbereich irgendwo fest zu halten.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Ich kenne jemanden, dem es dieses Wochenende (und vermutlich über Weihnachten) mit Sicherheit nicht langweilig werden wird...



2015.12.19 19:05:35 3: WARNING: unsupported character in reading .RegL_00: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:35 3: WARNING: unsupported character in reading .RegL_07: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:35 3: WARNING: unsupported character in reading .RegL_01: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:35 3: WARNING: unsupported character in reading .RegL_07: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:36 3: WARNING: unsupported character in reading .RegL_01: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:36 3: WARNING: unsupported character in reading .RegL_01: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:36 3: WARNING: unsupported character in reading .RegL_01: (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.
2015.12.19 19:05:36 3: WARNING: unsupported character in reading .RegL_03:self01 (not A-Za-z\d_\.-), notify the CUL_HM module maintainer.


Das ist nur ein Auszug aus meinem Startup-Log, da kommen diese Meldungen seitenweise...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

zap

Da habe ich mit meiner naiven Anforderung was ausgelöst  ::)

Wenn wir gerade dabei sind: Devicenames dürfen Doppelpunkte enthalten. Wie reagieren Module wie DOIF oder auch das Attriubt userReadings darauf? Da werden die Doppelpunkte ja für Trennung zwischen Device und Reading verwendet.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

betateilchen

@Rudi

Möchtest Du deine Änderung nicht besser erst nach den Feiertagen und dem Jahreswechsel in Umlauf bringen? Du würdest damit vermutlich dem einen oder anderen Entwickler unnötigen Streß in den nächsten Tagen durch hier im Forum auftauchende "Ich hab da eine Fehlermeldung im Log"-Threads von ahnungslosen Anwendern ersparen.

Grundsätzlich finde ich Deine angedachte Änderung SUPER!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ok, auskommentiert. Kanns sich jemand bitte hier nach dem 1.1 melden?

rudolfkoenig

ZitatDevicenames dürfen Doppelpunkte enthalten.

Muesste logischerweise dann auch bemaengelt werden. Andere Meinungen?

betateilchen

#21
Zitat von: rudolfkoenig am 19 Dezember 2015, 21:06:17
Ok, auskommentiert. Kanns sich jemand bitte hier nach dem 1.1 melden?

Ja, ich werde dich dran erinnern :)

Zum Thema Devicenamen mit Doppelpunkten: Wenn ich ich recht erinnere, gab es schonmal eine angeregte Diskussion hier im Forum zu dieser Thematik. Da ging es entweder um devicenamen oder deren Länge - ich muss mich mal auf die Suche machen. Grundsätzlich finde ich Sonderzeichen auch in devicenames und in attributen grenzwertig.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

Zitat von: rudolfkoenig am 19 Dezember 2015, 21:07:36
Muesste logischerweise dann auch bemaengelt werden. Andere Meinungen?
Im Gegenteil -> Zustimmung!

vg
joerg

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Markus Bloch

Auch hier Zustimmung. Für Devicenamen und Attribute sollte die gleiche regexp zur Prüfung auf ungültige Chars gelten wie in diesem Thread für readings vereinbart wurde.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

viegener

Zitat von: Markus Bloch am 20 Dezember 2015, 10:58:57
Auch hier Zustimmung. Für Devicenamen und Attribute sollte die gleiche regexp zur Prüfung auf ungültige Chars gelten wie in diesem Thread für readings vereinbart wurde.

Gruß
Markus

Ebenfalls Zustimmung, die "identifier" sollten soweit möglich einheitlichen Regeln gehorchen.
Ich finde insgesamt die Initiativen gut einiges an "Wildwuchs" wieder einzufangen gut, auch wenn der eine oder ander Benutzer auf die Nase fällt. Auf längere Sicht hilft es allen, wenn einheitliche Abgrenzungen, Trennzeichen und "special character" verwendet werden können.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

zap

Zitat von: viegener am 20 Dezember 2015, 21:56:03
Ebenfalls Zustimmung, die "identifier" sollten soweit möglich einheitlichen Regeln gehorchen.
Ich finde insgesamt die Initiativen gut einiges an "Wildwuchs" wieder einzufangen gut, auch wenn der eine oder ander Benutzer auf die Nase fällt. Auf längere Sicht hilft es allen, wenn einheitliche Abgrenzungen, Trennzeichen und "special character" verwendet werden können.

Bei den Devicenames gibt es ja bereits ein zulässiges Set an Zeichen. FHEM zeigt die zulässigen Zeichen an, wenn man bei define ein unzulässiges eingibt. Der Doppelpunkt wird als zulässiges Zeichen angezeigt. Leider hat aber der ein oder andere Modulautor den Doppelpunkt als Trenner zwischen Device und Reading verwendet. Daraus könnte sich so was ergeben:

DevicenameTeil1:DevicenameTeil2:Reading

Das könnte z.B. bei DOIF oder auch userattr zu Problemen führen.

Damit will ich sagen, dass es zwar einfach ist, für Device- oder Readingnames einen Standard festzulegen, aber schwierig, die Modulautoren dazu zu bringen, diese Regeln zu beachten.

2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

betateilchen

Zitat von: zap am 21 Dezember 2015, 12:53:47
Damit will ich sagen, dass es zwar einfach ist, für Device- oder Readingnames einen Standard festzulegen, aber schwierig, die Modulautoren dazu zu bringen, diese Regeln zu beachten.

Nö, das ist ganz einfach. Wenn man die Zeichen nicht mehr zulässt, werden die devices nicht mehr angelegt. Aufgrund der dann hier im Forum zu erwartenden Tread-Flut werden die betroffenen Modulautoren nicht umhinkommen, das anzupassen.

Allerdings würde ich dafür plädieren, solche grundlegenden Änderungen generell mit einer vierwöchigen Vorlaufzeit anzukündigen, um genau diesem Thread-Storm zu entgehen.

In den AGB von technischen Geräten finden sich solche Änderungen immer hinter dem Satz "Änderungen, die dem technischen Fortschritt dienen, bleiben ausdrücklich vorbehalten und können ohne Ankündigung erfolgen.". Auch bei fhem sehe ich durchaus einen Fortschritt, wenn wir durch eine solche Änderungen einen technischen Fortschritt im Sinne einer einfachen, logischen und nachvollziehbaren Standardisierung erreichen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

viegener

Zitat von: zap am 21 Dezember 2015, 12:53:47
Bei den Devicenames gibt es ja bereits ein zulässiges Set an Zeichen. FHEM zeigt die zulässigen Zeichen an, wenn man bei define ein unzulässiges eingibt. Der Doppelpunkt wird als zulässiges Zeichen angezeigt. Leider hat aber der ein oder andere Modulautor den Doppelpunkt als Trenner zwischen Device und Reading verwendet. Daraus könnte sich so was ergeben:

Damit will ich sagen, dass es zwar einfach ist, für Device- oder Readingnames einen Standard festzulegen, aber schwierig, die Modulautoren dazu zu bringen, diese Regeln zu beachten.

Mein Hinweis sollte eigentlich sagen: Alle "identifier" sollten soweit möglich einheitlichen Regeln gehorchen. Damit meinte ich Readings, Attribute, Devicenamen, Optionen für set/get usw. Dann ist es auch einfacher eindeutige Trennzeichen zu erzeugen. Für mich hat der Doppelpunkt in einem "Identifier" nichts zu suchen und der Doppelpunkt wird ja auch für die notify-Syntax verwendet.

Ja bei sovielen Modulautoren wird das mit den Regeln immer etwas schwierig, deshalb sind solche (auch nachträglichen) Vereinheitlichungen ja gut. Und wie man an der 5.7 sieht es beruhigt sich schon wieder...

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

immi

Zitat von: rudolfkoenig am 19 Dezember 2015, 21:07:36
>>Devicenames dürfen Doppelpunkte enthalten.
Muesste logischerweise dann auch bemaengelt werden. Andere Meinungen?
just to avoid misunderstandings
$hash->{NAME}
should avoid strange characters
$hash->{DeviceName}
should be allowed to use special char e.g.  /dev/ttyACM0@57600 or 10.0.2.2:5444