FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Maultier am 31 Dezember 2019, 16:33:04

Titel: UserReadings werden nicht angezeigt
Beitrag von: Maultier am 31 Dezember 2019, 16:33:04
Wahrscheinlich sehe ich nur den Wald vor Bäumen nicht. Nach tagelangem probieren und und Suchen im Forum und im Wiki habe ich es erst mal aufgegeben und hoffe auf den entscheidenden Tipp von Euch:

Über USBWX füttere ich FHEM mit Wetterdaten. Via UserReadings möchte ich die angezeigte Temperatur ändern. Leider wird das UserREading aber nicht bei "USBWX_Wohnzimmer" unter Readings angezeigt. Warum klappt das nicht? Hier erst mal nur eine ganz einfache Variante zum testen. Säter sollen hierüber einige Berechnungen erfolgen...

Unter Readings steht zum Beispiel:
temperature  23.7  2019-12-30 22:28:01

Unter Attributes:
userReadings myTemp { ReadingsVal("USBWX_Wohnzimmer","temperature","x")

Sollte nun nicht unter Readings auftauchen:
myTemp  23.7

Tut es aber leider nicht und ich finde den Fehler nicht.

Schon mal vielen Dank.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Beta-User am 31 Dezember 2019, 16:38:55
Laß raten: das userReading wird in einem anderen Device erzeugt als das Ausgangsreading?
Kurzfassung: geht nicht (ist hier immer mal wieder ein Thema).

(Bitte zukünftig nicht "sparen" und lists liefern, und Code usw. bitte in entsprechenden Tags!)

Ansonsten: Willkommen im Forum und guten Rutsch!
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: xenos1984 am 31 Dezember 2019, 16:42:03
Am besten postest du hier zuerst einmal ein komplettes List des USBWX_Wohnzimmer (und zwar idealerweise in code-Tags), dann sehen wir eher, was da faul sein könnte.

Spontane Beobachtung: Dein userReadings hat aber schon noch eine schließende geschweifte Klammer, oder?

Ansonsten, willkommen im Forum!
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 31 Dezember 2019, 16:43:08
Das ging schnell! Auch Dir einen guten Rutsch! Nur zu Deiner Antwort:

Das Reading wird im gleichen Devive erzeugt. Hier der Code:

defmod USBWX_Wohnzimmer USBWX 3
attr USBWX_Wohnzimmer icon temp_inside
attr USBWX_Wohnzimmer loglevel 6
attr USBWX_Wohnzimmer room Wohnzimmer
attr USBWX_Wohnzimmer userReadings myTemp { ReadingsVal("USBWX_Wohnzimmer","temperature","x")  }
attr USBWX_Wohnzimmer verbose 5

setstate USBWX_Wohnzimmer T: 23.7 
setstate USBWX_Wohnzimmer 2019-12-30 22:28:01 temperature 23.7


HAllo Xenos: Dur warst schneller ;-)
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 31 Dezember 2019, 16:46:12
Mach bitte

list USBWX_Wohnzimmer

Und poste die Ausgabe.
Ich denke es gibt kein Event und ohne Event wir kein userreadings erzeugt.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: KernSani am 31 Dezember 2019, 16:49:24
Userreadings werden erst bei einem Event erzeugt... Gab es denn ein Event?
(Edit: Cooltux war schneller ;-))
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Beta-User am 31 Dezember 2019, 16:50:44
Der Event ist ewig alt, und das list schon da...
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 31 Dezember 2019, 16:52:23
temperature tacht als Reading auf. Aber auch wenn ich T oder state oder STATE schreibe, ändert das leider nichts.

Internals:
   CODE       3
   DEF        3
   FUUID      5e09d1d3-f33f-dbce-0748-04bb8c9b02903b4b
   NAME       USBWX_Wohnzimmer
   NR         52
   STATE      T: 23.7 
   TIME       2019-12-30 22:28:01
   TYPE       USBWX
   corr1      0
   corr2      0
   corr3      0
   corr4      0
   READINGS:
     2019-12-30 22:28:01   temperature     23.7
