Moin zusammen,
ich baue gerade ein neues Modul (als Ersatz für den abgeschalteten mypowerrouter-cloud dienst). Dieses Modul horcht auf einen Port, auf den der Wechselrichter von Nedap (powerrouter) minütlich seine Statistikwerte als json postet.
Den Post annehmen und den json-request zerlegen ist fertig, wo ich gerade dran scheitere, ist das schreiben der Daten als Reading.
Es geht in der angehängten Datei um die Zeilen 113-123 (ja, viel Debug, das kommt später raus):
my $rv;
readingsBeginUpdate( $hash);
$rv=readingsBulkUpdate( $hash, "event", $event, 1 );
Log3 $name, 1, "Mypowerrouter rv of event: $rv";
$rv=readingsBulkUpdate( $hash, "powerrouter_id", $powerrouter_id, 1 );
Log3 $name, 1, "Mypowerrouter rv of powerrouter_id: $rv";
$rv=readingsBulkUpdate( $hash, "time_send", $time_send, 1 );
Log3 $name, 1, "Mypowerrouter rv of time_send: $rv";
$rv=readingsBulkUpdate( $hash, "STATE", "received", 1);
Log3 $name, 1, "Mypowerrouter rv of STATE: $rv";
readingsEndUpdate( $hash, 1);
Die Rückgabewerte im Log sind korrekt (siehe Screenshot), allerdings finde ich die Readings nicht im Modul (siehe Screenshot). Kann mich vielleicht einer in die richtige Richtung schubsen, was ich verkehrt mache?
ein list des devices sieht wie folgt aus:
Internals:
CONNECTS 1
DEF 10101
FD 135
FUUID 600c0359-f33f-129d-4a10-00c5c29ac7a3158d
NAME Mypowerrouter
NR 499
PORT 10101
STATE Initialized
TYPE Mypowerrouter
READINGS:
2021-01-23 12:45:14 state Initialized
Attributes:
room EG.Werkstatt
anbei das modul.
vielen Dank,
Friedhelm
Habs selber rausgefunden.
mit TcpServer_Accept wird ein neuer Kontext erzeugt, das schreiben der Readings muss dann in dem Elternkontext erfolgen.
richtig war also:
readingsBeginUpdate($defs{$hash->{SNAME}});
readingsBulkUpdate($defs{$hash->{SNAME}}, 'state', "online");
readingsBulkUpdate($defs{$hash->{SNAME}}, 'event', $event);
readingsBulkUpdate($defs{$hash->{SNAME}}, 'powerrouter_id', $powerrouter_id);
readingsBulkUpdate($defs{$hash->{SNAME}}, 'time_send', $time_send);
readingsEndUpdate($defs{$hash->{SNAME}}, 1);
gibt es dazu irgendwo doku, wo man das Verhalten nachlesen kann? Ich habe das im Wiki weder unter DevelopmentModuleIntro noch unter DevelopmentModuleAPI gefunden, sondern habe mir das ghoma-modul solange umgebaut, bis ich den Workflow verstanden habe ...
ps: falls ich zu doof zum Suchen bin, bitte gerne auch sagen ...