Frage zu $hash->{PARTIAL} bzw. Alternativen

Begonnen von matzefisi, 30 September 2013, 20:26:55

Vorheriges Thema - Nächstes Thema

matzefisi

Hallo zusammen,

ich bin gerade dabei ein Modul für den Volkszähler USB-Schreiblesekopf zu basteln (Link)

Aktuell habe ich ein Problem beim Zwischenspeichern der seriell empfangenen Daten. Im Anfangsstadium habe ich noch, wie auch in anderen Modulen gesehen, $hash->{PARTIAL} verwendet.Allerdings wird die Moduldarstellen dann bei einer kompletten SML Datei sehr unübersichtlich und unschön. Daher habe ich mir einfach eine neue Variable definiert und habe jetzt natürlich das Problem, dass wenn jemand zwei Devices konfiguriert beide Devices die gleiche Variable nutzen und entsprechend falsche Werte generieren.

Jetzt meine Frage: Kann man entweder $hash->{PARTIAL} irgendwie verstecken oder unsichtbar machen? Oder wie kann ich am besten eine neue interne Variable für diesen Zweck deklarieren? z.B. $temp($defs{NAME}{TYPE}) oder ähnlich?

PS: Danke für's verschieben

Vielen Dank im voraus.

MfG
Matthias

justme1968

du kannst z.b. einfach $hash->{helper}{PARTIAL} statt $hash->{PARTIAL} verwenden.

siehe auch hier: http://www.fhemwiki.de/wiki/DevelopmentGuidelines#Ablage_im_Programm

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Solche Eintraege kann man "verstecken", falls man die mit einem "." beginnt, aehnlich wie im UNIX Dateisystem. Ich habe das Problem trotzdem nicht wirklich verstanden, vielleicht wuerde hier ein Beispiel helfen.

matzefisi

Hallo Rudi,

erstmal danke für´s freischalten.

Ist auch nicht ganz einfach das Problem zu beschreiben. Im Prinzip habe ich es jetzt schon mit der Helper Variablen gelöst. Aber ich versuche es nochmal zu erklären:

Ich lese in dem Module mit Hilfe von DevIo serielle Daten über einen USB-Infrarotlesekopf von einem Stromzähler ein (Der Stromzähler liefert alle 2-4 Sekunden ein SML File). DevIo liefert mir dabei immer ein Byte von der seriellen Schnittstelle. Nun muss ich die Daten solange sammeln, bis ich eine vollständige SML Datei zusammen habe, die mitunter recht lang werden kann. Beipiele findest Du hier: http://wiki.volkszaehler.org/software/sml

Bislang habe ich diese Daten in $hash->{PARTIAL} gesammelt und dabei wurde dann die Ansicht im FHEMWEB sehr unschön. Also ich hatte dann natürlich sämtliche HEX Werte der SML Datei im FHEMWEB im entsprechenden Device sichtbar.

(siehe Anhang / see attachement)


Kann natürlich auch sein, dass ich da jetzt den total falschen Ansatz fahre und Ihr mir sagt, dass ich DevIo falsch benutze :)

MfG
Matthias

rudolfkoenig

Du verwendest es DevIo schon richtig.

Der von mir beschriebene . Ansatz ist fuer solche Probleme gedacht: solange du kein showInternalValues Attribut setzt, siehst du diese Internals/Readings/Attribute nicht.