Hallo,
gibt es eine Möglichkeit, den aktuellen Wert eines in DBLog geloggten Readings eines Devices wie in einem ReadingsProxy oder Dummy darzustellen ? Ich möchte damit Werte aus anderen FHEM-Installationen ohne FHEM2FHEM darstellen.
Ich habe z.B.
{get LOGDB ReadingsVal search_activ Volumenstrom 0}
im StateFormat eines Dummys probiert, bekomme aber den Fehler
Not enough arguments for main::ReadingsVal at (eval 5574832) line 1, at EOF
beim Speichern. Wenn ich das ohne {} probiere, dann wird nur der Text in den Dummy geschrieben, wenn ich das in die Kommandozeile eingebe, bekomme ich einen plausiblen Wert als Antwort, weiß aber nicht, ob das wirklich der aktuelle Wert ist...
Der ReadingsVal hat einen falschen Syntax. Kuck mal in die commandref bzw wiki dazu. Imho gehört da ne klammer und Kommas ran.
Gesendet von meinem S60 mit Tapatalk
Hallo zusammen,
ich denke DbRep kann helfen (Auszug aus Commandref):
Sobald ein DbRep-Device definiert ist, wird sowohl die Perl Funktion DbReadingsVal als auch das FHEM Kommando dbReadingsVal zur Verfügung gestellt. Mit dieser Funktion läßt sich, ähnlich dem allgemeinen ReadingsVal, der Wert eines Readings aus der Datenbank abrufen. Die Funktionsausführung erfolgt blockierend.
Die Befehlssyntax für die Perl Funktion ist:
DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")
Beispiele:
$ret = DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-01-13_08:00:00","");
attr <name> userReadings oldtemp {DbReadingsVal("Rep.LogDB1","MyWetter:temperature","2018-04-13_08:00:00","")}
Die Befehlssyntax als FHEM Kommando ist:
dbReadingsVal <name> <device:reading> <timestamp> <default>
Beispiel:
dbReadingsVal Rep.LogDB1 MyWetter:temperature 2018-01-13_08:00:00 0
<name> : Name des abzufragenden DbRep-Device
<device:reading> : Device:Reading dessen Wert geliefert werden soll
<timestamp> : Zeitpunkt des zu liefernden Readingwertes (*) im Format "YYYY-MM-DD_hh:mm:ss"
<default> : Defaultwert falls kein Readingwert ermittelt werden konnte
(*) Es wird der zeitlich zu <timestamp> passendste Readingwert zurück geliefert, falls kein Wert exakt zu dem angegebenen Zeitpunkt geloggt wurde.
Grüße,
Heiko
Hallo Heiko,
danke, das wird ich mal ausprobieren :-)
Grüße
Christian