Attributes:
   icon       temp_inside
   loglevel   6
   room       Wohnzimmer
   userReadings myTemp { ReadingsVal("USBWX_Wohnzimmer","temperature","x")  }
   verbose    5


@KernSani: es gab Events alle paar Minuten. Ich habe nur gestern Abend meine Versuche eingestellt. Deshalb steht dort der 30.12.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 31 Dezember 2019, 18:20:37
Ich habe nun das ganze USBWX-Gedöns gelöscht und neu angelegt. Ich habe nun wieder (regelmäßige) aktuelle Readings und trotzdem kein UserReading.
Außerdem habe ich gleiches Vorgehen im Badezimmer versucht (dort kommen die Daten von einer FHT-Heizungssteuerung). Dort klappt es anstandslos. Ich verstehe nicht, was hier faul ist.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 31 Dezember 2019, 18:32:21
Kommt denn wirklich auch ein Event. Bitte im Eventmonitor schauen.
Ansonsten kann ich mich erinnern das wir schon mal sowas hatten, da hat das Modul irgendwas gemacht das kein userreadings ging. Lag glaube daran das die Readings nicht mit den fhem.pl internen Funktionen gesetzt wurden.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: xenos1984 am 31 Dezember 2019, 20:11:22
Zitat von: CoolTux am 31 Dezember 2019, 18:32:21
Ansonsten kann ich mich erinnern das wir schon mal sowas hatten, da hat das Modul irgendwas gemacht das kein userreadings ging. Lag glaube daran das die Readings nicht mit den fhem.pl internen Funktionen gesetzt wurden.

Ohne ein Experte zu sein - ich habe mal einen Blick auf den Quelltext geworfen:

http://svn.fhem.de/trac/browser/trunk/fhem/FHEM/70_USBWX.pm

Wie es scheint, werden da tatsächlich nicht die in der fhem.pl definierten Funktionen zum Update von Readings aufgerufen, sondern die Readings "von Hand" gesetzt. Und so weit ich das sehen kann, werden die userReadings in der Funktion readingsEndUpdate erstellt:

http://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl#L4659

