UPDATES: 2025-12-03 fix JS code in calculate hourly sum node 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_import and sensor.grid_energy_export , and sets the current meter readings for the entities input_number.grid_import_meter and input_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 setting button. 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-In DP_1-1:1.8.0*0 Active Power Consumption Daily Reading DP_1-1:2.8.0*0 Active Power Feed-In Daily Reading Export sending frequency : daily Days 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. Home Assistant Preparation Create the following input_number entities in configuration.yaml or 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_sensor entities in configuration.yaml or 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_sensor entities 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.