Jeg bruker rest commands til å sende timeprisene til emhass api. Du kan lese mer om rest kommandoer her: https://www.home-assistant.io/integrations/rest_command/
Du kan få problemer nå du kopierer disse kommandoene som jeg limer inn til template editor. Jeg har opplevd at Visual Studio Code endrer på anførselstegnene " "og single ticks slik at template edit og emhass ikke godtar kommandoene. Hvis du opplever det kan File editor være bedre å bruke da den ikke fikser på slike tegn. Dobbelsjekk derfor min kode med hva som står i template editor. Dette er et vanlig problem de feste sliter med.
Du kan også bruke shell command https://www.home-assistant.io/integrations/shell_command/ istedenfor rest commands. Fordelen med rest command er at den gir mere tilbakemelding i loggen.
I emhass dokumentasjonen er det et eksempel hvordan bruke shell kommand til å legge inn timepriser fra Nordpool https://emhass.readthedocs.io/en/latest/forecasts.html#passing-your-own-forecast-data. Entsoe går fint også men test i template editor først før du sender data til emhass.
rest_command:
ml_forecast_fit:
url: http://localhost:5000/action/forecast-model-fit
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"days_to_retrieve": 60,
"num_lags": 24
}
ml_forecast_tune:
url: http://localhost:5000/action/forecast-model-tune
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
}
trigger_nordpool_forecast:
url: http://localhost:5000/action/dayahead-optim
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"load_cost_forecast":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},
"prod_price_forecast":{{((state_attr('sensor.nordpool_uten_avgifter', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool_uten_avgifter', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}},
"def_total_hours":{{states('sensor.list_operating_hours_of_each_deferrable_load')}}
}
publish_data:
url: http://localhost:5000/action/publish-data
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{"custom_deferrable_forecast_id": [
{"entity_id": "sensor.p_deferrable0","unit_of_measurement": "W", "friendly_name": "Varmtvannsbereder"},
{"entity_id": "sensor.p_deferrable1","unit_of_measurement": "W", "friendly_name": "Varmekabel stue og kjøkken"},
{"entity_id": "sensor.p_deferrable2","unit_of_measurement": "W", "friendly_name": "Varmekabel bad1etg"},
{"entity_id": "sensor.p_deferrable3","unit_of_measurement": "W", "friendly_name": "Varmekabel bad2etg"},
{"entity_id": "sensor.p_deferrable4","unit_of_measurement": "W", "friendly_name": "Varmekabel gang"},
{"entity_id": "sensor.p_deferrable5","unit_of_measurement": "W", "friendly_name": "Varmepumpe"},
{"entity_id": "sensor.p_deferrable6","unit_of_measurement": "W", "friendly_name": "Easee lader"}
]}
trigger_mpc_0600_forecast:
url: http://localhost:5000/action/naive-mpc-optim
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"load_cost_forecast":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},
"prod_price_forecast":{{((state_attr('sensor.nordpool_uten_avgifter', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool_uten_avgifter', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}},
"def_total_hours": [1, 1, 1, 1, 1, 5, 0],
"prediction_horizon": 6
}
trigger_mpc_1200_forecast:
url: http://localhost:5000/action/naive-mpc-optim
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"load_cost_forecast":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},
"prod_price_forecast":{{((state_attr('sensor.nordpool_uten_avgifter', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool_uten_avgifter', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}},
"def_total_hours": [2, 0, 0, 0, 0, 3, 1],
"prediction_horizon": 6
}
trigger_mpc_1800_forecast:
url: http://localhost:5000/action/naive-mpc-optim
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"load_cost_forecast":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},
"prod_price_forecast":{{((state_attr('sensor.nordpool_uten_avgifter', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool_uten_avgifter', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}},
"def_total_hours": [2, 1, 1, 1, 1, 3, 1],
"prediction_horizon": 6
}
trigger_mpc_0000_forecast:
url: http://localhost:5000/action/naive-mpc-optim
method: POST
content_type: "application/json"
timeout: 300
payload: >-
{
"load_cost_forecast":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},
"prod_price_forecast":{{((state_attr('sensor.nordpool_uten_avgifter', 'raw_today') | map(attribute='value') | list + state_attr('sensor.nordpool_uten_avgifter', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}},
"def_total_hours": [2, 0, 0, 0, 0, 0, 2],
"prediction_horizon": 6
}
Når Rest kommandoer ikke får tilbakemelding om at alt er ok fra emhass server logger den til Home Assistant loggen mener jeg. Dette er grunnen til at jeg bruker rest kommandoer istedenfor shell kommand som brukes i dokumentasjonen. Så hvis strømpriser ikke oppdateres får du en melding i loggen. Hvis andre sensorer detter ut får du meldinger av Home Assistant i loggen.
Emhass addon logger til sin egen logg som du kan finne i Settings->System->Logs. Du kan søke i den etter error eller warning.
Dette må automatiseres utenom.
1) Du kan f.eks bruke PowerWiz til dette: https://theawesomegarage.com/blog/powerwiz-for-home-assistant-control-your-power . Har ikke prøvd det selv, men ser lovende ut
2) Du kan også bruke Home Assistant automatisering som du ser her: https://github.com/kimmilde/home-assistant
3) Du kan også bruke et Pyscript https://github.com/custom-components/pyscript som Stigvi har laget. Du finner mer om dette her:
Du må nok ha strømmåling. Jeg bruker en Fibaro wallplug på varmepumpen, en Aeotec Heavy Duty Switch til varmtvannsberederen.
Er ikke noe ekspert på dette, men jeg mener nominell effekt er den høyeste wattstyrken som varmepumpen kan oppnå. Dette kan du finne i manualen eller bruke en strømplugg til å måle den høyeste effekten varmepumpen har.
Det er iallefall det jeg setter inn for min varmepumpe som har nominell effekt på 3000 Watt
- nominal_power_of_deferrable_loads: 3000