Skip to main content

Import E.ON W1000 energy meter data to Home Assistant with Spook integration

Workflow preview

Workflow preview
100%
Import E.ON W1000 energy meter data to Home Assistant with Spook integration preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

UPDATES: 2025 12 03 fix JS code in node E.ON W1000 → n8n → Home Assistant (Spook) “Integration” This workflow processes emails from the E.ON portal containing 15 minute (import/export) data and dai...

Best for

  • File Management automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.extractfromfile, n8n-nodes-base.renamekeys, n8n-nodes-base.gmail, n8n-nodes-base.aggregate, n8n-nodes-base.splitout, n8n-nodes-base.merge, n8n-nodes-base.code, n8n-nodes-base.homeassistant

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by András Farkas.

Original n8n.io source

1.1 Workflow description

Title
Import E.ON W1000 energy meter data to Home Assistant with Spook integration
Workflow name
Import E.ON W1000 energy meter data to Home Assistant with Spook integration

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)
  • (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

  1. 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

  1. 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.

  1. 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.

  1. 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

  1. importing the workflow

    • In n8n → WorkflowsImport from File/Clipboard → paste the JSON.
    • Select the downloaded JSON and paste it into a new workflow using Ctrl+V.
  2. 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.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Extract from File

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1

Block 2 - Rename "*_1" keys for merge

Type / Role
n8n-nodes-base.renameKeys - renameKeys
Config choices
Version 1

Block 3 - Get last 5 messages

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 4 - Aggregate_id

Type / Role
n8n-nodes-base.aggregate - aggregate
Config choices
Version 1

Block 5 - Get a message[0]

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 6 - Rename "*_1" keys for merge1

Type / Role
n8n-nodes-base.renameKeys - renameKeys
Config choices
Version 1

Block 7 - Rename "*_1" keys for merge2

Type / Role
n8n-nodes-base.renameKeys - renameKeys
Config choices
Version 1

Block 8 - Extract default data from source (+A)

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 9 - Extract '*_1' data from source (-A)

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 10 - Extract '*_2' data from source (1_8_0)

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 11 - Extract '*_3' data from source (2_8_0)

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 12 - Merge (+A; -A)

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 13 - Rename "*_1" keys for merge3

Type / Role
n8n-nodes-base.renameKeys - renameKeys
Config choices
Version 1

Block 14 - Merge (+A; -A)1

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 15 - Merge (+A; -A)2

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 16 - Calculate hourly sum and

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Spook: update +A hitorical data1

Type / Role
n8n-nodes-base.homeAssistant - homeAssistant
Config choices
Version 1

Block 18 - Spook: update -A hitorical data1

Type / Role
n8n-nodes-base.homeAssistant - homeAssistant
Config choices
Version 1

Block 19 - Generate 1_8_0 list for stats

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 20 - Generate 2_8_0 list for stats

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 21 - Generate 1_8_0 stats

Type / Role
n8n-nodes-base.aggregate - aggregate
Config choices
Version 1

Block 22 - Generate 2_8_0 stats

Type / Role
n8n-nodes-base.aggregate - aggregate
Config choices
Version 1

Block 23 - Update input_number.exportt entity state1

Type / Role
n8n-nodes-base.homeAssistant - homeAssistant
Config choices
Version 1

Block 24 - Update input_number.import entity state1

Type / Role
n8n-nodes-base.homeAssistant - homeAssistant
Config choices
Version 1

Showing the first 24 of 46 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Import E.ON W1000 energy meter data to Home Assistant with Spook integration
Complexity advanced
Nodes 46
Categories File Management
Author András Farkas
Published 27 Sept 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/9010/9010.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Import E.ON W1000 energy meter data to Home Assistant with Spook integration do?

UPDATES: 2025 12 03 fix JS code in node E.ON W1000 → n8n → Home Assistant (Spook) “Integration” This workflow processes emails from the E.ON portal containing 15 minute (import/export) data and dai...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your File Management use case.