Energy Dashboard integration with Neurio/Generac PWRcell system

I’ve had the Neurio home power monitor installed in my power cabinet since 2015, and have seen its integration with HA come and go. Every six months or so I try to get it working properly, and it’s about that time again :slight_smile:

Despite a change mentioned in the 2022.2 release (“Use new enums in neurio_energy (@epenet 6 - #61953) (neurio_energy docs 3)”), it has been years since the official integration has worked despite me confirming the appropriate api keys etc a number of times, being able to see the sensor results on the PWRview website etc. (I am not alone in this, and I’m not sure if anyone is currently using a working version of this plugin).

Instead of retrieving the information from the PWRview website, I instead have been retrieving it directly from the local sensor, following Bobby’s very helpful examples in this thread and am currently using this configuration in my configuration.yaml:

- platform: rest
  resource: http://192.168.0.169/current-sample
  name: neurio_raw
  scan_interval: 5
  value_template: '{{ value_json.state }}'
  json_attributes:
    - channels
- platform: template
  scan_interval: 5
  sensors:
    realtime_consumption:
      friendly_name: "Consumption"
      device_class: power
      unit_of_measurement: W
      value_template: "{{ (states.sensor.neurio_raw.attributes.channels.1.p_W) }}"
    consumption_imported:
      unit_of_measurement: W
      value_template: "{{ states.sensor.neurio_raw.attributes.channels.1.eImp_Ws }}"
    current_mains_voltage:
      friendly_name: "House Voltage"
      unit_of_measurement: V
      value_template: "{{ states.sensor.neurio_raw.attributes.channels.1.v_V }}"  
    calculated_consumption:
      friendly_name: 'Daily Consumption'
      unit_of_measurement: 'kWh'
      value_template: "{{ ((states('sensor.consumption_imported') | float - states('input_number.consumption_at_midnight') | float) / 3600000) | round(2) }}"
    calculated_net:
      friendly_name: 'Net Consumption'
      unit_of_measurement: 'kWh'
      value_template: "{{ (states('sensor.calculated_consumption') | float - states('sensor.calculated_generation') | float) | round(2) }}"

While I can then create a custom dashboard card using my neurio_raw output which shows my current realtime power consumption as well as daily consumption, current voltage etc, I find it annoying that I am unable to use the neurio power monitor as an input for the Energy Dashboard which would seem to have been created for just this purpose despite having both the Neurio api information filled in correctly and working direct Home Assistant access to the required sensors.

Is there some way to configure the neurio_raw power sensors within HA so that they can be accepted as a valid Energy Dashboard input?

1 Like

I’ve been using something very similar. However, I’ve proven it is causing tons of json warnings. I think it is because of the new rest format. I’m trying to sort thru a new format.

It looks like the latest update has broken the local workaround: in 2022.8.2 my rest platform neurio sensor is considered an error (as is the official neurio sensor) and both have to be commented out before a system restart is allowed.
It’s such a shame - despite the new focus on home energy tracking with Home Assistant, I can’t use a working local energy meter which supplies energy stats in real time on a local IP address in plain text.

Mine too. I’m not sure which update but it has to have been very recent. With mine the checker doesn’t return an error but I do fill up the log with lots of errors and have no data.

My errors:
Logger: homeassistant.helpers.template
Source: helpers/template.py:537
First occurred: 9:39:57 PM (24 occurrences)
Last logged: 9:44:57 PM

Template variable error: None has no element 1 when rendering '{{ state_attr('sensor.neurio_raw', 'channels')[1].p_W }}'
Template variable error: None has no element 2 when rendering '{{ state_attr('sensor.neurio_raw', 'channels')[2].p_W }}'
Template variable error: None has no element 0 when rendering '{{ state_attr('sensor.neurio_raw', 'channels')[0].p_W }}'
Template variable error: None has no element 2 when rendering '{{ state_attr('sensor.neurio_raw', 'channels')[2].v_V }}'

I’m going to try downgrading to see. Thanks for the heads up on 2022.8.2. Hopefully this is a fixable bug.

I’ve been doing a lot of changes recently. Mine is running OK on VBOX with 2022.8.6 but is not running on a QNAP VM. Same everything except the VM. IDK what is up yet, still digging.
This is my my sensor.yaml

 ###   Energy   Neurio ###

  - platform: rest
    resource: http://my.ip.address.here/current-sample
    name: neurio_raw
    scan_interval: 5
    value_template: "OK"
    json_attributes:
      - channels

  - platform: template
    scan_interval: 5
    sensors:
      realtime_consumption_a:
        friendly_name: "Phase A Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[0].p_W }}"
      realtime_consumption_b:
        friendly_name: "Phase B Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[1].p_W }}"
      realtime_consumption:
        friendly_name: "Total Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[2].p_W }}"
      house_voltage:
        friendly_name: 'Voltage'
        device_class: voltage
        unit_of_measurement: V
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[2].v_V }}"

  - platform: integration
    source: sensor.realtime_consumption
    name: real_energy

I have mine working on 2022.8.6 with this.

###   Energy   Neurio ###

  - platform: rest
    resource: http://xxx.xxx.xxx.xxx/current-sample
    name: neurio_raw
    scan_interval: 5
    value_template: "OK"
    json_attributes:
      - channels

  - platform: template
    scan_interval: 5
    sensors:
      realtime_consumption_a:
        friendly_name: "Phase A Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[0].p_W }}"
      realtime_consumption_b:
        friendly_name: "Phase B Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[1].p_W }}"
      realtime_consumption:
        friendly_name: "Total Power"
        device_class: power
        unit_of_measurement: W
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[2].p_W }}"
      house_voltage:
        friendly_name: 'Voltage'
        device_class: voltage
        unit_of_measurement: V
        value_template: "{{ state_attr('sensor.neurio_raw', 'channels')[2].v_V }}"

  - platform: integration
    source: sensor.realtime_consumption
    name: real_energy
1 Like

Awesome. Thanks for that - I now have a working current power usage graph again. Not sure if I can incorporate it into the Energy Dashboard, but that’s an issue for another day :slight_smile:

1 Like

Mine is. The last 3 lines are needed to get it in the Energy Dashboard.

Great - got it working now (I had a slight naming mismatch with yours due to different phase numbers).
Thanks to your help I now have a fully working Neurio solution for the first time in years.

1 Like

Great information here, thanks.

Unfortunately, Im doing something wrong, while I can see the entity neurio_raw it doesnt really provide any info. Also, in the energy dashboard im only able to add sensor.real_energy which hassio complains that the Entity is not defined. Could my sensors be different from yours? for instance I have 5 channels when I hit the ip/current-sample?

Thanks for any help