[Gelöst] In Notify erzeugte Werte für ein Device werden nicht in der DB geloggt

Begonnen von Gear, 21 März 2018, 00:19:02

Vorheriges Thema - Nächstes Thema

Gear

Guten Abend Zusammen,

ich habe einen Stromzähler, der via S0 an meinen ESP8266 ein Impuls schickt, die Daten werden alle 60s an FHEM gesendet.
Nach dem erhalt der Werte verarbeitet ein Notify die Werte und berechnet den aktuellen Verbrauch, den heutigen, gestrigen, monatigen und jährlichen Verbrauch.

Also vom ESP > Device (via MQTT) > Notify > zurück ins Device.
Das Loggen über die DB funktioniert, daran sollte es nicht liegen.

Wenn ich die Daten wähle, welche vom ESP > FHEM gehen, die werden geloggt.

Anbei das Device bei dem ich die Probleme habe, auch bei anderen Devices des selbigen das gleiche Problem.
Ich weiß nicht, woran es liegen kann oder wie ich das beheben kann.

defmod WZ.Stromverbrauch.PC MQTT_DEVICE
attr WZ.Stromverbrauch.PC DbLogExclude .*
attr WZ.Stromverbrauch.PC DbLogInclude SvAktuell,SvHeute,SvGestern,SvMonat,SvVormonat,SvVorJahr,SvVorJahr
attr WZ.Stromverbrauch.PC IODev mqtt
attr WZ.Stromverbrauch.PC subscribeReading_count /SH/W/WZ/PC/Count
attr WZ.Stromverbrauch.PC subscribeReading_time /SH/W/WZ/PC/Time
attr WZ.Stromverbrauch.PC subscribeReading_total /SH/W/WZ/PC/Total

setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 SvAktuell 0.06
setstate WZ.Stromverbrauch.PC 2018-03-21 00:00:04 SvDatum 2018-03-21
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 SvGesamt 0.089
setstate WZ.Stromverbrauch.PC 2018-03-21 00:00:04 SvGestern 0.068
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 SvHeute 0.021
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 SvJahr 0.089
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 SvMonat 0.089
setstate WZ.Stromverbrauch.PC 2018-03-21 00:00:04 SvVorJahr 0
setstate WZ.Stromverbrauch.PC 2018-03-21 00:00:04 SvVormonat 0
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 count 1
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 time 60030
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 total 535
setstate WZ.Stromverbrauch.PC 2018-03-21 00:14:04 transmission-state incoming publish received



Danke und einen schönen Abend
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

DS_Starter

Hallo Gear,

das liegt an den Eigenheiten von setstate was du verwendest.
Siehe Commandref https://fhem.de/commandref_DE.html#setstate

Zitat
....
Der Befehl setzt den STATE Eintrag des Gerätes direkt, ohne Ereignisse zu generieren oder ein Signal an das Gerät zu senden.
....

Es werden mit setstate keine Events generiert die aber Voraussetzung für das Logging sind.
Du kannst auch im Eventmonitor gegenchecken dass die mit setstate erzeugte Einträge keine Events generieren.

VG
ESXi@NUC+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

Gear

Hallo DS_Starter,
Danke für deine Antwort, klingt logisch.
Sry wenn ich die Lösung jetzt übersehen haben sollte, aber gibt es auch eine Lösung wie ich das loggen lassen kann?
Grüße
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

DS_Starter

Oder du verwendest das Attribut userReadings ( https://fhem.de/commandref_DE.html#userReadings ) in deinem Device.

Aber der Hinweis von rabehd ist einfacher und direkt umzusetzen.
ESXi@NUC+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

Gear

Okey, super, vielen Dank!
Ich hab das nun so gemacht:
set <LogDB> addLog Device:Reading

Die Idee mit den Userreadings ist auch eine gute, nur in meinem Fall unpraktisch, da ich die Userreading nicht in allen Devices extra reinschreiben will, bzw. extra ein Notify machen, welches das reinschreibt.

Aber beide lösungswege sind realisierbar! =)

Wünsche euch einen schönen Tag!
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <