FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: willybauss am 20 August 2017, 11:00:51

Titel: Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: willybauss am 20 August 2017, 11:00:51
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?
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: dev0 am 20 August 2017, 11:46:49
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.
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: CoolTux am 20 August 2017, 11:48:20
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.
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: Icinger am 20 August 2017, 11:55:35
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
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: dev0 am 20 August 2017, 12:13:20
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.
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: betateilchen am 20 August 2017, 12:18:35
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.
Titel: Antw:Attribut wird beim Start von fhem gelöscht - warum?
Beitrag von: willybauss am 20 August 2017, 21:39:29
Ich sehe schon, das war doch keine Anfängerfrage, aber letztlich hat sich ja Alles zum guten gewendet. Besten Dank dafür.