MSZ-LN sulatushuijaus

puu

Aktiivinen jäsen
Could it be that MXZ-2F42VF3 uses defrost thermistor for something that LN25 does not, and it does not like this hack? Maybe it sees that the outdoor heat exchanger is too warm and puts more power? Just guessing...
 

iro

Vakionaama
Itse en näkisi tarvetta tilojen lisäämiselle. Mitsurunnerihan on disabled silloin kuin ulkolämpötila on korkeampi kuin allaolevat lämptilat.
Koodi:
/* Outdoor temperature thresholds to switch on/off defrost hacking */
const float OUTDOOR_TEMPERATURE_TO_ENTER_OFF_STATE = 3.0;
const float OUTDOOR_TEMPERATURE_TO_EXIT_OFF_STATE = 2.0;

...tai korkeampi kuin tämä:
Koodi:
const float HEAT_EXCHANGER_MAX_TEMPERATURE = 10.0;


mitsurunner.yamlista kun lisää riveille 243 ja 259 näihin ehtoihin myös tuon enable/disable-switchin, niin sillä pitäisi toimia:
Koodi:
                    if (id(heat_exchanger_temp).state > HEAT_EXCHANGER_MAX_TEMPERATURE ||
                            id(outdoor_temp).state > OUTDOOR_TEMPERATURE_TO_ENTER_OFF_STATE) {

Sekä riville 274 poistuminen off-tilasta checki tuolle switchille:
Koodi:
if(id(heat_exchanger_temp).state < HEAT_EXCHANGER_MAX_TEMPERATURE &&
                        id(outdoor_temp).state < OUTDOOR_TEMPERATURE_TO_EXIT_OFF_STATE) {
Alla muutos noin koodattuna (ehto piti lisätä myös RESET-tilaan). Nopea testauksen perusteella asetettu tila säilyy sekä resetin että sähkökatkon yli, samoin jos koodi flashataan uudelleen. Tyhjälle chipille flashattynä oletusarvo on "Mitsurunner enabled".

Tilakoneen koodinuutos:
Koodi:
        switch(id(G_state)) {

            // This state is executed only in reset
            case ST_RESET:
                // Wait first that sensors has read some values.
                if (G_state_time_passed) {
              // If outdoor temperature average exceeds the threshold or Mitsurunner is disabled, switch off the defrost hack logic
                    if (id(heat_exchanger_temp).state > HEAT_EXCHANGER_MAX_TEMPERATURE ||
                            id(outdoor_temp).state > OUTDOOR_TEMPERATURE_TO_ENTER_OFF_STATE ||
                        id(G_Runner_ON) == false) {
                        id(enter_Off).execute();
                    }
                    // If defrosting is going on
                    else if (temperature_delta <= TEMPERATURE_DELTA_DEFROSTING_STARTED) {
                        id(enter_DefrostingStarted).execute();
                    }
                    else {
                        id(enter_Idle).execute();
                    }
                }
                break;

            case ST_IDLE:
                // If outdoor temperature average exceeds the threshold or Mitsurunner is disabled, switch off the defrost hack logic
                    if (id(heat_exchanger_temp).state > HEAT_EXCHANGER_MAX_TEMPERATURE ||
                            id(outdoor_temp).state > OUTDOOR_TEMPERATURE_TO_ENTER_OFF_STATE ||
                        id(G_Runner_ON) == false) {
                    id(enter_Off).execute();
                }
                // If maximum heating time exceeded, start defrosting immediately
                else if (id(G_max_heating_time_passed) || id(G_manual_defrosting)) {
                    id(enter_StartDefrosting).execute();
                }
                // Wait for the temperature delta threshold to be exceeded.
                else if (temperature_delta >= TEMPERATURE_DELTA_TO_DEFROST) {
                    id(enter_TempExceeded).execute();
                }
                break;

            case ST_OFF:
                // Enter normal defrost hack mode if outside temperature is low enough and Mitsurunner is enabled
                if(id(heat_exchanger_temp).state < HEAT_EXCHANGER_MAX_TEMPERATURE &&
                        id(outdoor_temp).state < OUTDOOR_TEMPERATURE_TO_EXIT_OFF_STATE &&
                        id(G_Runner_ON) == true){
                    id(schedule_forced_defrosting).execute();
                    id(enter_Idle).execute();
                }
                break;

            case ST_TEMP_EXCEEDED:

Switch-osioon lisätää tämä
Koodi:
switch:
#### Enable/Disable Mitsurunner
  - platform: template
    name: "Runner_ON"
    id: Runner_ON
    restore_mode: RESTORE_DEFAULT_ON
    lambda: "return id(G_Runner_ON);"
    turn_on_action:
      then:
          lambda: !lambda |-
            id(G_Runner_ON) = true;
    turn_off_action:
      then:
        - lambda: !lambda |-
            id(G_Runner_ON) = false;

Ja globals-osuuteen tämä:

Koodi:
globals:
  - id: G_Runner_ON
    type: bool
    initial_value: 'true'
 
  • Tykkää
Reactions: puu

iro

Vakionaama
Hi there,
I've installed Mitsurunner on a MXZ-2F42VF3 multisplit in southern Germany. Outdoor temp is mostly around 0°C.
Mitusurunner's prevention of frequent defrost cycles works very effective.
But it seems, that faking the outdoor air thermistor interferes with the logic of Mitsubishi's power control:

With Mitsurunner active the compressor Ramps up quickly to very high power, the room temperature rises quickly and above the set point, so the unit switches off. After a few minutes the cycle starts again. Power consumption doesn't drop below around 600 W. This behavior observed with outdoor temp around +3°C or any lower temp. When outdoor T is higher, the unit works like with deactivated Mitsurunner
.
With disconnected Mitsurunner's relay-PCB the MXZ is running continuously with lower power and the compressor frequency is smoothly controlled to maintain room temperature .

In this graph mitsurunner was connected until around 10:45, then I've removed relay PCB without switching off mains power. The spike few minutes before 11:00 is a defrost cycle.

In this graph temperatures are shown (sorry for German caption, green is exhaust air temp, blue inlet air temp and yellow heat exchanger temp).

The graphs shown are typically for the behavior with active/deactivated Mitsurunner in my installation. The on/off cycles keep going even for hours, so there is no self-learning process over time. Settings of indoor units have not been changed during the data record period.

It seems that Mitsubishi's control logic detects some inconsistency on the parameters detected (eg temperatures of refrigerant do not rise as high as expected with the (faked higher) outdoor temp)? I do not know! Maybe it works better in installations with higher demand of heating performance (I'm living in a well insulated flat with Neighbors that seem to love high room temperatures. 20°C without any heating...) Maybe the fuzzy logic of an MXZ unit is different to MSZ which are obviously more common in northern regions.

Are there any users of MXZ units using Mitsurunner? Are you experiencing the same issues?
More guessing...
If I interpret the characteristic curve of heat exchanger's NTC correctly recistance @ 0°C is about 33kohm. It is about the same as the Mitsurunner's cheating resistor. It's hard to believe that such small resistance-difference would have so big impact on operations.
Or is it, maybe Mitsu is checking temperature change of exchanger and when missing puts more power...

Can you measure the voltage that goes to Mitsubishi when
a) Mitsubishi own NTC is connected (relay open)
b) the cheat resistor is connected (relay closed)
The values should be about the same.
 
Viimeksi muokattu:

puu

Aktiivinen jäsen
Voitko @iro tehdä pull requestin muutoksesta GitHubiin, niin voimme sieltä katselmoida paremmin ja mergetä sen jos kaikki näyttää olevan OK.
 

iro

Vakionaama
Voitko @iro tehdä pull requestin muutoksesta GitHubiin, niin voimme sieltä katselmoida paremmin ja mergetä sen jos kaikki näyttää olevan OK.
Tein tuosta pull requestin.

Mitenhän kannattaisi edetä minulla olevan uuden Mitsurunner-softaversion kanssa ?
Siinä konfigurointi määritellään erillisessä Mitsuconf.yaml tiedostossa jossa valitaan mitä toiminnallisia -yaml tiedostoja otetaan mukaan.
Eri kokoonpanojen konfigurointi on näin helpompaa ja siinä on valmis setup niin Home-Assistant kuin Stand-Alone versioille.
Jotakin pientä fiilausta lukuunottamatta toiminnallisia muutoksia ei ole, mutta tiedostorakenteessa on muutoksia (= uusia vaihtoehtoisia *.yaml tiedostoja).
Paketti on testattu ja toimivaksi todettu, mutta olen odotellut että pääsisin testaaman yhtyeensopivuutta tämän vuoden EspHome-version kanssa. Tuo on edelleen vaiheessa sillä uusin EspHome versio on yhä 2024.12.4.

Kannattaisiko tuosta tehdä uusiMitsurunner release ?
 

jkoljo

Aktiivinen jäsen
Paras ESPHome yhteensopivuus saadaan kun yamleja on yksi. Source tiedostoja kuten *.cpp, *.h ja muita voi toki olla. Varsinkin Home Assistanttiin integroitu ESPHome addon käytännössä olettaa että laitteita on yhtä monta kuin yamleja.
 
  • Tykkää
Reactions: juu

iro

Vakionaama
Paras ESPHome yhteensopivuus saadaan kun yamleja on yksi. Source tiedostoja kuten *.cpp, *.h ja muita voi toki olla. Varsinkin Home Assistanttiin integroitu ESPHome addon käytännössä olettaa että laitteita on yhtä monta kuin yamleja.
Nykyinen viritelmä kuitenkin toimii ja on yhteensopiva ainakin EspHome-version 2024.12.4. kanssa sekä kommiunikoi HA.n kanssa,

Edellenkehittämisessä heitän pallon niille joilla on siihen osaamista, aikaa ja innostusta.
 
  • Tykkää
Reactions: puu

puu

Aktiivinen jäsen
Paras ESPHome yhteensopivuus saadaan kun yamleja on yksi. Source tiedostoja kuten *.cpp, *.h ja muita voi toki olla. Varsinkin Home Assistanttiin integroitu ESPHome addon käytännössä olettaa että laitteita on yhtä monta kuin yamleja.
Miten tuossa yhden yamlin mallissa hanskataan eri versiot, mitkä on nykyisellään toteutettu siten, että includoidaan oikea yaml, esim platform_wemos.yaml/platform_elite.yaml? Itsehän jakaisin mieluummin mitsurunner.yamlin jopa vielä useampaan tiedostoon, jos se kävisi jotenkin järkevästi, mutta tämä esphome+yaml-kombinaatio näyttäisi taipuvan siihen huonosti.

Opensource kun on kyseessä, niin tuota saa vapaasti muokata haluamakseen, ja jos on hyvä parannusehdotus, niin ei muuta kun pull requestia tuonne GitHubiin.
 

puu

Aktiivinen jäsen
Tein tuosta pull requestin.

Mitenhän kannattaisi edetä minulla olevan uuden Mitsurunner-softaversion kanssa ?
Siinä konfigurointi määritellään erillisessä Mitsuconf.yaml tiedostossa jossa valitaan mitä toiminnallisia -yaml tiedostoja otetaan mukaan.
Eri kokoonpanojen konfigurointi on näin helpompaa ja siinä on valmis setup niin Home-Assistant kuin Stand-Alone versioille.
Jotakin pientä fiilausta lukuunottamatta toiminnallisia muutoksia ei ole, mutta tiedostorakenteessa on muutoksia (= uusia vaihtoehtoisia *.yaml tiedostoja).
Paketti on testattu ja toimivaksi todettu, mutta olen odotellut että pääsisin testaaman yhtyeensopivuutta tämän vuoden EspHome-version kanssa. Tuo on edelleen vaiheessa sillä uusin EspHome versio on yhä 2024.12.4.

Kannattaisiko tuosta tehdä uusiMitsurunner release ?
Tsekkasin, näytti hyvältä, ainoastaan laitoin kommentin tuosta web-GUI:ssa näkyvästä nimestä Runner_ON -> Runner ON (ilman alaviivaa), kun muutkin nimet ovat välilyönnillä alaviivan sijaan.

Kannatan uutta relasea, kunhan tuota on testattu tuoreella EspHomella. Itselläni on sen verran erilainen setuppi, etten tuota pysty testaamaan ja käytän vanhempaa EspHomea luultavasti jatkossakin.
 

iro

Vakionaama
Tsekkasin, näytti hyvältä, ainoastaan laitoin kommentin tuosta web-GUI:ssa näkyvästä nimestä Runner_ON -> Runner ON (ilman alaviivaa), kun muutkin nimet ovat välilyönnillä alaviivan sijaan.

Kannatan uutta relasea, kunhan tuota on testattu tuoreella EspHomella. Itselläni on sen verran erilainen setuppi, etten tuota pysty testaamaan ja käytän vanhempaa EspHomea luultavasti jatkossakin.
Tein tuolle uudelle versiolle branchin omaan Github'iini ja laitoin koodit sinne talteen. Jos uusi EspHome-versio vaatii muutoksia teen ne tuolle ennen julkaisua.
 

iro

Vakionaama
Tsekkasin, näytti hyvältä, ainoastaan laitoin kommentin tuosta web-GUI:ssa näkyvästä nimestä Runner_ON -> Runner ON (ilman alaviivaa), kun muutkin nimet ovat välilyönnillä alaviivan sijaan.

Kannatan uutta relasea, kunhan tuota on testattu tuoreella EspHomella. Itselläni on sen verran erilainen setuppi, etten tuota pysty testaamaan ja käytän vanhempaa EspHomea luultavasti jatkossakin.
Nimeksi oli jäänyt työnimi, vaihdoin nimeksi " Mitsurunner enabled". Laitoin nimen alkuun välilyönnin niin tuo näkyy Web_GUI:ssa ylimmäisenä. Pitäsikö minun tehdä tehdä jotakin github:ssa ?
 

Liitteet

  • Screenshot_20250213-140415.jpg
    Screenshot_20250213-140415.jpg
    88,7 KB · Katsottu: 75
  • Tykkää
Reactions: puu

iro

Vakionaama
Pari havaintoa Mitsurunnerin häiriöistä.
Minulla Mitsurunner-Pana sovellus on toteutettu siten että Wemos on sisäyksikön vieressä ja huijausvastus ja sitä ohjaava opto on ulkoyksikössä. Sisäyksiköltä menee kaksi audiokaaplia seinän läpivienin ja putkikourun kautta ulkoyksikölle. Toisessa kaapelissa on ulkoyksikön DS18B20 anturit, sisällä samaan kaapeliin on liitetty kolme muuta DS18B20-anturia, toinen kaapeli on huijausvastuksen ohjaukseen.

Testausvaiheessa opto ja huijausvastus oli sisällä ja toiseen yksiköiden väliseen kaapeliin oli haaroitettu ulkoyksikön kennoanturin johtimet. Tuolloin molempien DS18B20-antureiden mittauksista noin puolet epäonnistui (silti Mitsurunner toimi oikein!), sisäyksikön antureilta virheitä ei esiintynyt. Kun sitten myöhemmin siirsin opton ja huijausvastuksen ulkoyksikköön, DS18B20 virheitä ei tule lainkaan. Eli herkästi DS18B20-mittaukset häiriintyvät jos johtimet ovat lähellä ulkoyksikön johtimia.

Ohjaan optoa suoraan Wemos D1 nastan 8mA virralla. Havaitsin että Wemos resetoituu silloin tällöin juuri kun D1 menee ON-tilaan. Ongelma poistui lisäämällä 3,3 uF konkka Wemosin GND ja 3,3V nastojen väliin.
 

puu

Aktiivinen jäsen
Nimeksi oli jäänyt työnimi, vaihdoin nimeksi " Mitsurunner enabled". Laitoin nimen alkuun välilyönnin niin tuo näkyy Web_GUI:ssa ylimmäisenä. Pitäsikö minun tehdä tehdä jotakin github:ssa ?
Mergesin muutoksen main-haaraan. Tuossahan tuli samalla korjaus tuohon initialize-skriptin nimen aiheuttamaan ongelmaan, hyvä juttu, saan yhden issuen merkattua korjatuksi. Pitäisi varmaan nuo muutkin issuet käydä joskus läpi...
 

puu

Aktiivinen jäsen
Paras ESPHome yhteensopivuus saadaan kun yamleja on yksi. Source tiedostoja kuten *.cpp, *.h ja muita voi toki olla. Varsinkin Home Assistanttiin integroitu ESPHome addon käytännössä olettaa että laitteita on yhtä monta kuin yamleja.
Hmm, näköjään tätä asiaa on ihmetelty jo aiemminkin, sillä olen tehyt GitHubiin issuen viime vuoden huhtikuussa. Ainakin Dashboardin osalta olen itse esittänyt (ehkä jonkun toisen keksimäksi) ratkaisuksi siirtää muut yaml-tiedostot omaan hakemistoonsa. Osaatko @jkoljo sanoa, auttaisiko tuo myös tuon Home Assistantin add-onin kanssa?
 

iro

Vakionaama
Hmm, näköjään tätä asiaa on ihmetelty jo aiemminkin, sillä olen tehyt GitHubiin issuen viime vuoden huhtikuussa. Ainakin Dashboardin osalta olen itse esittänyt (ehkä jonkun toisen keksimäksi) ratkaisuksi siirtää muut yaml-tiedostot omaan hakemistoonsa. Osaatko @jkoljo sanoa, auttaisiko tuo myös tuon Home Assistantin add-onin kanssa?
HA-osuudesta en mitään ymmärä, mutta helpottaako/vaikeuttaako tilannetta se että mitsu_conf.yaml kokoaa halutun paketin käyttäen "package"-metodia ?

Mitsu_conf.yaml
Koodi:
<<: !include platform_pana.yaml

packages:
  wifi_base: !include secrets_pana.yaml                   ## WifI needed
  dallas_base: !include dallas_hub_pana.yaml              ## minimize restarts, no more than 2 Dallas-sensor
  mqtt_base: !include mqtt_disabled.yaml                  ## NOTE! This must be included if MQTT is not used
  HA-base: !include homeassistant.yaml                    ## Enable if HomeAssistanty in use
  core_base: !include panarunner_core.yaml                ## MUST be included
 

iro

Vakionaama
Hmm, näköjään tätä asiaa on ihmetelty jo aiemminkin, sillä olen tehyt GitHubiin issuen viime vuoden huhtikuussa. Ainakin Dashboardin osalta olen itse esittänyt (ehkä jonkun toisen keksimäksi) ratkaisuksi siirtää muut yaml-tiedostot omaan hakemistoonsa. Osaatko @jkoljo sanoa, auttaisiko tuo myös tuon Home Assistantin add-onin kanssa?

Sijoitin Mitsurunner-koodipaketin C:\Users\ilkka\Mitsurunner\Mitsu0225 hakemistoon ja päivitin mitsurunner.yaml include määritykset. Kun tuon hakemiston osoitteen määrittelee Mitsu_conf.yaml tiedostoon voi Mitsu_cong.yaml sijaita eri paikassa hakemistorakenteessa. Tuo menee ongelmitta läpi EspHome-kääntäjästä.
HA-tuntijat: toimisiko tämä HA:n add-on tapauksessa.

Koodi:
### Mitsu_conf.yaml tiedosto joka rakentaa halutun Mitsurunner variantin
##############################################################


<<: !include C:\Users\ilkka\Mitsurunner\Mitsu0225\platform_wemos.yaml
packages:
  wifi_base: !include C:\Users\Mitsurunner\Mitsu0225\secrets.yaml
  dallas_base: !include C:\Users\iMitsurunner\Mitsu0225\dallas_hub.yaml
  mqtt_base: !include C:\Users\Mitsurunner\Mitsu0225\mqtt_local.yaml
  core_base: !include C:\Users\iMitsurunner\Mitsu0225\mitsurunner.yaml

Mitsurunner.yaml includes osion tarvitsemat muutokset
Koodi:
  includes:
    - C:\Users\Mitsurunner\Mitsu0225\constants.h
    - C:\Users\Mitsurunner\Mitsu0225\state.h

# global variables and their initial values
globals:

Liitteessä Mitsurunner0225 paketti
 
Viimeksi muokattu:

muf

Tulokas
AP-sarjan lämpöpumpuissa vaikuttaisi olevan tietyissä sääolosuhteissa samaa hullunkiertoa kuin LN-sarjan lämpöpumpuissa, jonka vuoksi rakentelin MitsuRunnerin mökin AP25-pumpulle. Varsinaista asennusta tehdessä tuli kuitenkin todettua, että ulkoyksikön kennon rakenne on erilainen, eikä pumpun “outdoor heat exchanger temperature thermistor” sijaitse yläputkessa. Huolto-oppaassa ei valitettavasti ole kuvaa AP25/35 mallien kennosta, mutta anturi on jossakin kennon puolivälin tienoilla taikka sitä alempana. Anturiin käsiksi pääseminen vaatii sen viimeisenkin paneelin irroittamisen, johon en arvannut lähteä ryhtymään. Asensin anturin kuitenkin tässä kohtaa yläputkeen, mutta jätin puu-adapterin kytkemättä ja jätin MitsuRunnerin keräämään dataa. Mihinköhän kohtaan anturi kannattaisi kennossa sijoittaa, jotta MitsuRunner osaa ohjata sulatusta oikein?

Asennus erilaiseen "yläputkeen":
katso liitettä 104904

Pumpun oma anturi lienee jossain tuolla missä näkyy pilkahdus vihreätä.
katso liitettä 104905

Pumpun puhaltaman ilman lämpötila:
katso liitettä 104907
Ulkoilman lämpö:
katso liitettä 104908
Kennon lämpö:
katso liitettä 104909
Delta:
katso liitettä 104910
Miinulla Panassa oli sama ongelma eli en helposti päässyt kennoanturiin. Onneksi, sillä löysin paremman paikan DeltaT:n mittaamiseen kennon vasemmasta reunasta. Laitoin antrurin paikkaan joka huurtuu viimeiseksi eli on kierukan loppupäässä. Kuvassa alempi anturi. DeltaT on lämmitysvaiheen aikana stabiilisti asteen pari positiivinen. kennon menessä tukkoon nousee nopeasti ja sulatuksessa menee kymmenisen astetta miinukselle. Eli kannattaa tsekata miten kennon kierukat menee ja hakea tuon mukaan sopiva paikka. Nyt "TEMPERATURE_DELTA_TO_DEFROST" arvo on minulla 4.0.
Outdoor-anturi on sinulla väärin sijoitettu, sillä näyttää siltä että kennolämpötila vaikuttaa siihen.
Kävin viikko sitten mökillä vähän säätämässä antureiden paikkaa ja kytkemässä puu-adapterin kiinni. MitsuRunner on nyt viikon ajan vastannut AP25-pumpun sulatuksesta.
Otin mallia iron vinkistä, ja siirsin kennoanturin kennon vasempaan reunaan putkeen, joka huurtuu / sulaa viimeisenä. Piti tehdä yksi läpivienti peltiin anturin kaapelia varten, joka ei pidempää reittiä pitkin olisi riittänyt oikeaan kohtaan. Seurailin arvoja parin sulatuksen verran, jonka jälkeen uskalsin jättää MitsuRunnerin puikkoihin. "TEMPERATURE_DELTA_TO_DEFROST" jätin vakioarvoon 5.0.
Outdoor-anturi oli sijoitettu ihan oikeaan paikkaan, mutta tajusin että pumpun päällä oleva ovikatos (tämän tyyppinen) aiheutti sen, että ilma ei kierrä kunnolla pumpun takana, vaan jää pyörimään pumpun taakse. Tämän takia sulatuksen aikana kennosta säteillyt lämmin ilma näkyi nousupiikkinä myös ulkolämpötilassa ja vastaavasti kennon huurtumisesta säteillyt kylmä ilma näkyi myös arvoissa. Tempaisin katoksen mäkeen, jonka jälkeen outdoor-anturi alkoi näyttämään tasaisemmin lukemia.

Ulkoilman nopea lauhtuminen (etenkin merenrannassa) aiheuttaa ymmärrettävästi tarvetta tiheämmälle sulatukselle, mutta muutoin käytös on viikon perusteella vaikuttanut järkevämmältä kuin aikaisemmin. Vielä kun IoT Gurun saisi vaihdettua johonkin järkevämpään ratkaisuun, jossa pääsisi seuraamaan lukuja tarkalla tasolla pitkältä ajalta. Muut ilmaiset brokerit vaikuttaisi vaativan SSL/TLS-yhteyden käyttämistä, joka taas esphomen & ESP8266 alustan yhdistelmällä ei tällä hetkellä onnistu.

Pumpun puhaltaman ilman lämpötila:
Screenshot 2025-02-17 at 10.34.02.png
Ulkoilman lämpö:
Screenshot 2025-02-17 at 10.34.10.png
Kenno:
Screenshot 2025-02-17 at 10.34.18.png
Delta:
Screenshot 2025-02-17 at 10.34.33.png
 

Nilkkakyy

Jäsen
Hi there,
I've installed Mitsurunner on a MXZ-2F42VF3 multisplit in southern Germany. Outdoor temp is mostly around 0°C.
Mitusurunner's prevention of frequent defrost cycles works very effective.
But it seems, that faking the outdoor air thermistor interferes with the logic of Mitsubishi's power control:

With Mitsurunner active the compressor Ramps up quickly to very high power, the room temperature rises quickly and above the set point, so the unit switches off. After a few minutes the cycle starts again. Power consumption doesn't drop below around 600 W. This behavior observed with outdoor temp around +3°C or any lower temp. When outdoor T is higher, the unit works like with deactivated Mitsurunner
.
With disconnected Mitsurunner's relay-PCB the MXZ is running continuously with lower power and the compressor frequency is smoothly controlled to maintain room temperature .

In this graph mitsurunner was connected until around 10:45, then I've removed relay PCB without switching off mains power. The spike few minutes before 11:00 is a defrost cycle.
katso liitettä 104932
In this graph temperatures are shown (sorry for German caption, green is exhaust air temp, blue inlet air temp and yellow heat exchanger temp).
katso liitettä 104933
The graphs shown are typically for the behavior with active/deactivated Mitsurunner in my installation. The on/off cycles keep going even for hours, so there is no self-learning process over time. Settings of indoor units have not been changed during the data record period.

It seems that Mitsubishi's control logic detects some inconsistency on the parameters detected (eg temperatures of refrigerant do not rise as high as expected with the (faked higher) outdoor temp)? I do not know! Maybe it works better in installations with higher demand of heating performance (I'm living in a well insulated flat with Neighbors that seem to love high room temperatures. 20°C without any heating...) Maybe the fuzzy logic of an MXZ unit is different to MSZ which are obviously more common in northern regions.

Are there any users of MXZ units using Mitsurunner? Are you experiencing the same issues?
Hey there Martin! Im using @puu s adapter with a smaller mxz 53…something with very good results since 2 years or so. Actually before mitsurunner my units went full on after defrost and then park for a while after which back full on, but now lowering power after initial heating after defrost and running constantly until next defrost. I think i posted some graphs and pics when installed, dunno if you can find them with my user name?
 

iro

Vakionaama
Tein Mitsurunner-ohjelmarakenteeseen vielä pieniä muutoksia niin että sen pystyy nyt kääntämään ja lataamaan myös Home Assistantin ESPHome Builderilla.

Olen täysin noviisi HomeAssiatant-asioissa joten alla kuvattu prosessi on luultavasti täysin vastoin hyviä käytäntöjä, HA-tuntijat voisivat kertoa kuinka tuo oikeasti pitäisi tehdä. :huh: Kuitenkin tuo toimii.:)
EDIT-lisäys: OTA-päivitys toimii myös ESPHome-tool:lla tehtyyn Mitsurunneriin kunhan WiFi-asetukset ja OTA-password ovat samoja.

1) Hakemiston homeassistant/esphome alle luodaan hakemisto mitsu ja sinne ladataan tarvittavat Mitsurunnerin x.yaml ja x.h tiedostot
2) ESPHome builderiin luodaan uusi device ja sille kopioidaan Mitsu_conf.yaml tiedosto
3) Save / Install / Manual_Dovwload tekee .bin tiedoston. Tiedosto talletetaan.
4) Ensimmäinen flashays pitää tehdä USB:n kautta, Install /Plug into this Computer / Open ESPHome Web / Connect / Install
==> Mitsurunner on asennettu ja seuraavat flashaykset voidaan tehdä OTA:na
 

Liitteet

  • Screenshot_20250219-194415~2.jpg
    Screenshot_20250219-194415~2.jpg
    121,3 KB · Katsottu: 72
  • Screenshot_20250219-194332.jpg
    Screenshot_20250219-194332.jpg
    91,3 KB · Katsottu: 66
  • Screenshot_20250219-194332~2.jpg
    Screenshot_20250219-194332~2.jpg
    108,7 KB · Katsottu: 59
  • Screenshot_20250219-191449.jpg
    Screenshot_20250219-191449.jpg
    57,7 KB · Katsottu: 63
  • Screenshot_20250219-191534.jpg
    Screenshot_20250219-191534.jpg
    94,3 KB · Katsottu: 69
Viimeksi muokattu:

Keikhaus

Jäsen
Nyt kun mitsurunner on pyörinyt meikäläisen LN25 :ssa tammikuusta alkaen ongelmitta oletus säälisulatuksella, tuli mieleen että onko tämä 180 minuuttia testauksen kautta löytynyt optimaalinen arvo?
Eli kannattaako minun suurentaa arvoa vaikkapa 600 minuuttiin ja onko tästä saavutettavaa kannattavaa laskennallista hyötyä paitsi että harvenee tuo valaan pieraisu millaiseksi eräs tuttavani kuvasi joskus tuota mitsun sulatusta...
 

iro

Vakionaama
ESPHome versio 2025.2.0 on nyt käytettävissä sekä ESPHome-toolissa että HomeAssistantant ESPHome Builderissa.
Vaati joitakin muutoksia Mitsurunnerin softaan. Ohessa päivitetty Mitsurunnerin softapaketti joka toimii sekä uudella että edeltävillä ESPHome versiolla. Enjoy!

EDIT: Paketti päivitetty. WiFi-sensori siirretty mitsurunner.yaml tiedostoon.
 

Liitteet

  • MitsuRunner-New-configuration-structure_b.zip
    489,6 KB · Katsottu: 48
Viimeksi muokattu:

iro

Vakionaama
Nyt kun mitsurunner on pyörinyt meikäläisen LN25 :ssa tammikuusta alkaen ongelmitta oletus säälisulatuksella, tuli mieleen että onko tämä 180 minuuttia testauksen kautta löytynyt optimaalinen arvo?
Eli kannattaako minun suurentaa arvoa vaikkapa 600 minuuttiin ja onko tästä saavutettavaa kannattavaa laskennallista hyötyä paitsi että harvenee tuo valaan pieraisu millaiseksi eräs tuttavani kuvasi joskus tuota mitsun sulatusta...
Tuolla vanhassa ketussa on pohdiskeltu säälisulatuksen tarvetta.


180 minuutin tuplaaminen ei merkittävästi paranna tehokkuutta mutta tietysti vähentää sulatuksen aiheittamaa häiriötä.
Minulla FD25 on toiminut 7 tunnin säälisulatuksella jo lähes kymmenen vuotta. Myös Pana kesti kymmenisen vuotta, sitten elektroniikka petti.
 

Keikhaus

Jäsen
180 minuutin tuplaaminen ei merkittävästi paranna tehokkuutta mutta tietysti vähentää sulatuksen aiheittamaa häiriötä.
Jep, tällaiseen käsitykseen olen itsekin tullut kun olen näitä ketjuja lueskellut

Saapi olla tälleen ainakin tämän lämmityskauden.

Kiitos vinkeistä!
 

juu

Jäsen
Vielä kun IoT Gurun saisi vaihdettua johonkin järkevämpään ratkaisuun, jossa pääsisi seuraamaan lukuja tarkalla tasolla pitkältä ajalta.
https://thingspeak.mathworks.com/prices/thingspeak_home tarjoaa ilmaista pilvitallennusta
https://thingspeak.mathworks.com/pages/license_faq lisätietoa

ThingSpeak home licenses are for personal use. Pricing is based on the number of channels required and on a count of messages to be processed and stored in a one-year period. ThingSpeak is available as a free service for small non-commercial home projects:
- <3 million messages/year = ~8 200 messages/day (1 message voi sisältää yhden channelin kaikki fieldit).
- Limits on capacity: 4 channels, 8 fields each channel
- Message update interval limit: 15s
- Email Alerts: 800/year
- What happens if I run out of messages or channels on my license? Your ThingSpeak channels will no longer accept new data points.
- Keskeisin ero lienee se että Thingspeakissa on noi channelit (vrt. Iotgurussa on devicet ja niiden alle nodet) ja kunkin channelin alle enintään 8 fieldiä = arvoa - vrt. Iotgurussa rajaton määrä devicejä, nodeja ja fieldejä.
- Graafit on pienempiä ja kämäisempiä.
- Thingspeakin oma koodikieli on aivan hirveä (ja/tai dokumentaatio tosi huono) ja nettieditori vielä hirveämpi (ihan siitä alkaen että copypaste puuttuu), mutta näitä tarvii vain jos haluaa prosessoida tai visualisoida paremmin tiertoja suoraan Thingspeakissa.
 

juu

Jäsen
Ohessa päivitetty Mitsurunnerin softapaketti joka toimii sekä uudella että edeltävillä ESPHome versiolla. Enjoy!
Onkohan joku syy miksi mqtt:topic_prefix on 'null' ja topic_prefix määritetään kohta erikseen?

Nykyinen koodi:
Koodi:
mqtt:
  topic_prefix: null    # trace log is not send to IoT Guru server

substitutions:
# "prefix" = topic of IoT-Guru node e.g 'pub/user_id/client_id/node_short_identifier'.
# Can be found from IoT Guru Field/Help under 'GENERIC MQTT TOPIC'
# It should look like: 'pub/tQAz8YAINFNft0R7Q/l4xFwCiKxKUWQft0R7Q/rEWtD1fYqnggHMR7Q'
  prefix:        'pub/.../.../...'

# MQTT topics. Notice that these are inside both single and double quotes e.g.'"xxx"'
  topic_heatexchanger:                  '"$prefix/kenno"'
  topic_outdoor:                        '"$prefix/ulkoilma"'

Luulisin että toimisi myös jotenkin näin:
Koodi:
mqtt:
  # "prefix" = topic of IoT-Guru node e.g 'pub/user_id/client_id/node_short_identifier'.
  # Can be found from IoT Guru Field/Help under 'GENERIC MQTT TOPIC'
  # It should look like: 'pub/tQAz8YAINFNft0R7Q/l4xFwCiKxKUWQft0R7Q/rEWtD1fYqnggHMR7Q'
  topic_prefix: 'pub/.../.../...' 

# MQTT topics
  topic_heatexchanger:                  'kenno'
  topic_outdoor:                        'ulkoilma'
Koodi olisi siistimpi. Esphome MQTT dok https://esphome.io/components/mqtt
 

iro

Vakionaama
Onkohan joku syy miksi mqtt:topic_prefix on 'null' ja topic_prefix määritetään kohta erikseen?

Nykyinen koodi:
Koodi:
mqtt:
  topic_prefix: null    # trace log is not send to IoT Guru server

substitutions:
# "prefix" = topic of IoT-Guru node e.g 'pub/user_id/client_id/node_short_identifier'.
# Can be found from IoT Guru Field/Help under 'GENERIC MQTT TOPIC'
# It should look like: 'pub/tQAz8YAINFNft0R7Q/l4xFwCiKxKUWQft0R7Q/rEWtD1fYqnggHMR7Q'
  prefix:        'pub/.../.../...'

# MQTT topics. Notice that these are inside both single and double quotes e.g.'"xxx"'
  topic_heatexchanger:                  '"$prefix/kenno"'
  topic_outdoor:                        '"$prefix/ulkoilma"'

Luulisin että toimisi myös jotenkin näin:
Koodi:
mqtt:
  # "prefix" = topic of IoT-Guru node e.g 'pub/user_id/client_id/node_short_identifier'.
  # Can be found from IoT Guru Field/Help under 'GENERIC MQTT TOPIC'
  # It should look like: 'pub/tQAz8YAINFNft0R7Q/l4xFwCiKxKUWQft0R7Q/rEWtD1fYqnggHMR7Q'
  topic_prefix: 'pub/.../.../...'

# MQTT topics
  topic_heatexchanger:                  'kenno'
  topic_outdoor:                        'ulkoilma'
Koodi olisi siistimpi. Esphome MQTT dok https://esphome.io/components/mqtt
Jos oikien muistan tuon logiikan niin;
Koska IoT_Gurua käytettäessä MQTT_logeja ei voi hyödyntää, estetään hyödytön logien lähetys MQTT-serverille "topic_prefix: null"-komennolla (=ei turhaa MQTT-kuormaa).

prefix: 'pub/.../.../...'n on Substitutio. (kieltämättä hieman hämäävä nimeäminen).

Ellei "release-kanditaatissa" ole toiminnallisia ongelmia julkaistaan se ja tehdään parannuksia seuraavaan versioon .
 
  • Tykkää
Reactions: juu

juu

Jäsen
Jos oikien muistan tuon logiikan niin;
Koska IoT_Gurua käytettäessä MQTT_logeja ei voi hyödyntää, estetään hyödytön logien lähetys MQTT-serverille "topic_prefix: null"-komennolla (=ei turhaa MQTT-kuormaa).
näyttäisi että log_topicille löytyy oma arvo ja 'nulli'na disabloi login
log_topic (Optional, MQTTMessage): The topic to send MQTT logmessages to. Use null if you want to disable sending logs to MQTT.
lähde: https://esphome.io/components/mqtt
 

iro

Vakionaama
näyttäisi että log_topicille löytyy oma arvo ja 'nulli'na disabloi login
Varmaankin on noin. Ja toteutuksessa lienee monta muutakin kohtaa jotka voisi toteuttaa tyylikkäämmin.:mad:
Kuten edellisessä viestissä mainitsin minulle ykköstavoite on saada uusi versio julkaistua toimivana. Muutokset vaativat enemmän tai vähemmän uutta testausta eikä minulla ole siihen nyt aikaao_O
 
Viimeksi muokattu:

iro

Vakionaama
@juu , Nostan käden ylös virheen merkiksi, kiitos havainnosta. Tuon kohdan pitäisi olla kuten edellisessä versiossa
Koodi:
topic_prefix: null    # trace log is not send to IoT Guru server
log_topic: null       # no trace-logs over MQTT (function is not supported in IoT-Guru)
discovery: false      # HomeAssistant is not used

ESPHome.kääntäjän antamien varoitusten välttämiseksi kannataa koodi kääntää komennolla
esphome run --no-logs mitsurunner.yaml

Teen tuon muutoksen mutta muutoin jätän prefix osuuden ennalleen. (En pysty nyt testaamaan tuollaista muutosta.) Jos teet ja pystyt testaamaamasn prefix-muutoksen omassa ympäristössä niin otan testatun yaml- tiedoston mielihyvin mukaan.

EDIT: Määrittelyt ovat jo mukana mqtt_guru.yaml tiedostossa. Epähuomiossa katsoin mqtt_local.yaml tiedostoa jossa logien lähetys saa olla mukana.
 
Viimeksi muokattu:
  • Tykkää
Reactions: juu

akarkkai

Jäsen
Tein Mitsurunner-ohjelmarakenteeseen vielä pieniä muutoksia niin että sen pystyy nyt kääntämään ja lataamaan myös Home Assistantin ESPHome Builderilla.

Olen täysin noviisi HomeAssiatant-asioissa joten alla kuvattu prosessi on luultavasti täysin vastoin hyviä käytäntöjä, HA-tuntijat voisivat kertoa kuinka tuo oikeasti pitäisi tehdä. :huh: Kuitenkin tuo toimii.:)
EDIT-lisäys: OTA-päivitys toimii myös ESPHome-tool:lla tehtyyn Mitsurunneriin kunhan WiFi-asetukset ja OTA-password ovat samoja.

1) Hakemiston homeassistant/esphome alle luodaan hakemisto mitsu ja sinne ladataan tarvittavat Mitsurunnerin x.yaml ja x.h tiedostot
2) ESPHome builderiin luodaan uusi device ja sille kopioidaan Mitsu_conf.yaml tiedosto
3) Save / Install / Manual_Dovwload tekee .bin tiedoston. Tiedosto talletetaan.
4) Ensimmäinen flashays pitää tehdä USB:n kautta, Install /Plug into this Computer / Open ESPHome Web / Connect / Install
==> Mitsurunner on asennettu ja seuraavat flashaykset voidaan tehdä OTA:na

Moi iro,

Kiitokset 2025.2.0 versiosta. Lisäsin myös kaikki tarvitsemani muutokset esphomen päähakemiston yamliin. Voin siis teoriassa purkaa uuden version suoraan mitsurunner hakemistoon ja painaa install.
Koodi:
<<: !include mitsurunner/platform_elite.yaml

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.100.38
  reboot_timeout: 360min

ota:
  platform: esphome
  password: !secret ota_password

api:
  reboot_timeout: 0s
  encryption:
    key: !secret api_key

sensor:
  - platform: wifi_signal
    name: "WiFi Signal dBm"
    id: wifi_signal_dbm
    accuracy_decimals: 0
    update_interval: 15s
    filters:
    - sliding_window_moving_average:
        window_size: 8
        send_every: 8

#web_server:
#  port: 80

packages:
  dallas_base: !include
    file: mitsurunner/dallas_basic.yaml
    vars:
      dallas_address_heat_exchanger_temp: '0x0f012112d2a6ea28'
      dallas_address_outdoor_temp:        '0x20012112a89ddd28'
  mqtt_base: !include mitsurunner/mqtt_disabled.yaml
  core_base: !include mitsurunner/mitsurunner.yaml

esphome: 
  includes:
    - mitsurunner/constants.h
    - mitsurunner/state.h
 

iro

Vakionaama
Moi iro,

Kiitokset 2025.2.0 versiosta. Lisäsin myös kaikki tarvitsemani muutokset esphomen päähakemiston yamliin. Voin siis teoriassa purkaa uuden version suoraan mitsurunner hakemistoon ja painaa install.
Koodi:
<<: !include mitsurunner/platform_elite.yaml

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.100.38
  reboot_timeout: 360min

ota:
  platform: esphome
  password: !secret ota_password

api:
  reboot_timeout: 0s
  encryption:
    key: !secret api_key

sensor:
  - platform: wifi_signal
    name: "WiFi Signal dBm"
    id: wifi_signal_dbm
    accuracy_decimals: 0
    update_interval: 15s
    filters:
    - sliding_window_moving_average:
        window_size: 8
        send_every: 8

#web_server:
#  port: 80

packages:
  dallas_base: !include
    file: mitsurunner/dallas_basic.yaml
    vars:
      dallas_address_heat_exchanger_temp: '0x0f012112d2a6ea28'
      dallas_address_outdoor_temp:        '0x20012112a89ddd28'
  mqtt_base: !include mitsurunner/mqtt_disabled.yaml
  core_base: !include mitsurunner/mitsurunner.yaml

esphome:
  includes:
    - mitsurunner/constants.h
    - mitsurunner/state.h
Tuohan on varsin tyylikäs ratkaisu purkaa secrets-tiedot suoraan conf-tiedostoon. Ei-HA versiossa pitäisi määritellä manual-ip kokonaisuudessaan.
WiFi-sensori on nyt secrets-osiossa koska muutoin se aiheuttaa ongelmia StandAone-versiossa. Voisin miettiä vielä miten StandAlonen voisi hoitaa jos WiFi-sensori on mitsurunner.yaml tiedostossa.
HA:ssa ei tarvita MQTT:tä, mutta toimisikohan mqtt-tiedostoissa sama menetelmä (määritellä substitutions) kuin sinulla dallas-tiedostossa.
 

akarkkai

Jäsen
jos haluaa kirjoittaa uusiksi määrittelyiden käsittelyn, ne voisi kerätä conf tiedostoon substitutions tai defaults elementteihin joista ne siirtyisivät paketeille ilman vars elementtejä. tavallaan se voisi olla selkeämpää vaikka näkyvissä olisi turhia muuttujia ja ainakin koodin päivittäminen helpottuisi. makuasia miten tuon haluaa toteuttaa ja pääasia on että itse logiikka toimii hienosti nykyiselläänkin.
 
  • Tykkää
Reactions: juu

iro

Vakionaama
jos haluaa kirjoittaa uusiksi määrittelyiden käsittelyn, ne voisi kerätä conf tiedostoon substitutions tai defaults elementteihin joista ne siirtyisivät paketeille ilman vars elementtejä. tavallaan se voisi olla selkeämpää vaikka näkyvissä olisi turhia muuttujia ja ainakin koodin päivittäminen helpottuisi. makuasia miten tuon haluaa toteuttaa ja pääasia on että itse logiikka toimii hienosti nykyiselläänkin.
OK. Ehkä turvallisinta ja nopeinta on julkaista nykyinen paketti ja tehdä fiilauksia seuraavaan. Kun paketti saadaan julkasitua niin voisitko tehdä Mitsrunner Wikiin ohjeistuksen sen käyttöönotosta HomeAssistant ympäristössä (eli dokumentoida edellisessä viestissä tekemäsi toteutuksen) ?
 
  • Tykkää
Reactions: juu

iro

Vakionaama
Moi iro,

Kiitokset 2025.2.0 versiosta. Lisäsin myös kaikki tarvitsemani muutokset esphomen päähakemiston yamliin. Voin siis teoriassa purkaa uuden version suoraan mitsurunner hakemistoon ja painaa install.
Koodi:
<<: !include mitsurunner/platform_elite.yaml

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.100.38
  reboot_timeout: 360min

ota:
  platform: esphome
  password: !secret ota_password

api:
  reboot_timeout: 0s
  encryption:
    key: !secret api_key

sensor:
  - platform: wifi_signal
    name: "WiFi Signal dBm"
    id: wifi_signal_dbm
    accuracy_decimals: 0
    update_interval: 15s
    filters:
    - sliding_window_moving_average:
        window_size: 8
        send_every: 8

#web_server:
#  port: 80

packages:
  dallas_base: !include
    file: mitsurunner/dallas_basic.yaml
    vars:
      dallas_address_heat_exchanger_temp: '0x0f012112d2a6ea28'
      dallas_address_outdoor_temp:        '0x20012112a89ddd28'
  mqtt_base: !include mitsurunner/mqtt_disabled.yaml
  core_base: !include mitsurunner/mitsurunner.yaml

esphome:
  includes:
    - mitsurunner/constants.h
    - mitsurunner/state.h
Laitoin WiFi-sensorin mitsurunner.yaml tiedostoon, mutta nyt en pysty testaamaan sen toimivuuta. Pystytkö sinä testaamaan tuon, eli poista Wifi-sensori päähakemistosta ja käytä alla olevaan mitsurunner_w.yaml tiedostoa ?
 

Liitteet

  • mitsurunner_w.zip
    4,8 KB · Katsottu: 52

iro

Vakionaama
Ei ole pakko määrittää ip:tä ollenkaan. Mulla pelittää hyvin ilman ip:tä, yhteys löytyy osoitteella mitsurunner.local
Sama havainto minulla. Dynaamista ip:tä käytettäessä OTA-päivitys epäonnistuu sillon tällöin.
Kiinteän ip:n käyttö tuli mukaan ESPHome suosituksesta
It’s recommended to provide a static IP for your node, as it can dramatically improve connection times.
 
Back
Ylös Bottom