Moin, moin,
ich versuche gerade, ein eigenes Modul zur Kommunikation über eine serielle Schnittstelle zu schreiben.
Daten gehen auch hin und her, aber die Anzeige der Meßwerte läßt zu wünschen übrig.
Mein jetziger Kenntnisstand ist, daß Readings sichtbar werden, wenn man sie in dem Modul mit Werten beschreibt.
Es scheint also keine Deklaration o.ä. nötig zu sein:
DevIo_SimpleWrite($hash, "\$PARHE,RdAC*56\n",0);
my $Tmp = DevIo_SimpleRead($hash);
my @a = split(/,/, $Tmp); # Zerlegung in einzelne Werte
readingsSingleUpdate($hash,"Header",$a[0], 1);
readingsSingleUpdate($hash,"Command",$a[1], 1);
readingsSingleUpdate($hash,"Heizung Vorlauf",$a[2]/1000, 1);
readingsSingleUpdate($hash,"Heizung Rücklauf",$a[3]/1000, 1);
readingsSingleUpdate($hash,"Warmwasser Vorlauf",$a[4]/1000, 1);
readingsSingleUpdate($hash,"Status",$a[5], 1);
Dieser Code erzeugt die im angehängten Bild gezeigten Ausgaben.
Alles was ich haben will, ist da, aber leider auch die drei folgenden Zeilen:
Heizung Rücklauf 20.125 2017-03-06 22:42:24
Temperatur $PARHE,RdAC,19812,19875,19813,00000000,00000000,26000,55000,1000*60 2017-03-06 22:08:04
Warmwasser Vorlauf 20.063 2017-03-06 22:42:24
Die mittlere stammt wohl noch aus der Entwicklungsphase (noch ohne Textsplitting), woher die beiden anderen kommen, weiß ich nicht.
Wie wird man die los ?
FHEM scheint sich irgendwie auch über einen Neustart hinaus Dinge / Zustände zu merken, die nicht in den Konfigurationsdateien stehen.
Die unerwünschten Meßwerte sind ja schon von gestern.
Gruß
Arno
Fhem info:
Release : 5.7 FeatureLevel: 5.7
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.14.2
Das "Merken über den Neustart hinaus" steht in der fhem.save im Verzeichnis log.
deletereading <device> <reading>
oder Du löschst das device und legst es wieder neu an.
Und ganz wichtig:
Statt der vielen readingsSingleUpdate solltest Du readingsBulkUpdate verwenden.
Gruß
Dan
Vielen Dank erst mal für die vielen Antworten ! Hat mich schon ein Stückchen weitergebracht.
@ Dan,
den Aufruf mit dem readingsSingleUpdate hatte ich aus einem anderen Modul abgekupfert.
Erst bei der Fehlersuche bezüglich der Readings habe ich gesehen, daß es wohl auch noch eine andere Möglichkeit gibt.
Bin erst mal froh, daß es läuft, danach kann man dann optimieren.
@ fstefan1960,
habe die unerwünschten Einträge aus der fhem.save gelöscht und nach einem Neustart war die Zeile mit
Temperatur $PARHE,RdAC,19812,19875,19813,00000000,00000000,26000,55000,1000*60 2017-03-06 22:08:04
auch verschwunden. Die beiden anderen sind immer noch da.
Kann es sein, daß Readings-Namen keine Leerzeichen enthalten dürfen ?
Die Antwort von Icinger könnte darauf hindeuten.
Leerzeichen in Readingsnamen gehen zwar theoretisch, würde ich aber absolut vermeiden.
Da wirst du immer Probleme damit bekommen.
Zum Thema ReadingsUpdate: https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Readings (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Readings)
lg, Stefan
Hallo Stefan,
habe die Leerzeichen durch Bindestriche ersetzt und noch einmal die unerwünschten Einträge aus fhem.save entfernt.
Jetzt sieht der Readings-Block aus wie gewünscht.
Habe dann noch schnell auf den BulkUpdate umgestellt, geht auch.
Vielen Dank noch mal
Arno