Wenn die also nie aufgerufen wird, gibt es auch keine userReadings...
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 01 Januar 2020, 15:00:14
Ich wünsche Euch ein gesundes neues Jahr. Vielen Dank für Eure Mühe. Der Quellcode überfordert mich etwas  :(

Kann man dieses
readingsEndUpdate
irgendwie manuell triggern um zu prüfen, ob dort der Fehler liegt? Wie kann ich prüfen, ob readingsEndUpdate überhaupt  aufgerufen wird? Im Eventmonitor scheint es jedenfalls nicht aufzutauchen.

Gibt es eine andere Möglichkeit die Readings zu ändern? Einen Sensorkanal mißbrauche ich, um die Batteriespannung eines Sensors mit 10 multipliziert zu übertragen. Das Reading temperature muß also durch 10 geteilt werden und die richtige Einheit V bekommen.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 01 Januar 2020, 15:15:42
Nachtrag:
Ich habe nun mal im Event monitor geschaut:
2020-01-01 15:10:14 FHT heizung_kueche warnings: none
2020-01-01 15:10:15 FHT heizung_kueche ack: 29
2020-01-01 15:10:15 FHT heizung_kueche end-xmit: 29
2020-01-01 15:11:01 USBWX USBWX_Wohnzimmer temperature: 22.7
2020-01-01 15:11:01 USBWX USBWX_Wohnzimmer T: 22.7 

Es fällt auf, dass bei den FHT's ein end-xmit: 29 auftaucht, beim USBWX fehlt dies. Könnte dies die Ursache sein?
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 01 Januar 2020, 15:44:48
Wenn das nicht geht das geht es generell nicht mit dem Modul


userreadings newTemp:temperature:.* { ReadingsNum($name,'temperature',-90) }
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 02 Januar 2020, 10:39:19
Auch dieser Vorschlag funktioniert leider nicht.

Möglicherweise war der Hinweis auf readingsEndUpdate der entscheidende: Ich habe mir den Sourcecode von 70_USBWX.pm mal angesehen. In der Tat werden dort readingsBeginUpdate und readingsEndUdate gar nicht aufgerufen. 11_FHT.pm macht dies. Leider sind meine FHEM-Kenntnisse zu rudimentär, um das selbst zu fixen. Ich werde mir aber den Source-Code noch einmal anschauen und mit dem von 11_FHT.pm bezüglich dieser Routinen vergleichen und dann unter https://wiki.fhem.de/wiki/DevelopmentModuleAPI#readingsBeginUpdate (https://wiki.fhem.de/wiki/DevelopmentModuleAPI#readingsBeginUpdate) mal ausgiebig lesen. Vielleicht finde ich eine Lösung. Das scheint aber doch ziemlich komplex zu sein .....

Eventuell gibt es hier aber einen Spezialisten, der das fixen kann  :D ?
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Christoph Morrison am 02 Januar 2020, 11:46:38
Zitat von: Maultier am 02 Januar 2020, 10:39:19
Eventuell gibt es hier aber einen Spezialisten, der das fixen kann  :D ?

Der erste Kandidat wäre der User wherzig. Er ist der Maintainer des Moduls - allerdings finde ich ihn im Forum nicht, d.h. er hat sich entweder abgemeldet oder umbenannt.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Wzut am 02 Januar 2020, 11:47:41
Zitat von: Maultier am 02 Januar 2020, 10:39:19
Eventuell gibt es hier aber einen Spezialisten, der das fixen kann  :D ?
Klar, normalerweise der Modul Autor :) I.d.R. reagieren die sogar auf solche Wünsche, nur hier wird es vermutlich schwierig :
Willi , letzter Login 28 Juli 2019
Jemand eine Ahnung was mit dem RFXTRX Guru los ist ?

Edit  Christoph war etwas schneller nur nicht so gründlich :)
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Christoph Morrison am 02 Januar 2020, 11:52:53
Zitat von: Wzut am 02 Januar 2020, 11:47:41
Edit  Christoph war etwas schneller nur nicht so gründlich :)

Ich bin nur den offiziösen Einträgen in der Maintainers gefolgt. Sein Name ist nun also Willi?
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 02 Januar 2020, 11:56:34
Das Modul wurde zuletzt 2013 angefasst. Die Anpassungen sehen auf den ersten Blick nur nach Fleißarbeit aus.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 02 Januar 2020, 12:44:38
Bitte einmal testen.

Dazu die Datei unter /opt/fhem/FHEM/70_USBWX.pm durch die hier angehängte ersetzen. Danach Neustart FHEM.

ACHTUNG ALLES UNGETESTET!!!
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: Maultier am 04 Januar 2020, 20:47:14
Tja, leider noch immer kein Erfolg. Ich habe nun im Modul 70_USBWX.pm die Datenübergabe an FHEM so umgebaut, dass sie via
readingsBeginUpdate($def);
....
readingsBulkUpdate($def, $sensor, $current);
....
readingsEndUpdate($def,1);

erfolgt. Läuft alles prima und liefert weiterhin das Reading "temperature". Nur leider noch immer kein erfolgreiches UserReadings  :'(.

Wenn keiner mehr eine Idee hat, bleibt mit nur noch die Möglichkeit, das Modul so umzuschreiben, das es direkt meine gewünschten Werte liefert. Damit umgehe ich userReadings. Mich würde aber trotzdem interessieren, warum es nicht klappt.
Titel: Antw:UserReadings werden nicht angezeigt
Beitrag von: CoolTux am 04 Januar 2020, 20:49:37
Heißt das meine Anpassung hat nicht funktioniert??