letzten DBLog-Eintrag eines Devices/Readings z.B. in Dummy darstellen

Begonnen von cs-online, 21 Oktober 2019, 20:50:00

Vorheriges Thema - Nächstes Thema

cs-online

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...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

Frank_Huber

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


DS_Starter

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
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

cs-online

Hallo Heiko,

danke, das wird ich mal ausprobieren :-)

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr