Files
EOS/docs/_generated/configadapter.md
T
Bobby NoelteandGitHub 7e5aa2f218
Bump Version / Bump Version Workflow (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
docker-build / platform-excludes (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Run Pytest on Pull Request / test (push) Has been cancelled
docker-build / build (push) Has been cancelled
docker-build / merge (push) Has been cancelled
Close stale pull requests/issues / Find Stale issues and PRs (push) Has been cancelled
feat: add Tibber feed-in tariff provider (#1189)
The `FeedInTariffTibber` provider requests `priceInfo` and `priceInfoRange` with
`resolution: QUARTER_HOURLY` and preserves the native 15-minute timestamps. It uses Tibber's
`energy` spot-price component without the `tax` part or EOS electricity-price charges. The
end-customer `total` component is deliberately ignored.

The provider deliberately rejects hourly API responses instead of silently repeating them. It
reuses `elecprice.tibber.access_token` and `elecprice.tibber.home_id`, so no duplicate credentials
are needed.

Signed-off-by: Andreas Schmitz <akkudoktor.net>
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2026-07-24 15:52:26 +02:00

8.6 KiB
Raw Blame History

Adapter Configuration

:::{table} adapter :widths: 10 20 10 5 5 30 :align: left

Name Environment Variable Type Read-Only Default Description
homeassistant EOS_ADAPTER__HOMEASSISTANT HomeAssistantAdapterCommonSettings rw required Home Assistant adapter settings.
nodered EOS_ADAPTER__NODERED NodeREDAdapterCommonSettings rw required NodeRED adapter settings.
provider EOS_ADAPTER__PROVIDER `list[str] None` rw None
providers list[str] ro N/A Available adapter provider ids.
:::

Example Input

   {
       "adapter": {
           "provider": [
               "HomeAssistant"
           ],
           "homeassistant": {
               "config_entity_ids": null,
               "load_emr_entity_ids": null,
               "grid_export_emr_entity_ids": null,
               "grid_import_emr_entity_ids": null,
               "pv_production_emr_entity_ids": null,
               "device_measurement_entity_ids": null,
               "device_instruction_entity_ids": null,
               "solution_entity_ids": null
           },
           "nodered": {
               "host": "127.0.0.1",
               "port": 1880
           }
       }
   }

Example Output

   {
       "adapter": {
           "provider": [
               "HomeAssistant"
           ],
           "homeassistant": {
               "config_entity_ids": null,
               "load_emr_entity_ids": null,
               "grid_export_emr_entity_ids": null,
               "grid_import_emr_entity_ids": null,
               "pv_production_emr_entity_ids": null,
               "device_measurement_entity_ids": null,
               "device_instruction_entity_ids": null,
               "solution_entity_ids": null,
               "homeassistant_entity_ids": [],
               "eos_solution_entity_ids": [],
               "eos_device_instruction_entity_ids": []
           },
           "nodered": {
               "host": "127.0.0.1",
               "port": 1880
           },
           "providers": [
               "HomeAssistant",
               "NodeRED"
           ]
       }
   }

Common settings for the NodeRED adapter

The Node-RED adapter sends to HTTP IN nodes.

This is the example flow:

[HTTP In \<URL\>] -> [Function (parse payload)] -> [Debug] -> [HTTP Response]

There are two URLs that are used:

  • GET /eos/data_aquisition The GET is issued before the optimization.
  • POST /eos/control_dispatch The POST is issued after the optimization.

:::{table} adapter::nodered :widths: 10 10 5 5 30 :align: left

Name Type Read-Only Default Description
host `str None` rw 127.0.0.1
port `int None` rw 1880
:::

Example Input/Output

   {
       "adapter": {
           "nodered": {
               "host": "127.0.0.1",
               "port": 1880
           }
       }
   }

Common settings for the home assistant adapter

:::{table} adapter::homeassistant :widths: 10 10 5 5 30 :align: left

Name Type Read-Only Default Description
config_entity_ids `dict[str, str] None` rw None
The config key has to be given by a /-separated path
e.g. devices/batteries/0/capacity_wh
device_instruction_entity_ids `list[str] None` rw None
The device ids (resource ids) have to be prepended by 'sensor.eos_' to build the entity_id.
E.g. The instruction for device id 'battery1' becomes the entity_id 'sensor.eos_battery1'.
device_measurement_entity_ids `dict[str, str] None` rw None
eos_device_instruction_entity_ids list[str] ro N/A Entity IDs for energy management instructions available at EOS.
eos_solution_entity_ids list[str] ro N/A Entity IDs for optimization solution available at EOS.
grid_export_emr_entity_ids `list[str] None` rw None
grid_import_emr_entity_ids `list[str] None` rw None
homeassistant_entity_ids list[str] ro N/A Entity IDs available at Home Assistant.
load_emr_entity_ids `list[str] None` rw None
pv_production_emr_entity_ids `list[str] None` rw None
solution_entity_ids `list[str] None` rw None
The solution keys have to be prepended by 'sensor.eos_' to build the entity_id.
E.g. solution key 'battery1_idle_op_mode' becomes the entity_id 'sensor.eos_battery1_idle_op_mode'.
:::

Example Input

   {
       "adapter": {
           "homeassistant": {
               "config_entity_ids": {
                   "devices/batteries/0/capacity_wh": "sensor.battery1_capacity"
               },
               "load_emr_entity_ids": [
                   "sensor.load_energy_total_kwh"
               ],
               "grid_export_emr_entity_ids": [
                   "sensor.grid_export_energy_total_kwh"
               ],
               "grid_import_emr_entity_ids": [
                   "sensor.grid_import_energy_total_kwh"
               ],
               "pv_production_emr_entity_ids": [
                   "sensor.pv_energy_total_kwh"
               ],
               "device_measurement_entity_ids": {
                   "ev11_soc_factor": "sensor.ev11_soc_factor",
                   "battery1_soc_factor": "sensor.battery1_soc_factor"
               },
               "device_instruction_entity_ids": [
                   "sensor.eos_battery1"
               ],
               "solution_entity_ids": [
                   "sensor.eos_battery1_idle_mode_mode"
               ]
           }
       }
   }

Example Output

   {
       "adapter": {
           "homeassistant": {
               "config_entity_ids": {
                   "devices/batteries/0/capacity_wh": "sensor.battery1_capacity"
               },
               "load_emr_entity_ids": [
                   "sensor.load_energy_total_kwh"
               ],
               "grid_export_emr_entity_ids": [
                   "sensor.grid_export_energy_total_kwh"
               ],
               "grid_import_emr_entity_ids": [
                   "sensor.grid_import_energy_total_kwh"
               ],
               "pv_production_emr_entity_ids": [
                   "sensor.pv_energy_total_kwh"
               ],
               "device_measurement_entity_ids": {
                   "ev11_soc_factor": "sensor.ev11_soc_factor",
                   "battery1_soc_factor": "sensor.battery1_soc_factor"
               },
               "device_instruction_entity_ids": [
                   "sensor.eos_battery1"
               ],
               "solution_entity_ids": [
                   "sensor.eos_battery1_idle_mode_mode"
               ],
               "homeassistant_entity_ids": [],
               "eos_solution_entity_ids": [],
               "eos_device_instruction_entity_ids": []
           }
       }
   }