Neo coolcam plugs - This device is buggy and sends large negative Meter Reports from time to time

I have been using Neo coolcam plugs without any issues for a while. Now when I ad one each one gives the notification “This device is buggy and sends large negative Meter Reports from time to time.”
How can I solve this (I am a newby)

There is known issue with them. They do send negative energy values from time to time.
You can read this to know more.
There is a workaround. Creating a sensor template and use that as your reading sensor.

Example:

  - sensor:
      - name: "Correct energy sensor"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neocoolcam_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

But read the stuff first, so you understand why and how…

Thank you for your reply! I will try this.

1 Like

If you are lucky and your neo coolcam plug has a esp inside you actually can fix this installing a custom (proper) firmware like esphome. :rocket:

When you plug is a black box (z-technology) on the other hand you need to work with the work’a’round to don’t end up with complete garbage measurements. :tired_face:

Thanks, google tells this is only done with the Wifi plugs. I am using Zwave.

1 Like

Then you are stuck with the what the seller shipped to you (hardware&software) and are dependent on the goodwill of the manufacturer to get any updates. :bug:

Typically manufacturers prefer not to fix bugs in old products but instead release new ones which they can sell again :moneybag:

The right to repair is not present in products which don’t allow you to run your own *ware :man_shrugging:

then I just have to deal with it. Use fibaro were I want to know the electric consumption, the neo coolcam were i want only use the switch.

Thanks!

You can still use the Neo for consumption with the above mentioned workaround.

I am trying to add this to HA but I am doing something wrong. I copy and pasted it in the configeration.yalm but this gives errors. Were do I need to paste it? Sorry for maybe a stupid question but I am new to this and ready to learn :-).

Example copy from my configuration.yaml:

# Templates
template:
  - sensor:
      - name: "NeoPlugNAS OK Energy"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neoplugnas_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

Thanks! I was missing :

Templates

template:

For my learning, how does HA now knows which plug is a Neo coolcam? Or do I need to make a new “sensor” for each plug and replace “sensor.neoplugnas_electric_consumption_kwh” with the name of that plug?

This is, how it looks with 4 of them:

# Templates
template:
  - sensor:
      - name: "NeoPlugNAS OK Energy"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neoplugnas_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

  - sensor:
      - name: "NeoPlugJacuzzi OK Energy"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neoplugjacuzzi_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

  - sensor:
      - name: "NeoPlugVaatwasser OK Energy"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neoplugvaatwasser_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

  - sensor:
      - name: "NeoPlugHA OK Energy"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        state: >-
          {% set value = states('sensor.neoplugha_electric_consumption_kwh') | float(0) %}
          {% set const = 21474836.47 %}
          {% if value < 0 %}{{ (value + const) | round(2) }}
          {% else %}{{ value }}
          {% endif %}

:wink: yes, you make a new template sensor for each Neo.

1 Like

Thank you!!! , mijn dank is groot. Ik ga hier mee aan de slag!!

Is it also possible to make this work to set high number to 0? I have daily a lot of peaks that I manualy set to 0. Could a sensor make a change if the kWh is higher than 5 than set to 0?
This would keep the energy dashbord clean from the start.

I would like to hear from someone, how to enhance this sensor to cut the peaks off. All in one, would be perfect.
But I actually do not know any about writing templates, I just em capable of finding info and use it :smiley:
So for this, we will need help from some higher experienced mates.

Groetjes uit Amsterdam :wink: