Import E.ON W1000 energy meter data to Home Assistant with Spook integration
DISCOUNT 20%
UPDATES:
- 2025-12-03 fix JS code in
calculate hourly sumnode
E.ON W1000 → n8n → Home Assistant (Spook) “Integration”
This workflow processes emails from the E.ON portal containing 15-minute +A -A (import/export) data and daily 1.8.0 2.8.0 meter readings.
It extracts the required columns from the attached XLSX file, groups the 15-minute values by hour, then:
- updates the Spook/Recorder statistics under the IDs
sensor.grid_energy_importandsensor.grid_energy_export, and - sets the current meter readings for the entities
input_number.grid_import_meterandinput_number.grid_export_meter.
> You may need to modify the workflow if there are changes in how E.ON sends scheduled exports. If the exported data format changes, please report it on Github!
Requirements
- n8n (cloud or self-hosted)
- HACS addon available here: Rbillon59/home-assistant-addons
- Official n8n Docker Compose template
- Simplified n8n Docker Compose template available on Github
- (For Gmail) Gmail API authentication (OAuth2) read-only email access to the account receiving the messages
- Setup guide available here
- (For IMAP) IMAP provider credentials
- Home Assistant access via Long-Lived Access Token or API key
- Setup guide available here
- Spook integration
- Documentation and installation guide available here
E.ON Portal Setup
- Create a scheduled export on the E.ON portal with the following parameters:
- Under the Remote Meter Reading menu, click on the
+ new scheduled export settingbutton.Specify POD identifier(s): choose one of the PODs you want to query.Specify meter variables: select the following:+A Active Power Consumption-A Active Power Feed-InDP_1-1:1.8.0*0 Active Power Consumption Daily ReadingDP_1-1:2.8.0*0 Active Power Feed-In Daily Reading
Export sending frequency: dailyDays of historical data to include: recommended 7 days to backfill missed data.Email subject: by default, use[EON-W1000]. If processing multiple PODs with the workflow, give each a unique identifier.
- Under the Remote Meter Reading menu, click on the
Home Assistant Preparation
- Create the following
input_numberentities inconfiguration.yamlor via Helpers:
input_number:
grid_import_meter:
name: grid_import_meter
mode: box
initial: 0
min: 0
max: 9999999999
step: 0.001
unit_of_measurement: kWh
grid_export_meter:
name: grid_export_meter
mode: box
initial: 0
min: 0
max: 9999999999
step: 0.001
unit_of_measurement: kWh
> If you name the entities differently, make sure to reflect these changes in the workflow.
- Create the following
template_sensorentities inconfiguration.yamlor via Helpers:
input_number:
grid_import_meter:
name: grid_import_meter
mode: box
initial: 0
min: 0
max: 9999999999
step: 0.001
unit_of_measurement: kWh
grid_export_meter:
name: grid_export_meter
mode: box
initial: 0
min: 0
max: 9999999999
step: 0.001
unit_of_measurement: kWh
>If you name the entities differently, make sure to reflect these changes in the workflow.
- create the following
template_sensorentities in config.yaml or via Helpers:
template:
- sensor:
- name: "grid_energy_import"
state: "{{ states('input_number.grid_import_meter') | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- name: "grid_energy_export"
state: "{{ states('input_number.grid_export_meter') | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
> If you name the entities differently, make sure to reflect these changes in the workflow.
n8n import and authentication
importing the workflow
- In n8n → Workflows → Import from File/Clipboard → paste the JSON.
- Select the downloaded JSON and paste it into a new workflow using Ctrl+V.
Set up n8n Credentials The credentials must be configured in the Home Assistant and Gmail nodes. The setup process is described in the Requirements section.