Das Problem sehe ich woanders:
Es gibt Anwender, versierte Anwender und Entwickler; folglich solche und solche.
Aber auch der einfache "Anwender" soll ja auch hiermit etwas anfangen können.
Mit "math.pow" als Funktion von Python und auch der "**" für die Auflösung des Exponenten ist jemand, der SmarthomeNG einfach nur nutzen möchte, schlichtweg überfordert.
Mach mal einen Perspektivwechsel und versetze dich in die Situation:
Du bist jemandem, der sich zum ersten Mal SmarthomeNG installiert, die Konfigurationsanleitung vom SmarthomeNG und deren Plugins durchliest, Items zusammenbaut und daraus versucht, sich sein Haus etwas "smarter" zu machen.
"Python" hält er grundsätzlich erst mal für eine Schlange und hat gar keine Ahnung, was da im Hintergrund überhaupt passiert.
Grundrechenarten mit plus, minus mal und geteilt beherrscht dieser in seinem grundlegenden Mathematikwissen und kann das auch in Items definieren. Das leuchtet ein und wird auch an sehr vielen Stellen erklärt.
Nun findet derjenige auch dein Plugin und möchte seinen Wechselrichter über Modbus TCP anbinden. Das alleine gestaltet sich schon schwierig, die Register passend zu lesen und dann steht da tatsächlich in den Unterlagen des Wechselrichters, dass es einen Datentyp namens "sunssf" gibt.
Genau dann steht dieser Anwender da, wo ich stand: Wie der Ochse vor dem Berg!
Und nun muss er sich eine Lösung überlegen, wie er eine Zahl von -5 bis + 5 (oder auch höher) dahingehend umwandeln kann, dass es einen Faktor mit 0.irgendwas ergibt.
Das mag aus Sicht eines Entwicklers simple Mathematik und Anwendung von einfachen Python-Befehlen sein, die er selbst hat und darüber lächelt, wenn es einer nicht umsetzen kann, weil die Grundkenntnisse fehlen und das Verständnis einfach nicht da ist.
Der normal sterbliche Anwender scheitert aber an solchen einfachen Dingen.
Der möchte beispielsweise "5682 * 0.0001" aus dem Item "Strom" multipliziert mit dem "Skalierungsfaktor" rechnen; das kennt der und kann das auch nachvollziehen.
5682 als Strom und -4 als verschobener Dezimalpunkt bringt der aber einfach nicht zusammen.
Guck dir doch mal den Verlauf dieses Postings an, wie Schusselig ich mich angestellt habe. Das betrifft aber die meisten Anwender die als "Otto-Normalverbraucher" versuchen, hier etwas schönes zu generieren. Und wenn das nicht klappt, schmeißen viele auch schnell die Flinte ins Korn und stöpseln alles wieder ab. Erst recht, wenn nicht die Möglichkeit besteht, jemanden direkt zu fragen. Dann entsteht schnell ein Frustlevel.
Um das zu umgehen, muss man halt alles berücksichtigen; und nicht nur das, was einem selbst einfach erscheint.
Daher nochmal: der "sunssf" als zusätzliches Attribut tut keinem weh; hilft aber extrem dem Verständnis, wie man mit einfacher Multiplikation von Daten, die im Item-Baum schon aufgelöst als Dezimalzahl beispielsweise mit 0.001 erscheinen, sauber und simpel mit einer Multiplikation auf den passenden Wert kommt.
Das versteht jeder einfach gestrickte Anwender wie z.B. ich.
Es gibt Anwender, versierte Anwender und Entwickler; folglich solche und solche.
Aber auch der einfache "Anwender" soll ja auch hiermit etwas anfangen können.
Mit "math.pow" als Funktion von Python und auch der "**" für die Auflösung des Exponenten ist jemand, der SmarthomeNG einfach nur nutzen möchte, schlichtweg überfordert.
Mach mal einen Perspektivwechsel und versetze dich in die Situation:
Du bist jemandem, der sich zum ersten Mal SmarthomeNG installiert, die Konfigurationsanleitung vom SmarthomeNG und deren Plugins durchliest, Items zusammenbaut und daraus versucht, sich sein Haus etwas "smarter" zu machen.
"Python" hält er grundsätzlich erst mal für eine Schlange und hat gar keine Ahnung, was da im Hintergrund überhaupt passiert.
Grundrechenarten mit plus, minus mal und geteilt beherrscht dieser in seinem grundlegenden Mathematikwissen und kann das auch in Items definieren. Das leuchtet ein und wird auch an sehr vielen Stellen erklärt.
Nun findet derjenige auch dein Plugin und möchte seinen Wechselrichter über Modbus TCP anbinden. Das alleine gestaltet sich schon schwierig, die Register passend zu lesen und dann steht da tatsächlich in den Unterlagen des Wechselrichters, dass es einen Datentyp namens "sunssf" gibt.
Genau dann steht dieser Anwender da, wo ich stand: Wie der Ochse vor dem Berg!
Und nun muss er sich eine Lösung überlegen, wie er eine Zahl von -5 bis + 5 (oder auch höher) dahingehend umwandeln kann, dass es einen Faktor mit 0.irgendwas ergibt.
Das mag aus Sicht eines Entwicklers simple Mathematik und Anwendung von einfachen Python-Befehlen sein, die er selbst hat und darüber lächelt, wenn es einer nicht umsetzen kann, weil die Grundkenntnisse fehlen und das Verständnis einfach nicht da ist.
Der normal sterbliche Anwender scheitert aber an solchen einfachen Dingen.
Der möchte beispielsweise "5682 * 0.0001" aus dem Item "Strom" multipliziert mit dem "Skalierungsfaktor" rechnen; das kennt der und kann das auch nachvollziehen.
5682 als Strom und -4 als verschobener Dezimalpunkt bringt der aber einfach nicht zusammen.
Guck dir doch mal den Verlauf dieses Postings an, wie Schusselig ich mich angestellt habe. Das betrifft aber die meisten Anwender die als "Otto-Normalverbraucher" versuchen, hier etwas schönes zu generieren. Und wenn das nicht klappt, schmeißen viele auch schnell die Flinte ins Korn und stöpseln alles wieder ab. Erst recht, wenn nicht die Möglichkeit besteht, jemanden direkt zu fragen. Dann entsteht schnell ein Frustlevel.
Um das zu umgehen, muss man halt alles berücksichtigen; und nicht nur das, was einem selbst einfach erscheint.
Daher nochmal: der "sunssf" als zusätzliches Attribut tut keinem weh; hilft aber extrem dem Verständnis, wie man mit einfacher Multiplikation von Daten, die im Item-Baum schon aufgelöst als Dezimalzahl beispielsweise mit 0.001 erscheinen, sauber und simpel mit einer Multiplikation auf den passenden Wert kommt.
Das versteht jeder einfach gestrickte Anwender wie z.B. ich.
Kommentar