[gelöst] setreading ohne Event

Begonnen von PNinBB, 24 Mai 2023, 20:12:50

Vorheriges Thema - Nächstes Thema

PNinBB

Ich habe viele Perl-Routinen in diversen 'at' bzw. 'notify' und in diesen Routinen verschiedene 'setreading....', um entsprechende Werte in den Geräte- bzw. Dummy-Readings zu speichern.
'setreading' generiert bei der Ausführung ein Event, das ich entsprechend weiterverwenden kann. In manchen Fällen ist es unerwünscht.
Frage: kann ich - beispielsweise - in einem
fhem ("setreading du_Ausflug par1 0");das Erzeugen eines Events unterbinden ?
Gesucht habe ich natürlich schon in vielen Dokumenten, aber nichts passendes gefunden.
Danke im Voraus und schönen Abend.
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

Icinger

Das geht am leichtesten mit

$rv = readingsSingleUpdate($hash, $reading, $value, $do_trigger);
Siehe auch https://wiki.fhem.de/wiki/DevelopmentModuleAPI#readingsSingleUpdate
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

Dazu muss man aber den $hash haben.

Das hier funktioniert auch:

{my $t=TimeNow();; fhem("setstate testDevice $t testReading testWert")}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PNinBB

#3
Danke und Guten Morgen !
@ Icinger: 'readingsSingleUpdate' habe ich auch gefunden, bin aber nicht an '$hash' gekommen.
@ betateilchen: funktioniert bestens, ich habe es auch einmal mit 'setstate' versucht, aber ich habe nicht gründlich genug gelesen. Habe es nun auch im "Kleingedruckten" in der Commandref gelesen.
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

betateilchen

Zitat von: PNinBB am 25 Mai 2023, 06:53:43'readingsSingleUpdate' habe ich auch gefunden, bin aber nicht an '$hash' gekommen.

Naja, wirklich komplizierter ist das auch nicht:

{my $hash=$defs{'testDevice'};; readingsSingleUpdate($hash,'testReading','testWert',0)}
Es setzt halt ein paar tiefere Kenntnisse darüber voraus, wie FHEM intern funktioniert. Im Gegensatz dazu hat man 'setstate' zumindest schonmal gesehen, wenn man sich die "raw definition" eines devices mal angeschaut hat. Da kann man schön abschauen.


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!