Attribut wird beim Start von fhem gelöscht - warum?

Begonnen von willybauss, 20 August 2017, 11:00:51

Vorheriges Thema - Nächstes Thema

willybauss

Ich habe für meinen Stromzähler u.a. die beiden Attribute 'interval' und 'alignTime' gesetzt (und die Config gespeichert). Beim Start von fhem bekomme ich dennoch

Messages collected while initializing FHEM:
configfile: OBIS (Hausstrom_Zaehler): attr alignTime is useless, if no interval is specified


... und alignTime wird gelöscht. interval ist aber nach wie vor gesetzt.

Im Config File sehe ich, dass alignTime vor interval steht  - vermutlich ist die Sortierung der Attribute alphabetisch, sieht jedenfalls so aus. Drehe ich die Reihenfolge manuell um, dann klappt beim nächsten Start alles: keine Fehlermeldung, kein gelöschtes Attribut. Aber irgendwann später (nach dem nächsten 'Save config'?) ist die Reihenfolge plötzlich wieder alphabetisch und beim nächsten Restart wird alignTime wieder gelöscht. Offenbar sortiert fhem die Attribute wieder um.

Dummerweise bin ich im OBIS-Thread der Einzige, der dieses Problem hat. Auch andere OBIS-Anwender haben alphabetisch sortierte Attribute, aber kein Problem beim Restart.

==> woran liegt das bzw. wie kann ich es korrigieren?
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

dev0

Da die gezeigte Meldung vom Modul und nicht von fhem.pl stammt, würde ich den Modul Maintainer direkt im passenden Forumsbereich fragen => Thread verschieben.

CoolTux

#2
Lösche mal beide Attribute über das Webinterface. Speichere die Konfig starte FHEM neu. Setze dann die Attribute neu über das Webinterface und speichere ab. Schaue ob nach einem Neustart das Problem immer noch besteht.
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

Icinger

Das "Problem" liegt zu einem gewissen Teil an mir, weil im OBIS-Modul beim setzen der alignTime-Attributs getestet wird, ob das "interval"-Attribut schon gesetzt ist.
Ist das nicht der Fall, wird vom Modul eben die Meldung
OBIS (Hausstrom_Zaehler): attr alignTime is useless, if no interval is specified
zurückgegeben.
Wird aus der setAttr-Routine aber was anderes als undef retourniert, wird dieses Attribut eben nicht gesetzt.

Habe das intern jetzt behoben, indem statt
return <Meldung>
ein Log3 $hash,3,<Meldung>
abgesetzt wird und durch ein "return undef" das Attribut trotzdem gesetzt wird.

Die andere Frage ist aber: Ist es wirklich notwendig, die Attribute bei einem Save immer alphabetisch zu sortieren? :)

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

dev0

ZitatIst es wirklich notwendig, die Attribute bei einem Save immer alphabetisch zu sortieren?
Zumindest hat man dann eine definierte Reihenfolge, wenn man schon Attribut x von y abhängig macht. Sonst wäre es Zufall ob es funktioniert oder nicht.

betateilchen

Zitat von: Icinger am 20 August 2017, 11:55:35
Die andere Frage ist aber: Ist es wirklich notwendig, die Attribute bei einem Save immer alphabetisch zu sortieren? :)

Das Sortieren ist vor allen Dingen notwendig, um sicherzustellen, dass möglicherweise vorhandene userattr vor anderen Attributen verarbeitet werden. Die alphabetische Reihenfolge ist mehr oder weniger ein Abfallprodukt davon. Aber man kann sich zumindest darauf verlassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

willybauss

Ich sehe schon, das war doch keine Anfängerfrage, aber letztlich hat sich ja Alles zum guten gewendet. Besten Dank dafür.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS