Luukku
Vakionaama
Sehän se vedoneston sitten aktivoi.Pörssiohjaus sitten sitä hiukan vaihtelee joko alas tai ylöspäin.
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.
Sehän se vedoneston sitten aktivoi.Pörssiohjaus sitten sitä hiukan vaihtelee joko alas tai ylöspäin.
No ainakin tässä klo 12.15 tapauksessa. Eli juuri kun ollaan päästy normaalitilaan, niin sattui tulemaan pörssissä kalliimpi hetki ja setpointti pudotettiin aavistuksen. Tuuripeliä toki. Mut mielestäni menee liian helposti päälle, mutta ei kovinkaan helposti mene pois päältä.Sehän se vedoneston sitten aktivoi.
Toinen vaihtoehto on ne minimi DC:t. Eli etsin minimi DC:n jolla nestelämmöt eivät laske alle liikaa. Tosin tämä tekee sitten ihan samaa, eli todennäköisesti ylilämmittää.Voi olla, että helpoin ratkaisu voisi tilanteessani olla se, että kylmästi vaan nostan setpointtia hiukan. Esim. 23:een.
Näen saman ilmiön täällä. Hyvä, että näin, koska tällöin tuo ei ole vain yhden ympäristön ilmiö. Hyvä puoli tässä on se, että tämä onnistutaan todennäköisesti korjaamaan vain parametri-muutoksilla.Tässä tulos.. Heti kun päästiin tavoitteeseen pamahtaa draft prevention päälle. Ja sen jälkeen pudotaankin heti setpointin alle.
katso liitettä 112367
Sattumoisin vielä tuohon päätteeksi alkoi sulatus. Eli taitaapi kestää kauan ennenkuin ollaan taas setpointissa.![]()
Eihän ole mitään swingejä päällä? Suora suuntaus? Puhallus man?Heti kun päästiin tavoitteeseen pamahtaa draft prevention päälle. Ja sen jälkeen pudotaankin heti setpointin alle.
On mulla horizontaaliswingi.. Pitäiskö ottaa pois ?Eihän ole mitään swingejä päällä? Suora suuntaus?
Kaikki vispaukset pois ja puhallus ihan ylös suoraan. Sit vähän alas jos on joku este lähellä esim oviaukon yläosa tms.On mulla horizontaaliswingi.. Pitäiskö ottaa pois ?
Jep nyt vispilät pois... Ylös oli muutenkin puhallus. On se kumma mitä kaikkea ihmeellisyyksiä näissä laitteissa onkaan.Kaikki vispaukset pois ja puhallus ihan ylös suoraan. Sit vähän alas jos on joku este lähellä esim oviaukon yläosa tms.
Päivitetty. Nostin samalla base setpointin alakerrassa 23 asteeseen. Alaraja 22.5 ja yläraja 23.5.Dev-haarasta löytyy nyt tunnin verran ajossa ollut versio, joka ensituntumalla ei niin radikaalisesti laske/nosta demandia. Huomattavaa on, että muutoksia on sekä pääkontrolleriin, että configiin.
Ehkä huonosti näkyy, mutta DC95Kyllä noista käyristä näkee hyvin, että päästää DC:n aika alas ja vasta maksimi DC saa lämmön nousuun. Tosiaan jonkinlainen minimi vs ulkolämpö ehkä tasaisi pumpun käyntiä. Noi DC 40-50 ei jaksa pakkasilla pitää kennoa riittävän lämpimänä. Mulla yläkerran minimi 60% ulkona -3. Sääkerroin pitää DC:n ylempänä.
Edit: jopa DC30% välillä.
Edit:2 miksi muuten pumpun teho ei nouse vaikka DC100%? Vaan 500W?
Jumi?
Oliko sulla tuon indoor derivativen aikaikkuna 24h? Voisit palata takaisin 1h. Vaikuttaisi toimivan paremmin tällä mallilla 1h.Tuossa vähän jatkoa. Uusi versio asennettu about 17.50
katso liitettä 112392
En tiedä mistä voisi johtua, mutta ei ole vieläkään nostanut DC:tä 100:een. Eikä ole max demandissakaan 95:sta.Tuossa vähän jatkoa. Uusi versio asennettu about 17.50
Kyllä, jotain on pielessä tuossa nyt.Vähän taas mietityttää. Se megaluokan errori oli taas ilmestynyt logeihin.
Lisäksi aika oudon hitaasti ML Demandikaan muuttuu.
katso liitettä 112401
katso liitettä 112402
Taidanpa käynnistää HA:n uudelleen. Ihan varmuudeksi.
Toi on itse asiassa (kauneus)virhe siinä template sensorissa, joka on sulla configuration.yaml:ssa. Tässä pitäisi olla korjattu versio, jossa mun iv_tulo_lampotila. Tämä toki vain yhdelle Daikinille.Mutta tämä megaerrori tulee silti logiin:
Koodi:Logger: homeassistant.helpers.event Source: helpers/event.py:360 First occurred: 21:41:44 (1 occurrence) Last logged: 21:41:44 Error while dispatching event for sensor.outside_filtered_faikout_stylish to <Job track state_changed event {'input_number.daikin_setpoint', 'sensor.outside_filtered_faikout_stylish', '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.outside_filtered_faikout_stylish') | 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=14>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.outside_filtered_faikout_stylish') | 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=14> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'pyscript.daikin_ml_params', 'input_number.daikin_setpoint', 'sensor.outside_filtered_faikout_stylish'}) rate_limit=None has_time=False exception=None is_static=False>, Template<template=({% set t_out = states('sensor.outside_filtered_faikout_stylish') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=10>: <RenderInfo Template<template=({% set t_out = states('sensor.outside_filtered_faikout_stylish') | float(default=none) %} {% if t_out is not none %} {% set bucket = ((t_out * 10) | round(0) / 10) %} {{ '{:.1f}'.format(bucket) }} {% else %} unknown {% endif %}) renders=10> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.outside_filtered_faikout_stylish'}) 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.outside_filtered_faikout_stylish') | 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=10>: <RenderInfo Template<template=({% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %} {% set t_out = states('sensor.outside_filtered_faikout_stylish') | 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=10> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'pyscript.daikin_ml_params', 'sensor.outside_filtered_faikout_stylish'}) 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'>)
- name: "Daikin ML learned demand"
unique_id: daikin_ml_learned_demand
unit_of_measurement: "%"
state: >
{% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %}
{% set t_out = states('sensor.iv_tulo_lampotila') | float(default=none) %}
{% set sp = states('input_number.daikin_setpoint') | float(default=none) %}
{% if tb is none or t_out is none or sp is none %}
{{ none }}
{% else %}
{% set bucket = ((t_out * 10) | round(0) / 10) %}
{% set ctx = '{:.1f}'.format(bucket) %}
{% set th = tb.get(ctx) %}
{% if th is none or (th | length) < 4 %}
{{ none }}
{% else %}
{% set t0 = th[0] | float(default=none) %}
{% set t2 = th[2] | float(default=none) %}
{% set t3 = th[3] | float(default=none) %}
{% if t0 is none or t2 is none or t3 is none or (t2 | abs) < 0.001 %}
{{ none }}
{% else %}
{% set num = -(t0 + t3 * (t_out - sp)) %}
{% set d = (num / t2) * 100.0 %}
{% set d_clamped = [ [d, 100] | min, 30 ] | max %}
{{ d_clamped | round(1) }}
{% endif %}
{% endif %}
{% endif %}
availability: >
{% set tb = state_attr('pyscript.daikin_ml_params', 'theta_by_ctx') %}
{% set t_out = states('s') | float(default=none) %}
{% set sp = states('input_number.daikin_setpoint') | float(default=none) %}
{{ tb is not none and t_out is not none and sp is not none }}
Ei mulla HA:n kanssa ole mitään suorituskykyongelmia.Olen huomannut, että jos pidän Studio Code Serveriä päällä, syö se kaiken muistin ja CPU:n. Luulin, että nämä skriptit sen tekisivät, mutta se olikin tuo addon. Sekin saattaa olla syyllinen jossain poikkeustapauksessa, jos laitteessa on kovin vähän muistia (esimerkiksi).
Tarkistatko:Hmm.. Jostain syystä daikin1:llä on max cap 95 ?
katso liitettä 112408
Tarkastin vielä kerran, että kaikki max demand input.numberit daikin1:lle oli 100%. daikin2:lla ne oli 95% paitsi alle -16C oli 100%.
Vai liittyykö tämä nyt johonkin pakkaseen ? Täällä on suht lauhaa. Nyt taitaa olla -2C.
Jep icing cap on 95%. Eli periaatteessa siis sääjuttuja ?Tarkistatko:
Helper: input_number.daikin_icing_cap
Config-python: GLOBAL_MILD_MAX
Se on se alkuperäinen ajatus sille, että vältettäisi n. -3-+3 (+-2 astetta) sulatusloopit. Toimi minusta ihan OK, mutta ei tällaisen pakkasjakson jälkeen.Jep icing cap on 95%. Eli periaatteessa siis sääjuttuja ?
Olen kokeillut nyt filteröityä, ja tupla-filteröityä derivaatta-anturia, mutta en ole löytänyt yhtä oikeaa tapaa asettaa tuo. Tuntuu, että mikään ei ole oikein optimaalinen.Yön yli oli toiminut. DC95 ei ole ylittynyt. Olisiko pitänyt ? Yläkerrassa tosin on 95 rajoitus, mutta mielenkiinto kohdistuu nyt alakertaan.
Derivaatat heittää häränpyllyä. Tosin heitin illalla vielä 4h ikkunan siihen, kun se tunti tuntui niin oudolta. Laitoin nyt 1h, kun olen taas tarkkailuasemissa. Pitikö se derivaatta anturi olla otettu siitä alkuperäisestä lämpötila-anturista vai siitä filtteröidystä ?
katso liitettä 112406
katso liitettä 112407
MINULLE MYÖS!! Täällä on käytössä ha ohjattavat lattialämmitykset ja lvv..Jäänyt tämän mallin kehittäminen vähän myös taka-alalle. Ei liity faikoutiin, mutta tästä inspiroituneena tuli tehtyä pythonilla LVV:n, erilaisten Tuya-pohjaisten lattialämmitystermostaattien ja EV:n lataukseen liittyvät skriptit pörssisähkömielessä. Ne ovat tässä ajaneet vähän ohi, kun ei ole oikein ollut selviä kehityskohteita tälle mallille.
Ei tämä vieläkään täydellinen ole, mutta lähenee toimivaa![]()
Mitäs jos sen derivaatta-anturin luo siitä alkuperäisestä lämpötila-anturista (niinkuin nyt minulla) ja sitten sen itse derivaatta-anturin suodattelee jotenkin ?Olen kokeillut nyt filteröityä, ja tupla-filteröityä derivaatta-anturia, mutta en ole löytänyt yhtä oikeaa tapaa asettaa tuo. Tuntuu, että mikään ei ole oikein optimaalinen.
Voin laittaa toki, mutta nämä ovat vielä melko raakileita. Onko sinulla LVV:ssä mahdollisuutta mitata veden lämpötilaa? Tein itse Quick&Dirty-ratkaisun, eli laitoin ohjauspaneelin sisälle Xiaomin anturin, ja laskin offsetin, jotta sain realistisen kuvan veden lämpötilasta.MINULLE MYÖS!! Täällä on käytössä ha ohjattavat lattialämmitykset ja lvv..
Pystyn mittaamaan veden lämpötilaa. Tosin anturin on vain säiliön yläosassa ja veden kerrostuminen aiheuttaa haasteita.Voin laittaa toki, mutta nämä ovat vielä melko raakileita. Onko sinulla LVV:ssä mahdollisuutta mitata veden lämpötilaa? Tein itse Quick&Dirty-ratkaisun, eli laitoin ohjauspaneelin sisälle Xiaomin anturin, ja laskin offsetin, jotta sain realistisen kuvan veden lämpötilasta.