FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AR@WR am 07 März 2017, 20:33:33

Titel: [gelöst] Hintergrundwissen Readings
Beitrag von: AR@WR am 07 März 2017, 20:33:33
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
Titel: Antw:Hintergrundwissen Readings
Beitrag von: fstefan1960 am 07 März 2017, 20:39:54
Das "Merken über den Neustart hinaus" steht in der fhem.save im Verzeichnis log.
Titel: Antw:Hintergrundwissen Readings
Beitrag von: Icinger am 07 März 2017, 20:44:13
deletereading <device> <reading>
Titel: Antw:Hintergrundwissen Readings
Beitrag von: KölnSolar am 07 März 2017, 20:46:41
oder Du löschst das device und legst es wieder neu an.
Titel: Antw:Hintergrundwissen Readings
Beitrag von: DeeSPe am 07 März 2017, 20:57:34
Und ganz wichtig:
Statt der vielen readingsSingleUpdate solltest Du readingsBulkUpdate verwenden.

Gruß
Dan
Titel: Antw:Hintergrundwissen Readings
Beitrag von: AR@WR am 07 März 2017, 21:06:20
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.
Titel: Antw:Hintergrundwissen Readings
Beitrag von: Icinger am 07 März 2017, 21:15:40
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
Titel: Antw:Hintergrundwissen Readings
Beitrag von: AR@WR am 07 März 2017, 22:08:31
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