- Keskustelun aloittaja
- #201
Laitahan kokemuksiasi, kun joudatNyt on päivitetty uusimpaan deviin.

Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Laitahan kokemuksiasi, kun joudatNyt on päivitetty uusimpaan deviin.

Kertaatko vielä, että mikä olikaan se graafi/tieto, jonka halusit saada esille?Tässä nyt jotain käppyröitä, johon ei vielä päivitys ole vaikuttanut mitään.
Alakerta pe, la, su
katso liitettä 111102
48h taakseppäin
katso liitettä 111103
tänään
katso liitettä 111104
Yläkerta pe, la, su
katso liitettä 111105
48h taakseppäin
katso liitettä 111106
tänään
katso liitettä 111107
Pitäisi vähän yhtenäistää näitä käppyröitä, mutta en ole nyt jaksanut yhtään panostaa siihen.
Niinjoo, eli tavallaan voisi olla kiva tietää että minkä "setpointin" ML milloinkin valitsee. Eli pörssisähkön hinta ajanhetkenä ja mikä on ns. virtuaalinen sen hetkinen setpoint. Näin voisi vähän tarkkailla miten tuo toimii pörssisähkön kanssa. Näillä lähipäivien hinnoilla tuskin on kauheasti eroja setpointeissakaan, mutta eiköhän sieltä taas kohta tule isojakin heittoja päivän sisällä.Kertaatko vielä, että mikä olikaan se graafi/tieto, jonka halusit saada esille?
Nythän se ei muuta setpointtia. Se voisi olla suoraviivaisempi ratkaisu loggauksen ja debuggaamisen osalta. Katson illalla asiaa.Niinjoo, eli tavallaan voisi olla kiva tietää että minkä "setpointin" ML milloinkin valitsee. Eli pörssisähkön hinta ajanhetkenä ja mikä on ns. virtuaalinen sen hetkinen setpoint. Näin voisi vähän tarkkailla miten tuo toimii pörssisähkön kanssa. Näillä lähipäivien hinnoilla tuskin on kauheasti eroja setpointeissakaan, mutta eiköhän sieltä taas kohta tule isojakin heittoja päivän sisällä.
Tällaista? Aika marginaalinen muutos graafissa (22c -> 21,79c), mutta nythän tuo alkaa varautumaan klo 22.00 tapahtuvaan melko suhteellisesti isoon hinnan muutokseen alaspäin. Kyseinen graafi on tehty plotly:llä HA:ssa ja vaatii toki pääkontrolleriin muutokset, jotka eivät ole vielä gitissä.Niinjoo, eli tavallaan voisi olla kiva tietää että minkä "setpointin" ML milloinkin valitsee. Eli pörssisähkön hinta ajanhetkenä ja mikä on ns. virtuaalinen sen hetkinen setpoint. Näin voisi vähän tarkkailla miten tuo toimii pörssisähkön kanssa. Näillä lähipäivien hinnoilla tuskin on kauheasti eroja setpointeissakaan, mutta eiköhän sieltä taas kohta tule isojakin heittoja päivän sisällä.
Mulla on Airthings Wave+ anturina. Apollo Automationin Temp-1 tulossa postissa, niin saa tarkempaa (ehkä?) ja tiheämpää mittausta.@heebo1974 , mitä lämpöanturia käytätte? Meinaan vaan, kun jos anturin tarkkuus on ±0,5 astetta, niin sehän on käytännössä jo asteen heitto. Varmaankin tässä ML- ja varsinkin pörssisähkökäytössä on hyötyä, mitä tarkempi on lämpötilan mittaus. Kuin jos verrataan pelkkään tavoitelämpötilakäyttöön.
Minulla on noita kiinalaisia zigbee antureita muutamia eri malleja. Aion kuitenkin ostaa ruuvitagit näihin mittauksiin, sen takia että saan varmuutta. Nuo zigbee anturit jumiutuvat joskus ja ei auta kuin parittaa uudelleen. Normi käytössä ei mitään merkitystä, mutta säätökäytössä ei niinkään kiva ominaisuus.@heebo1974 , mitä lämpöanturia käytätte? Meinaan vaan, kun jos anturin tarkkuus on ±0,5 astetta, niin sehän on käytännössä jo asteen heitto. Varmaankin tässä ML- ja varsinkin pörssisähkökäytössä on hyötyä, mitä tarkempi on lämpötilan mittaus. Kuin jos verrataan pelkkään tavoitelämpötilakäyttöön.
Kahdesta pisteestä mäkin mittaan ja ulkolämmölle kolmesta (molemmat ilpit ja paikallisen observatorin arvot).MIetin muuten sellaistakin asiaa, että mittaisi esim. olohuoneesta kolmea eri pistettä. Tekisi template sensorin joka olisi noiden kaikkien kolmen keskiarvo ja tuota käyttäisi sitten ML säätölämpötilana.![]()
Mulla on Airthings Wave+ anturina. Apollo Automationin Temp-1 tulossa postissa, niin saa tarkempaa (ehkä?) ja tiheämpää mittausta.
Toki Airthingsin resoluutio on 0,1c, joka riittää. Tarkkuudesta en tiedä, mutta se riittää, että se on suhteellisesti tarkka. Ei tarvitse olla absoluuttisesti.
Toisen ilpin asetukset ovat tästä poistuneet. Toimiiko silti kahdella pumpulla, kunhan käyttää niitä vanhoja asetuksia ?Uusin versio dev-haarassa.
Nyt ei ole kuin puhelin matkassa, niin en pääse tarkastamaan. Ei ollut tarkoitus tiputtaa mitään pois.Toisen ilpin asetukset ovat tästä poistuneet. Toimiiko silti kahdella pumpulla, kunhan käyttää niitä vanhoja asetuksia ?
En tiedä mikä olisi järkevin tapa aina päivittää, mutta olen aina käynyt nuo alussa olevat asetukset "rivi riviltä" läpi ja muutellut.
Loppuhan on koko koodin kopiointi vain.
Päivittäminen hankaloitui, kun ei voi enää rivinumeroihin luottaa. Nyt en myöskään tiedä tuleeko nuo uudet ominaisuudet myös kakkospumpun asetuksiin, vai ovatko kenties globaaleja ?
Logger: homeassistant.helpers.template
Source: helpers/template/__init__.py:1750
First occurred: 12:20:42 (22 occurrences)
Last logged: 12:22:00
Template variable warning: 'dict object' has no attribute 'comfort' when rendering '{{value_json.comfort}}'
Template variable warning: 'dict object' has no attribute 'current_heating_setpoint' when rendering '{{ value_json.current_heating_setpoint }}'
Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select
Source: components/automation/__init__.py:799
integration: Automation (documentation, issues)
First occurred: 12:23:46 (2 occurrences)
Last logged: 12:23:52
Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select
Source: helpers/script.py:2064
integration: Automation (documentation, issues)
First occurred: 12:23:46 (4 occurrences)
Last logged: 12:23:52
Daikin demand control - P-säädin 22.5°C (select): Choose at step 2: choice 1: Error executing script. Error for call_service at pos 1: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Daikin demand control - P-säädin 22.5°C (select): Error executing script. Error for choose at pos 2: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Logger: homeassistant.helpers.event
Source: helpers/event.py:360
First occurred: 12:23:46 (2 occurrences)
Last logged: 12:23:52
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'pyscript.daikin_ml_params', 'sensor.faikout_stylish_outside'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=26>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'input_number.daikin_setpoint', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=26>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=26>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'pyscript.daikin_ml_params', 'sensor.faikout_stylish_outside'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=28>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'input_number.daikin_setpoint', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=28>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=28>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 684, in state
numerical_value = int(value)
ValueError: invalid literal for int() with base 10: 'unknown'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 687, in state
numerical_value = float(value)
ValueError: could not convert string to float: 'unknown'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 360, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1319, in _refresh
self.hass.async_run_hass_job(self._job, event, updates)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 357, in _handle_results
self.async_write_ha_state()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1024, in async_write_ha_state
self._async_write_ha_state()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1149, in _async_write_ha_state
self.__async_calculate_state()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1086, in __async_calculate_state
state = self._stringify_state(available)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1030, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 691, in state
raise ValueError(
...<5 lines>...
) from err
ValueError: Sensor sensor.daikin_ml_learned_demand has device class 'None', state class 'None' unit '%' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'unknown' (<class 'str'>)
Varmistan myöhemmin, että menikö nyt kuitenkin jotain vihkoon.Päivitin ja epäluuloisena aloin tutkia logeja ja törmäsin aika moneenkin herjaan:
Koodi:Logger: homeassistant.helpers.template Source: helpers/template/__init__.py:1750 First occurred: 12:20:42 (22 occurrences) Last logged: 12:22:00 Template variable warning: 'dict object' has no attribute 'comfort' when rendering '{{value_json.comfort}}' Template variable warning: 'dict object' has no attribute 'current_heating_setpoint' when rendering '{{ value_json.current_heating_setpoint }}'
Koodi:Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select Source: components/automation/__init__.py:799 integration: Automation (documentation, issues) First occurred: 12:23:46 (2 occurrences) Last logged: 12:23:52 Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Koodi:Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select Source: helpers/script.py:2064 integration: Automation (documentation, issues) First occurred: 12:23:46 (4 occurrences) Last logged: 12:23:52 Daikin demand control - P-säädin 22.5°C (select): Choose at step 2: choice 1: Error executing script. Error for call_service at pos 1: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100 Daikin demand control - P-säädin 22.5°C (select): Error executing script. Error for choose at pos 2: Option 61 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Koodi:Logger: homeassistant.helpers.event Source: helpers/event.py:360 First occurred: 12:23:46 (2 occurrences) Last logged: 12:23:52 Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'pyscript.daikin_ml_params', 'sensor.faikout_stylish_outside'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=26>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'input_number.daikin_setpoint', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=26>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=26>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=26> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>> Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'pyscript.daikin_ml_params', 'sensor.faikout_stylish_outside'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=28>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'input_number.daikin_setpoint', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=28>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=28>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=28> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>> Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 684, in state numerical_value = int(value) ValueError: invalid literal for int() with base 10: 'unknown' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 687, in state numerical_value = float(value) ValueError: could not convert string to float: 'unknown' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 360, in _async_dispatch_entity_id_event hass.async_run_hass_job(job, event) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job hassjob.target(*args) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1319, in _refresh self.hass.async_run_hass_job(self._job, event, updates) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job hassjob.target(*args) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 357, in _handle_results self.async_write_ha_state() ~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1024, in async_write_ha_state self._async_write_ha_state() ~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1149, in _async_write_ha_state self.__async_calculate_state() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1086, in __async_calculate_state state = self._stringify_state(available) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1030, in _stringify_state if (state := self.state) is None: ^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 691, in state raise ValueError( ...<5 lines>... ) from err ValueError: Sensor sensor.daikin_ml_learned_demand has device class 'None', state class 'None' unit '%' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'unknown' (<class 'str'>)
En ole aikoihin logeja katsellut, joten en osaa sanoa onko nämä tulleet aiemin.
Toisaalta vaikuttaisi silti, että homma toimii niinkuin ennenkin.
Niin monta sääennustuksiin liittyvää integraatiota, ettei muista enää itsekään, että mikä tarjosi mitäkin.Hmm.. Itsellälni ei jostain syystä ole tuota sensor.weather_forecast_hourly entityä ollenkaan ?
Käytössä on se perus HA:n weather home integraatio. Itselläni on HA englanninkielisenä, joten se on weather.home eikä weather.koti.
Kuvittelin, että se silti pitäisi ko. forecast hourly attribuutin sisällään, mutta en löydä sellaista.
katso liitettä 111138
Toisaalta silti tämän saa auki:
katso liitettä 111139
Sama on käytössä..Niin monta sääennustuksiin liittyvää integraatiota, ettei muista enää itsekään, että mikä tarjosi mitäkin.
Veikkaan tuon oleva met.no.
![]()
Meteorologisk institutt (Met.no)
Instructions on how to integrate Met.no within Home Assistant.www.home-assistant.io
Näyttää tutulta. Tässä loitsu configuration.yaml:IinSama on käytössä..
Veikkaan, että minun pitää jotenkin istuttaa tuo home sana tuohon sensoriin.
Tai siis en ole varma toimiiko tuo sensor.weather_forecast_hourly, mutta manuaalisesti en sellaista löydä.
Developer toolssilla sain tällaista irti:
katso liitettä 111140
template:
- trigger:
- platform: time_pattern
hours: /1
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.home
response_variable: hourly
sensor:
- name: Weather Hourly
state: "{{ states('weather.home') }}"
attributes:
temperature: "{{ state_attr('weather.home', 'temperature') }}"
dew_point: "{{ state_attr('weather.home', 'dew_point') }}"
temperature_unit: "{{ state_attr('weather.home', 'temperature_unit') }}"
humidity: "{{ state_attr('weather.home', 'humidity') }}"
cloud_coverage: "{{ state_attr('weather.home', 'cloud_coverage') }}"
pressure: "{{ state_attr('weather.home', 'pressure') }}"
pressure_unit: "{{ state_attr('weather.home', 'pressure_unit') }}"
wind_bearing: "{{ state_attr('weather.home', 'wind_bearing') }}"
wind_speed: "{{ state_attr('weather.home', 'wind_speed') }}"
wind_speed_unit: "{{ state_attr('weather.home', 'wind_speed_unit') }}"
visibility_unit: "{{ state_attr('weather.home', 'visibility_unit') }}"
precipitation_unit: "{{ state_attr('weather.home', 'precipitation_unit') }}"
forecast: "{{ hourly['weather.home'].forecast }}"
Ääh, ei toimi. Ei vaan hae mitään ja logiinkin tuli:Näyttää tutulta. Tässä loitsu configuration.yaml:Iin
Koodi:template: - trigger: - platform: time_pattern hours: /1 - platform: homeassistant event: start action: - service: weather.get_forecasts data: type: hourly target: entity_id: weather.home response_variable: hourly sensor: - name: Weather Hourly state: "{{ states('weather.home') }}" attributes: temperature: "{{ state_attr('weather.home', 'temperature') }}" dew_point: "{{ state_attr('weather.home', 'dew_point') }}" temperature_unit: "{{ state_attr('weather.home', 'temperature_unit') }}" humidity: "{{ state_attr('weather.home', 'humidity') }}" cloud_coverage: "{{ state_attr('weather.home', 'cloud_coverage') }}" pressure: "{{ state_attr('weather.home', 'pressure') }}" pressure_unit: "{{ state_attr('weather.home', 'pressure_unit') }}" wind_bearing: "{{ state_attr('weather.home', 'wind_bearing') }}" wind_speed: "{{ state_attr('weather.home', 'wind_speed') }}" wind_speed_unit: "{{ state_attr('weather.home', 'wind_speed_unit') }}" visibility_unit: "{{ state_attr('weather.home', 'visibility_unit') }}" precipitation_unit: "{{ state_attr('weather.home', 'precipitation_unit') }}" forecast: "{{ hourly['weather.home'].forecast }}"
Logger: homeassistant.helpers.service
Source: helpers/target.py:131
First occurred: 13:25:30 (1 occurrence)
Last logged: 13:25:30
Referenced entities weather.home are missing or not currently available
Eli tälllä taikarimpsulla sain toimimaan ja nimesin vielä sen nyt samoin kuin tässä ML koodissa on oletuksena.Hitto kun ei tajua miten noi "state_attr" koodit toimivat. Pitäisikö minulla kuitenkin olla weather.home:n tilalle tuo weather.forecast_home ?
No ei maksa mitään kokeilla.
EDIT: NONIIN NYT TOIMII AINAKIN TÄMÄ WEATHER HOMMELI !!
- trigger:
- platform: time_pattern
hours: /1
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.forecast_home
response_variable: hourly
sensor:
- name: Weather forecast hourly
unique_id: sensor.weather_forecast_hourly
state: "{{ states('weather.forecast_home') }}"
attributes:
temperature: "{{ state_attr('weather.forecast_home', 'temperature') }}"
dew_point: "{{ state_attr('weather.forecast_home', 'dew_point') }}"
temperature_unit: "{{ state_attr('weather.forecast_home', 'temperature_unit') }}"
humidity: "{{ state_attr('weather.forecast_home', 'humidity') }}"
cloud_coverage: "{{ state_attr('weather.forecast_home', 'cloud_coverage') }}"
pressure: "{{ state_attr('weather.forecast_home', 'pressure') }}"
pressure_unit: "{{ state_attr('weather.forecast_home', 'pressure_unit') }}"
wind_bearing: "{{ state_attr('weather.forecast_home', 'wind_bearing') }}"
wind_speed: "{{ state_attr('weather.forecast_home', 'wind_speed') }}"
wind_speed_unit: "{{ state_attr('weather.forecast_home', 'wind_speed_unit') }}"
visibility_unit: "{{ state_attr('weather.forecast_home', 'visibility_unit') }}"
precipitation_unit: "{{ state_attr('weather.forecast_home', 'precipitation_unit') }}"
forecast: "{{ hourly['weather.forecast_home'].forecast }}"
Mikä sun Icing Cap on?Jotain on vialla kyllä nyt. Olohuoneessa lämmöt laskee, mutta dc ei nouse.
Pyörii vain 50 - 60 väliä. Kokeilin pakottaa 95:een, niin ei kauaakaan kun se putosi taas 60:iin.
Ollaan jo -0.7 astetta setpointista. Ehkä pitää resetoida noi opinnot. No noi errorit logissakin voi jotain kertoa, mutta jotain se kuitenkin tekee vaikka niitä on..
EDIT: Ajoin resetin.
60%, koska en ole noihin koskenut..Mikä sun Icing Cap on?
Icing Cap rajoittaa. Se oli aiemmin bugi, ettei rajoittanut. Nosta Icing Cap vaikka 95%.60%, koska en ole noihin koskenut..
Jepulis, tämähän auttoi. Rupes noita logeja tutkailemaan uudemman kerran, nyt kun sain sen weather entitynkin kuntoon, niin edelleen tulee näitä virheitä logiin. En osaa sanoa vaikuttaako toimintaan vai ei.Icing Cap rajoittaa. Se oli aiemmin bugi, ettei rajoittanut. Nosta Icing Cap vaikka 95%.
Logger: homeassistant.helpers.event
Source: helpers/event.py:360
First occurred: 17:24:10 (26 occurrences)
Last logged: 17:38:52
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=410>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=410> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params', 'input_number.daikin_setpoint'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=392>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=392> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=392>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=392> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=412>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=412> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params', 'input_number.daikin_setpoint'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=394>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=394> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=394>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=394> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=414>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=414> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params', 'input_number.daikin_setpoint'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=396>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=396> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=396>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=396> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=416>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=416> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params', 'input_number.daikin_setpoint'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=398>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=398> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=398>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=398> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Error while dispatching event for sensor.faikout_stylish_outside to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=418>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% set sp = states('input_number.daikin_setpoint') | float(22.5) %} {% if tb is not none and t_out is not none %} {# sama 0,1 °C bucketointi kuin daikin_ml.py:ssä #} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {% if th is not none and th | length >= 4 %} {% set t0 = th[0] | float %} {% set t2 = th[2] | float %} {% set t3 = th[3] | float %} {# Jos gain eli t2 on liian pieni, ei uskalleta laskea mitään järkevää #} {% if (t2 | abs) < 0.001 %} unknown {% else %} {# Tasapaino-olettama: Tin ≈ SP, Tout ≈ t_out #} {% set num = -(t0 + t3 * (t_out - sp)) %} {% set d = num / t2 * 100.0 %} {# Rajataan järkeviin rajoihin, esim. 30–100 % #} {% set d_clamped = [ [d, 100] | min, 30 ] | max %} {{ d_clamped | round(1) }} {% endif %} {% else %} unknown {% endif %} {% else %} unknown {% endif %}) renders=418> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params', 'input_number.daikin_setpoint'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=400>: <RenderInfo Template<template=({% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=400> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=400>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.faikout_stylish_outside') | float(default=none) %} {% if tb is not none and t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {% set ctx = '{:.1f}'.format(bucket) %} {% set th = tb.get(ctx) %} {{ th if th is not none else 'none' }} {% else %} none {% endif %}) renders=400> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.faikout_stylish_outside', 'pyscript.daikin_ml_params'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 684, in state
numerical_value = int(value)
ValueError: invalid literal for int() with base 10: 'unknown'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 687, in state
numerical_value = float(value)
ValueError: could not convert string to float: 'unknown'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 360, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1319, in _refresh
self.hass.async_run_hass_job(self._job, event, updates)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 357, in _handle_results
self.async_write_ha_state()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1024, in async_write_ha_state
self._async_write_ha_state()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1149, in _async_write_ha_state
self.__async_calculate_state()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1086, in __async_calculate_state
state = self._stringify_state(available)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1030, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 691, in state
raise ValueError(
...<5 lines>...
) from err
ValueError: Sensor sensor.daikin_ml_learned_demand has device class 'None', state class 'None' unit '%' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'unknown' (<class 'str'>)
Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select
Source: components/automation/__init__.py:799
integration: Automation (documentation, issues)
First occurred: 16:38:42 (50 occurrences)
Last logged: 17:38:52
Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 94 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 79 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 74 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Error while executing automation automation.daikin_demand_control_p_saadin_22_5degc_select: Option 69 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Logger: homeassistant.components.automation.daikin_demand_control_p_saadin_22_5degc_select
Source: helpers/script.py:2064
integration: Automation (documentation, issues)
First occurred: 16:38:42 (100 occurrences)
Last logged: 17:38:52
Daikin demand control - P-säädin 22.5°C (select): Error executing script. Error for choose at pos 2: Option 79 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Daikin demand control - P-säädin 22.5°C (select): Choose at step 2: choice 1: Error executing script. Error for call_service at pos 1: Option 74 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Daikin demand control - P-säädin 22.5°C (select): Error executing script. Error for choose at pos 2: Option 74 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Daikin demand control - P-säädin 22.5°C (select): Choose at step 2: choice 1: Error executing script. Error for call_service at pos 1: Option 69 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Daikin demand control - P-säädin 22.5°C (select): Error executing script. Error for choose at pos 2: Option 69 is not valid for entity select.faikout_stylish_demand_control, valid options are: 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100
Muuttuiko ohjaus tarkemmaksi? Tai huomasitko mitään muutosta?Nyt on ruuvitagit haettu ja liitetty HA:an. Näköjään tosiaan toimivat shellyjen bluetooth proxyllä. Tarkkailen ehkä päivän tuloksia, ennenkuin siirrän "tuotanto" käyttöön. Raportoivat ns. kokoajan verrattuna noihin zigbee härpättimiin.