FHEM+Sonoff POW+DBlog

Begonnen von BlauesLicht, 02 April 2018, 14:28:33

Vorheriges Thema - Nächstes Thema

BlauesLicht

Hallo Freunde der Sonne,
meine kleine Anlage läuft aktuell soweit und ich habe nur zwei kleine Fragen zum Werte speichern in der Datenbank.
Zum einen ist es so, dass bei jedem neuen JSON der vom POW kommt, ein neues Event erzeugt wird. Das führt dazu, dass jedesmal ein Eintrag in die Datenbank wandert - auch wenn er sich nicht geändert hat. Ein "event-on-change-reading" auf Power führt dazu, das keine Daten mehr in die Datenbank wandern. Dann scheint er nichts mehr zu lesen.
Die zweite Frage ist: Wie bekomme ich es hin, dass FHEM am Tagesende den Tagesertrag "Today" und den Gesamtertrag "Total" einmalig in der Datenbank ablegt?
Hier meine listing:

Internals:
   IODev      Mosquitto
   NAME       Solar
   NR         104
   STATE      aktuell: 376W Spannung: 236V Strom: 1.580A heute: 1.798Kw/h  gestern: 1.001Kw/h Total: 11.218Kw/h
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       ENERGY_Power:
         myDbLog:
           TIME       1522671965.96672
           VALUE      376
       state:
         myDbLog:
           TIME       1522644626.18357
           VALUE      ON
   READINGS:
     2018-04-02 14:26:05   ENERGY_Current  1.58
     2018-04-02 14:26:05   ENERGY_Factor   1
     2018-04-02 14:26:05   ENERGY_Period   1
     2018-04-02 14:26:05   ENERGY_Power    376
     2018-04-02 14:26:05   ENERGY_Today    1.798
     2018-04-02 14:26:05   ENERGY_Total    11.218
     2018-04-02 14:26:05   ENERGY_Voltage  236
     2018-04-02 14:26:05   ENERGY_Yesterday 1.001
     2018-04-02 14:26:05   POWER           on
     2018-04-02 14:26:05   Sensor          {"Time":"2018.04.02 13:26:06","ENERGY":{"Total":11.218,"Yesterday":1.001,"Today":1.798,"Period":1,"Power":376,"Factor":1.00,"Voltage":236,"Current":1.580}}
     2018-04-02 14:26:05   Status          {"Time":"2018.04.02 13:26:06","Uptime":"2 04:20:13","Vcc":3.229,"POWER":"ON","Wifi":{"AP":1,"SSId":"XXX","RSSI":XX,"APMac":"XXX"}}
     2018-04-02 14:26:05   Time            2018.04.02 13:26:06
     2018-04-02 14:26:05   Uptime          2 04:20:13
     2018-04-02 14:26:05   Vcc             3.229
     2018-04-02 14:26:05   Wifi_AP         1
     2018-04-02 14:26:05   Wifi_APMac      XXX
     2018-04-02 14:26:05   Wifi_RSSI       XX
     2018-04-02 14:26:05   Wifi_SSId       XXX
     2018-04-02 06:50:26   state           ON
     2018-04-02 14:26:05   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      /Smarthome/Garage/solar/cmnd/power
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     /Smarthome/Garage/solar/SENSOR
     /Smarthome/Garage/solar/STATE
     /Smarthome/Garage/solar/POWER
   subscribeExpr:
     ^\/Smarthome\/Garage\/solar\/SENSOR$
     ^\/Smarthome\/Garage\/solar\/STATE$
     ^\/Smarthome\/Garage\/solar\/POWER$
   subscribeReadings:
     /Smarthome/Garage/solar/POWER:
       cmd       
       name       state
     /Smarthome/Garage/solar/SENSOR:
       cmd       
       name       Sensor
     /Smarthome/Garage/solar/STATE:
       cmd       
       name       Status
Attributes:
   DbLogInclude ENERGY_Power,state
   IODev      Mosquitto
   alias      Solar
   devStateIcon on:rc_GREEN:off off:rc_RED:on
   eventMap   ON:on OFF:off
   icon       weather_sun
   publishSet on off /Smarthome/Garage/solar/cmnd/power
   room       Solar-PV
   stateFormat {sprintf("aktuell: %.0fW Spannung: %.0fV Strom: %.3fA heute: %.3fKw/h  gestern: %.3fKw/h Total: %.3fKw/h", ReadingsVal($name,"ENERGY_Power",0), ReadingsVal($name,"ENERGY_Voltage",0), ReadingsVal($name,"ENERGY_Current",0), ReadingsVal($name,"ENERGY_Today",0), ReadingsVal($name,"ENERGY_Yesterday",0), ReadingsVal($name,"ENERGY_Total",0))}
   subscribeReading_Sensor /Smarthome/Garage/solar/SENSOR
   subscribeReading_Status /Smarthome/Garage/solar/STATE
   subscribeReading_state /Smarthome/Garage/solar/POWER
   webCmd     on:off

DeeSPe

"state" ist nicht "STATE"!

"STATE" wird aus den jeweiligen Readings nur zusammengesetzt.
Also musst Du auch die jeweiligen Readings in "event-on-....-reading" berücksichtigen.

Also z.B.:
attr <name> event-on-change-reading ENERGY_Voltage,ENERGY_Voltage,ENERGY_Current,ENERGY_Today,ENERGY_Yesterday,ENERGY_Total

Gruß
Dan

P.S. Schau Dir aber auch mal "DbLogInclude" und "DbLogExclude" an.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe