Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

instance = (word with capital letters) is a problem #122

Closed
psilo909 opened this issue Sep 6, 2016 · 10 comments
Closed

instance = (word with capital letters) is a problem #122

psilo909 opened this issue Sep 6, 2016 · 10 comments
Labels

Comments

@psilo909
Copy link
Contributor

psilo909 commented Sep 6, 2016

see https://knx-user-forum.de/forum/supportforen/smarthome-py/934835-avm-plugin/page13

capital letters in the instance attribute seem to be changed to non-capital letters. e.g.:

"Der Underline ist kein Problem.
Auch die Groß-Kleinschreibung in der plugin.conf ist kein Problem.
Sobald ich jedoch in der items.conf im instance "_EG" schreibe, funktioniert die Aktualisierung der items nicht.
die Kombi "_EG" in der plugin.conf und "_eg" in der items.conf klappt aber problemlos.

--> Grossbuchstaben in der items.conf haben mein Problem verursacht."

@ohinckel
Copy link
Member

ohinckel commented Sep 7, 2016

Ja, Gross/Kleinscheigung wird unterschiedlich behandelt: https://github.com/smarthomeNG/smarthome/blob/develop/lib/plugin.py#L60 vs. https://github.com/smarthomeNG/smarthome/blob/develop/lib/model/smartplugin.py#L60

Man muesste entscheiden wie man es aendern moechte:

  • Gross/Kleinschreibung ignorieren - hilft vermutlich den meisten Anwendern Fehler zu vermeiden
  • Gross/Kleinschreibung beruecksichtigen - wie in *nix Betriebssysemen ueblich sind es unterschiedliche Zeichen, somit auch unterschiedliche Werte

Ich waere fuer letzteres, vermute aber groesseres Fehlerpotential und damit mehr Anfragen von Nutzern. Wie auch immer, konsistent sollte es sein 😃

@ohinckel ohinckel added the bug label Sep 7, 2016
@psilo909
Copy link
Contributor Author

psilo909 commented Sep 8, 2016

Nach der Diskussion auf Gitter zum Handling von Itemnamen (Case Sensitive) wäre Option 2 zu favorisieren.

@cstrassburg your opinion?

@bmxp
Copy link
Member

bmxp commented Sep 9, 2016

Ich bin für Option 2. Ggf. einen Plausibilitätscheck beim Einlesen laufen lassen und den Benutzer warnen wenn Items genutzt werden, die sich nur über Gross- und Kleinschreibung unterscheiden.

@psilo909
Copy link
Contributor Author

psilo909 commented Sep 9, 2016

@bmxp man könnte ja im backend einen "problem checker" integrieren der so dinge prüft und warnings ausgibt?
einen healthcheck für plugin-backends fände ich übrigens auch genial... da bräuchte man aber ne standardmethode im plugin, wo man die prüfung programmiert.

@bmxp
Copy link
Member

bmxp commented Sep 9, 2016

Ja, wäre auch eine Möglichkeit. Allerdings hat vielleicht nicht jeder das Backend am Laufen. Vielleicht wäre es sinnvoll, eine Funktion zu schreiben, die das einfach prüft und zum Start das Ergebnis als Warning ausgibt und während der Laufzeit vom Backend ebenso aufgerufen werden kann.

Auf jeden Fall sollten wir mal drüber nachdenken wie wir das hinbekommen Items zur Laufzeit zu erzeugen, zu ändern und zu löschen. Das greift tief in den Core ein, auch die Plugins müßten bei Erstellung, Änderung und Löschung eines Items informiert werden und zwar vorher und auch hinterher. Es könnte ja sein, das ein Plugin ein Item zwingend braucht und vielleicht noch aufräumen muß. Das wiederum kann die die smartplugin Schnittstelle leicht integriert werden. Aber man muß auf jeden Falle jedes Plugin dann anfassen.

@ohinckel
Copy link
Member

ohinckel commented Sep 9, 2016

Ist der Problem-Checker nicht einfach die Liste der ERROR oder WARNING Messages im Log?

Auf jeden Fall sollten wir mal drüber nachdenken wie wir das hinbekommen Items zur Laufzeit
zu erzeugen, zu ändern und zu löschen.

Das sollten wir lieber in #73 (oder ein neues Issue nur fuer Items) diskutieren. Da gehoert naemlich in der Tat etwas mehr dazu.

@psilo909
Copy link
Contributor Author

psilo909 commented Sep 9, 2016

just removed the .lower() - as i was too stupid for a PR, i pushed this now..
if anyone is not d'accord, just complain in this issue pls

ba7ecf6

@ohinckel
Copy link
Member

ohinckel commented Sep 9, 2016

👍 , and I think we do not need to merge this commit into master branch and just release it with the next version 1.3 (workaround is using only lower case letters).

@psilo909
Copy link
Contributor Author

psilo909 commented Sep 9, 2016

ok 4 me.. known defect if anyone asks

@psilo909
Copy link
Contributor Author

Ich schließe das mal, wenn die Behebung jemanden stört, bitte reopen..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants