zibous / ha-watermeter

Data provider for smartmeter watermeter.
GNU General Public License v3.0
157 stars 27 forks source link

Month and last month ? #37

Closed patmtp35 closed 5 months ago

patmtp35 commented 5 months ago

hi,

worki,g like a charm since 2 weeks, but some thing strange, as we pass on ferbruary, watermonth , last month and water display last month dosen't change . any idea ?

image

zibous commented 5 months ago

The following reasons could be:

see:

## ---------------------------------------------------
## SNTP COMPONENT
## ---------------------------------------------------
time:
  - platform: sntp
    id: time_sntp
    timezone: Europe/Berlin
    servers:
      - !secret local_sntp
      - 0.at.pool.ntp.org
      - 0.pool.ntp.org
   ....... 

I would take a look at the log to see whether you receive data and how it is processed.

  ## logger settings
  log_level: "DEBUG"   # not that logging need memory, so in production mode use "WARN"
  log_wmbus: "VERBOSE"  # Loglevel for wmbus meters component
  log_baudrate: "0"   # use 115200 to enable serial UART port logging.

The status "Waterdisplay lastmonth" comes from the water meter and if it is 0, then it doesn't have it or you don't get any data.

    # get the last month total watermter m3 from the wmbus telegram
    last_month_total_water_m3:
      name: "Wasseruhr Anzeige letzter Monat"
      id: "waterdisplay_lastmonth"
      unit_of_measurement: "m³"
      state_class: total_increasing
      device_class: "water"
      accuracy_decimals: 3
      icon: mdi:counter

Can you see the update for the water_per_day (graph Homeassistant) ?

Bildschirmfoto 2024-02-04 um 15 05 13
patmtp35 commented 5 months ago

yes i could see : image

the only thing i modifiy is : timezone: Europe/Paris

image

image

zibous commented 5 months ago

the only thing i modifiy is : timezone: Europe/Paris

Ok. that is possible. So you get data from your watermeter and the SNTP COMPONENT scripts are working. Calculation for history data:

   id(current_value) = float(id(waterdisplay).state-id(last_value)) * 1000.00;
   id(hour_value)+=id(current_value);
   id(daily_value)+=id(current_value);
   id(week_value)+=id(current_value);
   id(year_value)+=id(current_value);

The status Waterdisplay lastmonth and current_month_total_water_l comes from the water meter telegram. if this value is 0, the telegram do not has this.

izar
    total_water_m3
    last_month_total_water_m3
    current_month_total_water_l
    transmit_period_s
    remaining_battery_life_y
    current_alarms
    previous_alarms

see: https://github.com/SzczepanLeon/esphome-components Your watermeter dme07 only has the total_water_m3.

But you could also do this for the month using the same method I use to determine hour, day, week and year values.

patmtp35 commented 5 months ago

very good that's what I thought my WATERMETER being different the telegram is not the same as yours, I'm going to do the calculation via home assistant. Thank you again for your help !

zibous commented 5 months ago

very good that's what I thought my WATERMETER being different the telegram is not the same as yours, I'm going to do the calculation via home assistant.

Yes this is the best way 👍