Mitsubishi CN105 ESPHome modaus

wannabe

Aktiivinen jäsen
Avataas tällainen aihe, ettei RW-ketju lähde kovin rönsyilemään oppimishaluisen osaamattoman kysymysten vuoksi.

Mulla on Mitsurunnerilla viritetty LN ja siihen sisäyksikön imu- ja puhalluslämpötilojen mittaus koplattuna Home Assistantiin kaiken "turhan" mittaamista ja laskemista varten ja koska käppyrät hienoja. Bongasin RW-ketjusta ton C105-modin ja nyt on ihan pakko :rolleyes: saada sellainen osin jo sen vuoksi, että saa noi nykyiset lämpötilojen mittausvermeet piiloon ja huonelämpötilan mittauksen langattomaksi. Eli tämä softa https://github.com/echavet/MitsubishiCN105ESPHome olis haaveissa saada toimimaan.

Kortti https://www.makershop.de/plattformen/d1-mini/esp8266-mini-board/ on kolvattu ja C105-liittimeen sopiva 5-johtoinen liitosjohto hankittu @harald vinkkaamasta linkistä https://www.aliexpress.com/item/1005002904897793.html. Nykyiset dallas-anturit + 4,7kΩ vastus jatkaa töitään tässä uudessa systeemissä, toivottavasti.

Kasasin echavet-sivun README:hin palastelun koodin yhteen ja ajoin sen yamal validatorilla https://www.yamllint.com/. Punaista pukkas useampaankin kohtaan. Jotain siellä oli mielestäni kahteen kertaan, joita "siivosin", hipsut siksi, kun mutua on erittäin vahvasti pelissä. Lisäsin koodiin myös mm. Wifi-tiedot ja pinnin dallas-sensoreille. Validaattorin sain näyttämään vihreää, mutta sehän ei koodin toimintaa takaa. Luotto on kova, että en osannut, joten viittiskö joku osaava vilkasta mitä tossa on pielessä.

Koodi:
---
esp8266:
  board: d1_mini

wifi:
  ssid: Oma wifi
  password: sen salasana
  manual_ip:
    static_ip: joku vapaa
    subnet: 255. jne.
    gateway: 192. jne.

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3
  
# Dallas-pin:
  DS18B20_pin: 'GPIO4'

# Addresses for dallas temp sensors
  dallas_in_heat:  '0x153c73e38167f628'
  dallas_out_heat: '0xcf3cc9e381b99628'

# External component reference
external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

substitutions:
  name: heatpump-1 # Do not use underscores, which are not fully compatible with mDNS
  friendly_name: My Heatpump 1

climate:
  - platform: cn105
    id: hp
    name: ${friendly_name}
    icon: mdi:heat-pump
    visual:
      min_temperature: 10 # Adjust to your unit's min temp. SmartSet units can go to 10C for heating
      max_temperature: 31
      temperature_step:
        target_temperature: 1
        current_temperature: 0.5
    # Fahrenheit compatibility mode - uses Mitsubishi's "custom" unit conversions, set to
    # "true" for better support of Fahrenheit units in HomeAssistant
    fahrenheit_compatibility: false
    remote_temperature_timeout: 30min
    update_interval: 2s
    debounce_delay: 100ms
    # Various optional sensors, not all sensors are supported by all heatpumps
    compressor_frequency_sensor:
      name: Compressor Frequency
      entity_category: diagnostic
      disabled_by_default: true
    outside_air_temperature_sensor:
      name: Outside Air Temp
      disabled_by_default: true
    vertical_vane_select:
      name: Vertical Vane
      disabled_by_default: false
    horizontal_vane_select:
      name: Horizontal Vane
      disabled_by_default: true
    isee_sensor:
      name: ISEE Sensor
      disabled_by_default: true
    stage_sensor:
      name: Stage
      # use_as_operating_fallback: false     # set to true if your unit doesn't provide activity indicator
      entity_category: diagnostic
      disabled_by_default: true
    sub_mode_sensor:
      name: Sub Mode
      entity_category: diagnostic
      disabled_by_default: true
    auto_sub_mode_sensor:
      name: Auto Sub Mode
      entity_category: diagnostic
      disabled_by_default: true
    input_power_sensor:
      name: Input Power
      disabled_by_default: true
    kwh_sensor:
      name: Energy Usage
      disabled_by_default: true
    runtime_hours_sensor:
      name: Runtime Hours
      entity_category: diagnostic
      disabled_by_default: true
    air_purifier_switch:
      name: Air purifier
      disabled_by_default: true
    night_mode_switch:
      name: Night mode
      disabled_by_default: true
    circulator_switch:
      name: Circulator
      disabled_by_default: true
    airflow_control_select:
      name: Airflow Control
      disabled_by_default: true

logger:
  hardware_uart: UART1 # Uncomment on ESP8266 devices
  level: INFO
  logs:
    EVT_SETS: INFO
    WIFI: INFO
    MQTT: INFO
    WRITE_SETTINGS: INFO
    SETTINGS: INFO
    STATUS: INFO
    CN105Climate: WARN
    CN105: INFO
    climate: WARN
    sensor: WARN
    chkSum: INFO
    WRITE: WARN
    READ: WARN
    Header: INFO
    Decoder: INFO
    CONTROL_WANTED_SETTINGS: INFO

# Swap the above settings with these debug settings for development or troubleshooting
#  level: DEBUG
#  logs:
#    EVT_SETS : DEBUG
#    WIFI : INFO
#    MQTT : INFO
#    WRITE_SETTINGS : DEBUG
#    SETTINGS : DEBUG
#    STATUS : INFO
#    CN105Climate: WARN
#    CN105: DEBUG
#    climate: WARN
#    sensor: WARN
#    chkSum : INFO
#    WRITE : WARN
#    READ : WARN
#    Header: INFO
#    Decoder : DEBUG
#    CONTROL_WANTED_SETTINGS: DEBUG

stage_sensor:
  name: Stage Sensor
sub_mode_sensor:
  name: Sub Mode Sensor
auto_sub_mode_sensor:
  name: Auto Sub Mode Sensor
[code]

Mitä alla oleva tarkoittaa? Haetaanko tuolta joitain lisäyksiä tuohon koodiin?

# External component reference
external_components:
  - source: github://echavet/MitsubishiCN105ESPHome
 

iro

Vakionaama
Kyseistä tapausta en tunne, mutta tuossa voisi aluksi saada systeemin jaloilleen minimikokoonpanolla ja minimimuutosilla
"Example Configuration - Minimal".
Kun tuon saa toimimaan voi ottaa tulille "Example Configuration - Complete"
Ja sitten lisätä uusia ominaisuuksia yksi kerrallaa..

Edit: koska Mitsu-liitäntä käyttää sarjaporttia, debuggaus ei onnistune USB-portista.
 
Viimeksi muokattu:

jkoljo

Aktiivinen jäsen
Mä ajelen Wemos D1 minillä paria Dallas sensoria ja FD25 pumpun ohjausta. Tässä toimiva koodi.

YAML:
# External component reference
external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

esphome:
  name: fd25bridge
  friendly_name: Mitsubishi FD25 Wifi Bridge

esp8266:
  board: d1_mini

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:
  # ESP8266 only - disable serial port logging, as the HeatPump component
  # needs the sole hardware UART on the ESP8266
  hardware_uart: UART1
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
      key: !secret encryption_key

ota:
  - platform: esphome

# Sync time with Home Assistant.
#time:
#  - platform: homeassistant
#    id: homeassistant_time

# Temperature sensors (Dallas DS18B20)
one_wire:
  - platform: gpio
    pin: D5
    id: dallas1
  - platform: gpio
    pin: D6
    id: dallas2

# Sensors with general information.
sensor:
  - platform: uptime
    name: Uptime

  - platform: dallas_temp
    one_wire_id: dallas1
    address: 0x3600000037cb3328
    name: "Exhaust"
    accuracy_decimals: 2
    update_interval: 15s

  - platform: dallas_temp
    one_wire_id: dallas2
    address: 0xf800000038b86028
    name: "Intake"
    accuracy_decimals: 2
    update_interval: 15s

#  - platform: homeassistant
#    name: "Remote Temperature Sensor"
#    entity_id: "sensor.ruuvitag_living_room_temperature" # Replace with your HomeAssistant remote sensor entity id, or include in substitutions
#    internal: false
#    disabled_by_default: true
#    device_class: temperature
#    state_class: measurement
#    unit_of_measurement: "°C"
#    filters:
#      - clamp: # Limits values to range accepted by Mitsubishi units
#          min_value: 1
#          max_value: 40
#          ignore_out_of_range: true
#      - throttle: 30s
#    on_value:
#      then:
#        - logger.log:
#            level: INFO
#            format: "Remote temperature received from HA: %.1f C"
#            args: [ 'x' ]
#        - lambda: 'id(hp).set_remote_temperature(x);'

# Climate entity configuration
climate:
  - platform: cn105
    id: hp
    name: "Mitsu Heatpump"
    update_interval: 4s        # update interval can be adjusted after a first run and logs monitoring
    remote_temperature_timeout: 30min
    debounce_delay : 100ms
    visual:
      min_temperature: 16
      max_temperature: 31
      temperature_step:
        target_temperature: 0.5
        current_temperature: 0.5
    # Various optional sensors, not all sensors are supported by all heatpumps
    compressor_frequency_sensor:
      name: Compressor Frequency
      entity_category: diagnostic
      disabled_by_default: false
    vertical_vane_select:
      name: Vertical Vane
      disabled_by_default: false
    horizontal_vane_select:
      name: Horizontal Vane
      disabled_by_default: false
    isee_sensor:
      name: ISEE Sensor
      disabled_by_default: false
 

jkoljo

Aktiivinen jäsen
Mikä EspHome versio sulla on käytössä?
2025.9.1 näyttäisi olevan

Edit: pumpun ohjaimen koodi oli näköjään 2025.7.x versiolla käännetty. Päivitin 2025.9.1 versioon. Koodi kääntyi ongelmitta.

Edit: korjattu typo 20205->2025
 
Viimeksi muokattu:

iro

Vakionaama
Mä ajelen Wemos D1 minillä paria Dallas sensoria ja FD25 pumpun ohjausta. Tässä toimiva koodi.

YAML:
# External component reference
external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

esphome:
  name: fd25bridge
  friendly_name: Mitsubishi FD25 Wifi Bridge

esp8266:
  board: d1_mini

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

logger:
  # ESP8266 only - disable serial port logging, as the HeatPump component
  # needs the sole hardware UART on the ESP8266
  hardware_uart: UART1
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
      key: !secret encryption_key

ota:
  - platform: esphome

# Sync time with Home Assistant.
#time:
#  - platform: homeassistant
#    id: homeassistant_time

# Temperature sensors (Dallas DS18B20)
one_wire:
  - platform: gpio
    pin: D5
    id: dallas1
  - platform: gpio
    pin: D6
    id: dallas2

# Sensors with general information.
sensor:
  - platform: uptime
    name: Uptime

  - platform: dallas_temp
    one_wire_id: dallas1
    address: 0x3600000037cb3328
    name: "Exhaust"
    accuracy_decimals: 2
    update_interval: 15s

  - platform: dallas_temp
    one_wire_id: dallas2
    address: 0xf800000038b86028
    name: "Intake"
    accuracy_decimals: 2
    update_interval: 15s

#  - platform: homeassistant
#    name: "Remote Temperature Sensor"
#    entity_id: "sensor.ruuvitag_living_room_temperature" # Replace with your HomeAssistant remote sensor entity id, or include in substitutions
#    internal: false
#    disabled_by_default: true
#    device_class: temperature
#    state_class: measurement
#    unit_of_measurement: "°C"
#    filters:
#      - clamp: # Limits values to range accepted by Mitsubishi units
#          min_value: 1
#          max_value: 40
#          ignore_out_of_range: true
#      - throttle: 30s
#    on_value:
#      then:
#        - logger.log:
#            level: INFO
#            format: "Remote temperature received from HA: %.1f C"
#            args: [ 'x' ]
#        - lambda: 'id(hp).set_remote_temperature(x);'

# Climate entity configuration
climate:
  - platform: cn105
    id: hp
    name: "Mitsu Heatpump"
    update_interval: 4s        # update interval can be adjusted after a first run and logs monitoring
    remote_temperature_timeout: 30min
    debounce_delay : 100ms
    visual:
      min_temperature: 16
      max_temperature: 31
      temperature_step:
        target_temperature: 0.5
        current_temperature: 0.5
    # Various optional sensors, not all sensors are supported by all heatpumps
    compressor_frequency_sensor:
      name: Compressor Frequency
      entity_category: diagnostic
      disabled_by_default: false
    vertical_vane_select:
      name: Vertical Vane
      disabled_by_default: false
    horizontal_vane_select:
      name: Horizontal Vane
      disabled_by_default: false
    isee_sensor:
      name: ISEE Sensor
      disabled_by_default: false
Hieman aiheen ohi mutta olisi kiinnostavaa tietää tekeekö tuo satunnaisia resettejä ( kuten Mitsurunner). Eli nollautuuko uptime silloin tällöin?
 

jkoljo

Aktiivinen jäsen
Hieman aiheen ohi mutta olisi kiinnostavaa tietää tekeekö tuo satunnaisia resettejä ( kuten Mitsurunner). Eli nollautuuko uptime silloin tällöin?
Näköjään mahdollisesti tekee. Paras uptime on noin 34 päivää. Iso osa reseteistä on pumpun huoltoa, ESP firmispäivityksiä ym, mutta on varmaankin myös omia bootteja.
 

iro

Vakionaama
Näköjään mahdollisesti tekee. Paras uptime on noin 34 päivää. Iso osa reseteistä on pumpun huoltoa, ESP firmispäivityksiä ym, mutta on varmaankin myös omia bootteja.
Tuo näyttäisi resetoituvan harvemmin kuin Mitsurunner. Oma tuntuma on että Wemos&EspHome laitteissa on resetoitumistaipumusta ainakin jos niihin on liitetty Dallas-antureita. Vastaava Wemos&Arduino toteutus ei tee ylimääräisiä resettejä, pari laitetta on minulla pyörinyt yhteen menoon yli vuoden.
TIetty nuo resetit ovat lähinnä kosmeettinen ongelma näissä sovelluksissa.
 

wannabe

Aktiivinen jäsen
  • Keskustelun aloittaja
  • #9
https://github.com/echavet/MitsubishiCN105ESPHome sivullahan on mainintakin D1 Minin epäluotettavuudesta.

Important

ESP8266 boards such as the WeMos D1 Mini clones (LOLIN in particular) tend to be unreliable in this application, and may require an external voltage regulator to work. While some users have successfully used ESP8266 based devices, if you are purchasing new hardware for use with this project, it is recommended to focus on the more modern and powerful ESP32-S3 based devices.
 

wannabe

Aktiivinen jäsen
2025.9.1 näyttäisi olevan

Edit: pumpun ohjaimen koodi oli näköjään 2025.7.x versiolla käännetty. Päivitin 20205.9.1 versioon. Koodi kääntyi ongelmitta.

Tämä olikin hyvä tieto! ChatGPT:n kanssa tässä työstetty, miksi flashäys ei onnistu. Itselle heränny epäily, että päivittämällä nykyinen versio 2022.12.3 uudempaan käännös onnistuisi, mutta ChatGPT:llä hirvee into lähtee puukottamaan softaa. Vissiin haluaa vaan jutella, eikä ratkaista ongelmaa nopeasti.

Mutta mutta, mites kun mulla on vanhempi versio Mitsurunnerista, niin mites käy Mitsurunnerin kans, jos päivitän espHomen uudempaan, kun Mitsurunner on integroitu Home Assistantiin :hmm:
 

iro

Vakionaama
Tämä olikin hyvä tieto! ChatGPT:n kanssa tässä työstetty, miksi flashäys ei onnistu. Itselle heränny epäily, että päivittämällä nykyinen versio 2022.12.3 uudempaan käännös onnistuisi, mutta ChatGPT:llä hirvee into lähtee puukottamaan softaa. Vissiin haluaa vaan jutella, eikä ratkaista ongelmaa nopeasti.

Mutta mutta, mites kun mulla on vanhempi versio Mitsurunnerista, niin mites käy Mitsurunnerin kans, jos päivitän espHomen uudempaan, kun Mitsurunner on integroitu Home Assistantiin :hmm:
Jos sinulla ei ole tarvetta päivittää Mitsurunneria niin EspHome DeviceBuilder'in päivitys ei vaikuta mitenkään HomeAssistant/Mitsurunner yhteistyöhön.
Jos on tarvetta päivittää Mitsurunnera, niin uusin Mitsurunnerin Github versio kääntyi ainakin heinäkuun Builder-versiolla. Voisin jossakin vaiheessa varmistaa että kääntyy myös uusimmalla versiolla.

PS. Työstätkö softaa nyt Windows/EspHome vai HomeAssistant ympäristössä?
 

iro

Vakionaama
Windows/EspHome ympäristössä.
Toivottavasti sinulla systeemi jo käy ja kukkuu:)

Jos ei, niin alla muutama vinkki.
1) Päivitä EspHome
2) Kopio @jkoljo :n koodi ja päivitä siihen WiFi-ja Dallas parametrit. Lisää logger kohdan alle rivi level: WARN
3) Käännä ja flashaa koodi Wemossiin. ! Wemos vielä irti Mitsusta !
4) Jos/kun kaikki on kunnossa HomeAssistant tunnistaa uuden laitteen "uusi ESP-laite löydetty".
5) Ota laite käyttöön HA:ssa (muistaaksen valikko "Asetukset - Laiteet ja palvelut - Lisää integraatio - Esphome" lisää laite.
6) Dallas lukemat ja uptime pitäisi nyt näkyä HA:ssa
7) Koska laite ei ole kiinni Mitsussa se lähettää luultavasti virhe-logia HomeAssistantille.
Noita voisi käydä vilkuilemassa "Asetukset - Järjestelmä - Lokit" kohdasta.

Tämän jälkeen sitten Wemos kiinni Mitsuun
@jkoljo , miten olet toteuttanut saraväylän kytkennän Mitsuun. Onko sarjavastuksia ?
 
Viimeksi muokattu:

jkoljo

Aktiivinen jäsen
Se on ihan suoraan kiinni vaan TX & RX pinneissä. Ei ole vastuksia, ja eihän uartin niitä pitäisi tarvitakkaan. Virransyöttö Wemokselle tulee saman liittimen 5v nastasta.
 
  • Tykkää
Reactions: iro

-Teme-

Vakionaama
Se on ihan suoraan kiinni vaan TX & RX pinneissä. Ei ole vastuksia, ja eihän uartin niitä pitäisi tarvitakkaan. Virransyöttö Wemokselle tulee saman liittimen 5v nastasta.
ESP käyttää 3.3v UART jännitettä kun Mitsu 5v

Mulla on muuten valmiita palikoita myynnissä, joissa ESP32C3 MCU, eli myös BT proxy onnistuu, koodi sisällä ja sopiva liitin miillä saa suoraan CN105 porttiin kiinni. Hintaa 30€+postit
ESPhome konffikset löytyy https://github.com/Teme-V/mitsu_esphome
ainoa että liitännät Dallas sensorille ei ole, mutta sen saa taiteiltua jos haluaa askarrella

YV kautta päästään kauppoihin
 

haraldh

Vakionaama
Kyllä tuo D1 mini toimii suoraan 5 voltin jännitteelläkin. Ja tuo UART on minulla toiminut noin pitkään jo, vaikka ovatkin eri jännitteellä.
 

iro

Vakionaama
Ohessa WeMos skema. Ei ole ihan "by the book" kytkeä 5V logiikka TX-pin pisteeseen, mutta kuten @haraldh totesi Mitsun kanssa tuo näyttää (ainakin useimmissa tapauksissa) toimivan eikä riko mitään.

Tekoäly kertoo että joissakin Wemos versioissa 470 ohm vastus puuttu,. Jos näin on tuo voi myös vaikuttaa TX-pinnin ulkoisen ohjauksen toimivuuteen.
Itse olen havainnut vastuksen puuttuvan jossakin vanhassa Wemos versiossa.
 

Liitteet

  • Screenshot_20250929-182020~2.jpg
    Screenshot_20250929-182020~2.jpg
    112,3 KB · Katsottu: 70
  • Screenshot_20250929-184637.jpg
    Screenshot_20250929-184637.jpg
    182,5 KB · Katsottu: 53
Viimeksi muokattu:

-Teme-

Vakionaama
Itse en ole D1 miniin juuri sotkeutunut, ESP-M3 ollut käytössä kun tehnyt 8266 pohjaisia ratkaisuja
Pääasiassa nykyään ESP32C3 tai ESP32C6 ovat ne joilla tulee asioita tehtyä
Noissa kaikissa jos syöttää GPIO 5v niin käyttää laitteen
 

wannabe

Aktiivinen jäsen
Toivottavasti sinulla systeemi jo käy ja kukkuu:)

Nooh, ainakin olen päässyt eteenpäin. Päivitin EspHomen uusimpaan versioon ja otin ton @jkoljon koodin käyttöön ja seurasin noita @iro ohjeita. API encryption key plokkasin käännöksen alkuun, mutta se ongelma ratkesi lopulta .... kai?? ... ja flashäys onnistuu niin USB:llä kuin OTAna. Wemos näkyy Home Assistantissa. Toi kai?? sen vuoksi, kun näyttää siltä, ettei Wemoksen ja Home Assistantin kommikointi toimi. Dallasit ja uptime HA:ssa unavailable. Kai tossa API:ssa viä joku ahdistaa, kun wemos ja HA ei ole puheväleissä.

Kyllä osaamattomuus on helppoa :D
 

wannabe

Aktiivinen jäsen
@wannabe . Ota api määtityksestä pois encrypiton ja key rivit niin sitten pitäis kommunikaation pelittää.
Kiitos vinkistä. Ehdin kyllä kokeilla tätä jo ennen kuin luin viestisi, mutta huonoin tuloksin. Vahvisti kuitenkin, että oikeilla jäljillä olen. Aloin epäilemään olisiko kortissa jotain häikkää ja testailin sitä mm. lataamalla siihen Mitsurunnerin hw_checkin. Testatessa ilmeni, että OTA-päivitykset toimi kerran ja sit ei enää toiminu. Tätä toistui joitakin kertoja. Aikani tuskailin tuon kanssa, meni hermo ja kolvailin uuden kortin. . No eipä kommunikoinu HA:n kans sekään, meni hermo. Keksin sit, että deletoikohan "joku" HA:n secret-tiedostosta API:n totaalisesti, kun poisti salausavaimen. Kävin vilkasemassa ja niinhän se "joku" oli tehnyt prkl! Lisäsin sinne API: ja jo vain yhteys lähti pelaamaan :bileet:

Toi vialliseksi epäilemäni kortti on ollut Mitsurunnerina ja lämpömittarina ja mitä lie kaikkee sillä testaillu. ChatGPT epäili, että menee johonkin looppiin tai luulee omaavansa jonkun muun IP-osoitteen kuin sille on konfattu. Staattisen osoitteen sille määritin.

Pöytätestivaihe siis tuskailtu ja seuraavaksi tuskailemaan kortti sisäyksikköön.
 
  • Tykkää
Reactions: iro

wannabe

Aktiivinen jäsen
Rojekti edennyt siihen vaiheeseen, että käy ja kukkuu autotallin FT25 pumpussa, yeah!

Kysymystä koodin tästä kohtaa:

Koodi:
#  - platform: homeassistant
#    name: "Remote Temperature Sensor"
#    entity_id: "sensor.ruuvitag_living_room_temperature" # Replace with your HomeAssistant remote sensor entity id, or include in substitutions
#    internal: false
#    disabled_by_default: true
#    device_class: temperature
#    state_class: measurement
#    unit_of_measurement: "°C"
#    filters:
#      - clamp: # Limits values to range accepted by Mitsubishi units
#          min_value: 1
#          max_value: 40
#          ignore_out_of_range: true
#      - throttle: 30s
#    on_value:
#      then:
#        - logger.log:
#            level: INFO
#            format: "Remote temperature received from HA: %.1f C"
#            args: [ 'x' ]
#        - lambda: 'id(hp).set_remote_temperature(x);'
[code]

Dallas-sensoreiden määritelty accuracy_decimals: 2  Onko ton remote-sensorin tarkkuus 0 desimaalia ja jos on, niin onko väliä mihin kohtaan lisää sille vaikka ton saman accuracy_decimals: 2?

Ja toinen kysymys. Oletan ton internal: false tarkoittavan, että sisäyksikön oma on korvattu remote-sensorilla ja jos on true, niin sisäyksikkö säätää toimintaansa oman sensorinsa mukaan. Menikö lepikkoon?
 
  • Tykkää
Reactions: iro

Temez

Aktiivinen jäsen
Rojekti edennyt siihen vaiheeseen, että käy ja kukkuu autotallin FT25 pumpussa, yeah!

Kysymystä koodin tästä kohtaa:

Koodi:
#  - platform: homeassistant
#    name: "Remote Temperature Sensor"
#    entity_id: "sensor.ruuvitag_living_room_temperature" # Replace with your HomeAssistant remote sensor entity id, or include in substitutions
#    internal: false
#    disabled_by_default: true
#    device_class: temperature
#    state_class: measurement
#    unit_of_measurement: "°C"
#    filters:
#      - clamp: # Limits values to range accepted by Mitsubishi units
#          min_value: 1
#          max_value: 40
#          ignore_out_of_range: true
#      - throttle: 30s
#    on_value:
#      then:
#        - logger.log:
#            level: INFO
#            format: "Remote temperature received from HA: %.1f C"
#            args: [ 'x' ]
#        - lambda: 'id(hp).set_remote_temperature(x);'
[code]

Dallas-sensoreiden määritelty accuracy_decimals: 2  Onko ton remote-sensorin tarkkuus 0 desimaalia ja jos on, niin onko väliä mihin kohtaan lisää sille vaikka ton saman accuracy_decimals: 2?

Ja toinen kysymys. Oletan ton internal: false tarkoittavan, että sisäyksikön oma on korvattu remote-sensorilla ja jos on true, niin sisäyksikkö säätää toimintaansa oman sensorinsa mukaan. Menikö lepikkoon?
Jos internal on True niin sensori ei tule home assistanttiin näkyville eli jää tavallaan sen espin sisäiseksi. Käytännössä tällä voi halutessaan piilottaa home assistantista sellaisia sensoreita jotka on tehty vain sen kyseisen espin käyttöön.

Syötän itse etäanturin arvoa sellaisenaan läpi käytännössä yhden desimaalin tarkkuudella, mutta home assistant heiluttelee anturin arvo 0,01 astetta edestakaisin 10 minuutin välein jotta pumpun pääty voi tunnistaa home assistantin kaatumisen tai muun vikatilanteen nopeasti ja siirtyä sisäisen anturin käyttöön. Eli ainakaan itsellä ei ole ollut ongelmaa desimaalien kanssa.

Lisäksi olen pumpun päätyyn kötöstellyt hätälämmityksen kytkemisen jos yhteys kotiautomaatio on poikki tai kotiautomaatiolta ei tule tuota anturitietoa odotetulla aikavälillä. Olin siis itse huolissani siitä että jonkin automaatiovirheen tai laiterikon tai muun takia lämmöt lähtisi tippumaan kämpässä.

Kirjoitusvirheet tähänkin viestiin tarjosi puheentunnistus kun lastenvaunuja työntäessä vaikea kirjoitella:)
 

Temez

Aktiivinen jäsen
Ja todettakoon vielä että ainakin omissa pumpuissa vaikuttaisi siltä että anturin syötetty lämpötila pyöristetään jossain vaiheessa puolen asteen tarkkuudelle. Tai mitä nyt olen seurannut pumpun käynnistymistä versus pyyntilämpötila. Oletuslogiikalla pumppu lähtee käyntiin kun lämpötila on enää puoli astetta yli pyynnin. Minulla on muuta lämmitysautomaatiota joten tuo tuntui helposti "ylilämmittävän". Laitoinkin etäanturiin espin koodissa 0,7 asteen offsetin jolloin pumppu antaa lämpötilan laskea alemmaksi ennen kuin lähtee käyntiin. Tavallaan käytän pumpun pyyntilämpötilan minimilämpötilana. Näillä keleillä tuntuisi toimivan mutta minulla ei ole hajuakaan että Antaako tämä lämpötilan laskea liikaa sitten kovemmilla pakkasilla.
 

wannabe

Aktiivinen jäsen
Käy ja kukkuu myös olkkarin LN:ssä, yeah! Se vähän harmittaa, kun airflow- ja stage-tiedoille antaa unknown samoin kuin kompressorin HZ-tiedolle. Kopsasin listan echavet:n koodista ja kaikkiin pistin false, joten siitä ei ole kiinni, ettei esim. stagea pyydetä. Ideoita otetaan vastaan, miten kyhätä katkokäyntilaskuri.

Vaikka kaikki toiveet ei täyttynyt, niin mieltä lämmittää, kun sai imuilman ja puhalluksen lämpötilamittauksen vermeet piilotettua. Ei edellinenkään systeemi silmille hypännyt, mutta siistimpi noin, kun näkyvissä ei ole mitään.
 

haraldh

Vakionaama
Hmm, ilman mitään päivityksiä tjms. niin pöndellä rupesi molemmat ESP8266:et näyttämään "not available" lämpötilamittausten kohdalla. Lokeissa "1-wire bus is held low". ESP reboot ei auttanut, mutta onneksi koko lämpöpumppu on Shellyn takana, ja niitten virtakatkaisu sai ESP:n heräämään ja löysi taas DS1820-anturit. Mikähän tuossa on tiputtanut molempien lämpöpumppujen ESP-laitteiden dallas-anturit samaan aikaan pois? Sähkökatkoa ei ole ollut, uptime joku 50+ päivää.
 

haraldh

Vakionaama
Satuin huomaamaan dokumenaatiossa maininta tuosta stage_sensor sensorista joka kertoo todellisen flektin nopeuden. Olen aikaisemmin käyttänyt fan_mode state'a joka on vain pyydetty flektinopeus. Tämähän ei täsmää silloin kun pumppu on tyytyväinen ja ei aktiivisesti lämmitä. Tuo stage_sensor sen sijaan näyttää LOW, IDLE ja GENTLE esim. kun kone lähtee sulatuksen jälkeen lämmittämään taas. Aikaisemmin on COP:it ollut vähän liian optimistisia, ja ovat heittäneet häränpyllyä. Katsotaan nyt miten toimii. Laitan tähän ennen ja jälkeen kuvat niin saatte kuvan mitä muutoksia tarvitaan. Olen myös otaksunut että uusi nopeus IDLE on sama kuin LOW kuin DIFFFUSE eli 306 m² RW-25 mallissa. Jos joku tietää todelliset nopeudet (tai tilavuudet) näille nopeuksille niin hihkaiskaa!

Lämpöteho ennen;
Koodi:
{# auto, low, medium, high, middle, diffuse  from HA #}
{# auto, dif, low, med, mid, hig,  from from HA, right order? #}
{#       306, 468, 570, 702, 846  m³/h from Mitsubishi RW-25 Service Manual #}
{% set fanspeed = ({"diffuse":"306", "low":"468", "medium":"570", "middle":"702", "high":"846"}) %}
{% set airdensity = 1.17 %}
{# {state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')} #}
fanspeed {{ state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode') }}
{{
  (
    ( ( fanspeed[state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')]|float * airdensity * ( states('sensor.temperature_out') | float - states('sensor.temperature_in') | float ) ) * (1000/3600) )
  )
}}

Lämpöteho stage_sensor'illa;
Koodi:
{# auto, low, medium, high, middle, diffuse  from HA #}
{# auto, dif, low, med, mid, hig,  from from HA, right order? #}
{#       306, 468, 570, 702, 846  m³/h from Mitsubishi RW-25 Service Manual #}
{% set fanspeed = ({"DIFFUSE":"306", "LOW":"306","IDLE":"0", "GENTLE":"468", "MEDIUM":"570", "MODERATE":"702", "HIGH":"846"}) %}
{% set airdensity = 1.17 %}
{# {state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')} #}

{{
  (
    ( ( fanspeed[states('sensor.stage_rw25')]|float * airdensity * ( states('sensor.temperature_out') | float - states('sensor.temperature_in') | float ) ) * (1000/3600) )
  )
}}

COP ennen:
Koodi:
{# auto, low, medium, high, middle, diffuse  from HA #}
{# auto, dif, low, med, mid, hig,  from from HA, right order? #}
{#       306, 468, 570, 702, 846  m³/h from Mitsubishi RW-25 Service Manual #}
{% set fanspeed = ({"diffuse":"306", "low":"468", "medium":"570", "middle":"702", "high":"846"}) %}
{% set airdensity = 1.17 %}
{# {state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')} #}
{% if (states('sensor.shellyplug_s_4022d8836d01_power') |float) > 50 %}
{{
  (
    ( ( fanspeed[state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')]|float * airdensity * ( states('sensor.temperature_out') | float - states('sensor.temperature_in') | float ) ) * (1000/3600) ) /
    ( states('sensor.shellyplug_s_4022d8836d01_power') | float )
  )
}}
{% else %}
  0
{% endif %}

COP uusi stage_sensor'illa
Koodi:
{# auto, low, medium, high, middle, diffuse  from HA #}
{# auto, dif, low, med, mid, hig,  from from HA, right order? #}
{#       306, 468, 570, 702, 846  m³/h from Mitsubishi RW-25 Service Manual #}
{% set fanspeed = ({"DIFFUSE":"306", "LOW":"306","IDLE":"0", "GENTLE":"468", "MEDIUM":"570", "MODERATE":"702", "HIGH":"846"}) %}
{% set airdensity = 1.17 %}
{# {state_attr('climate.mitsubishi_rw_25_aircon', 'fan_mode')} #}
{% if (states('sensor.shellyplug_s_4022d8836d01_power') |float) > 50 %}
{{
  (
    ( ( fanspeed[states('sensor.stage_rw25')]|float * airdensity * ( states('sensor.temperature_out') | float - states('sensor.temperature_in') | float ) ) * (1000/3600) ) /
    ( states('sensor.shellyplug_s_4022d8836d01_power') | float )
  )
}}
{% else %}
  0
{% endif %}

edit: Muutin IDLE arvoon 0 m³/h, tuossa oli SUB_MODE sensori defrost tilassa, jolloin stage_sensor IDLE ja sulatuksen aikana flekti ei käy ollenkaan.

Olisi kyllä hyvä saada jonkinlainen taulukko mitä nämä nopeudet oikeasti ovat.
 
Viimeksi muokattu:

haraldh

Vakionaama
Edelleen on tosin COP ja Lämpöteho liian korkealla.

Tuon mukaan pitäisi maksimit olla ~4.x kW @-10°C. Mun näyttää jotain 7 kW. Olisiko niin että puhallusta ei ole luvatun verran?

rw-min-max-tehot-pakkasella-png.74114

Kuva tuosta https://lampopumput.info/foorumi/threads/uusi-flagship-model-msz-rw.32323/post-493867

Ulkona -6°C meillä. COP-laskuri sanoo että lämpötehon pitäisi olla 6.8 kW ja flekti on täysillä (846 m³/h). Jos simuloin flektin nopeudella MEDIUM (570 m³/h) tulee lämpötehoksi 4.4 kW, jotan voisin jopa uskoa. Tiedä nyt sitten, mutta tuntuu siltä että nuo ilmamäärät ei pidä paikkansa jostain syystä.

Olisikohan oikein että tekee hemmotestin ja säätää sitten HIGH ilmamäärät niin että lämpöteho vastaa tuota ylläolevaa kuvaa, ja skaalaa sitten vain lineaarisesti ne muut luvut niin että sopivat?

Hmm, jos olettaa että tuo Super High ei koskaan toteudu, tai tulee vain jonkin laitteen oman logiikan mukaan ja siirtää vain ne ilmamäärät vasemmalle niin että suurin on 702 m³/h niin alkaa COP:it ja Lämpötehot vaikuttaamaan järjellisiltä.

Koodi:
{% set fanspeed = ({"DIFFUSE":"306", "LOW":"306","IDLE":"306", "GENTLE":"306", "MEDIUM":"468", "MODERATE":"570", "HIGH":"702"}) %}

Yllämainittu Alt Volume tässä taulukossa;
MelcloudESP stage_sensorHA climate fan_speedWorkshop ManualAlt Volume(m³/h)Volume (m³/h)
IDLE0
DIFFUSE306306?
1LOWQuietSilent306306
2GENTLELowLow306468
3MEDIUMMediumMedd468570
4MODERATEMiddleHigh570702
5HIGHHighSuper High702846
 
Viimeksi muokattu:

masimies

Tulokas
Hei. Menin vaihtamaan pois öljystä ja nyt pannuhuoneessa hurisee Mitsubishi Electric EcoDan.
Halusin myös wlan-kortin sijaan kytkeä pumpun CN105-liitännän kautta ESP32:seen datan ulossaantia varten.
Mutta. Ensimmäinen ESP32 jo kärvähti kytkennöissä koska olin saanut kaksi erilaista kytkentävaihtoehtoa CN105:een. Uusi ESP32 jo postissa mutta tarvitsisin varmistuksen, kumpi kuvan kytkentä on oikea CN105:lle?
 

Liitteet

  • cgpt.png
    cgpt.png
    8,9 KB · Katsottu: 32
  • gem.png
    gem.png
    14,4 KB · Katsottu: 34

jkoljo

Aktiivinen jäsen
Ainakin FD25 kanssa toimii hyvin näin. ESP laite on Wemos D1 mini kopio.

Ehkä kannattaa varmuuden vuoksi tökkästä ainakin oletetut käyttöjännitepinnit yleismittarilla ennen uutta kytkentää sikälikin jos teidän pumpussa sattuukin olemaan vähän erilainen pinoutti.

uart:
id: HEATPUMP_UART
baud_rate: 2400
tx_pin: 1
rx_pin: 3
 

Liitteet

  • Screenshot_20260516_133354_Photos.jpg
    Screenshot_20260516_133354_Photos.jpg
    152,2 KB · Katsottu: 25
  • Screenshot_20260516_133409_Photos.jpg
    Screenshot_20260516_133409_Photos.jpg
    411,4 KB · Katsottu: 23
Viimeksi muokattu:

masimies

Tulokas
Nyt on lisätty jo level-shifteri ja vekslattu eestaas TX ja RX pihoja. Pumppu ei vaan suostu vastaamaan.
Ehkä joku voisi todentaa onko nämä variaatiot edes toimivia:

connectPacket[] = {0xfc, 0x5a, 0x01, 0x30, 0x02, 0xca, 0x01, 0xa8};
byte requestDataPacket[] = {0xfc, 0x5a, 0x01, 0x30, 0x02, 0x62, 0x01, 0x10};

tai

byte connectPacket[] = {0xfc, 0x5a, 0x01, 0x30, 0x02, 0xca, 0x01, 0x9e};
byte requestDataPacket[] = {0xfc, 0x5a, 0x01, 0x30, 0x02, 0x62, 0x01, 0x06};

tai

byte connectPacket[] = {0xfc, 0x5b, 0x01, 0x30, 0x02, 0x00, 0x00, 0x76};
byte requestDataPacket[] = {0xfc, 0x5b, 0x01, 0x30, 0x02, 0x62, 0x01, 0x05};

Ja tätäkin kokeiltu 2400 ja 9600
Serial2.begin(9600, SERIAL_8E1, 16, 17);

Tekoälyltä ja minulta loppui jo ideat ;D
 

Liitteet

  • WhatsApp Image 2026-05-25 at 17.25.34.jpeg
    WhatsApp Image 2026-05-25 at 17.25.34.jpeg
    311,8 KB · Katsottu: 13

jkoljo

Aktiivinen jäsen
Mulla on tällainen koodi käytössä yllä esitellyn Wemos kytkennän kanssa. Noi Dallakset ja uloskommentoidun external lämpöanturijutun voit siivota halutessasi pois. Jos jätät Dallaksen koodiin niin tuo todennäköisesti silti toimii, mutta antaa vain virhekoodin/unknown sensoriarvon Dallaksille.

Level shifterit voi olla hankalia debugata ilman skooppia tai logiikka-analysaattoria. Jossei ala ratkeamaan tuolla allaolevalla koodilla niin hanki tuollainen wemos? Kiinasta saa halvalla, tai https://ihmevekotin.fi/esp8266/501-wemos-d1-mini-v3-nodemcu-esp8266-iot-kehitysalusta-kopio.html

YAML:
# External component reference
external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

# As of 2026.4 ESPHome there is also mitsubishi_cn105 component available internally!

esphome:
  name: fd25bridge
  friendly_name: Mitsubishi FD25 Wifi Bridge

esp8266:
  board: d1_mini

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  min_auth_mode: WPA2

logger:
  # ESP8266 only - disable serial port logging, as the HeatPump component
  # needs the sole hardware UART on the ESP8266
  hardware_uart: UART1
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
      key: !secret encryption_key

ota:
  - platform: esphome

# Sync time with Home Assistant.
#time:
#  - platform: homeassistant
#    id: homeassistant_time

# Temperature sensors (Dallas DS18B20)
one_wire:
  - platform: gpio
    pin: D5
    id: dallas1
  - platform: gpio
    pin: D6
    id: dallas2

# Sensors with general information.
sensor:
  - platform: uptime
    name: Uptime

  - platform: dallas_temp
    one_wire_id: dallas1
    address: 0x3600000037cb3328
    name: "Exhaust"
    accuracy_decimals: 2
    update_interval: 15s

  - platform: dallas_temp
    one_wire_id: dallas2
    address: 0xf800000038b86028
    name: "Intake"
    accuracy_decimals: 2
    update_interval: 15s

#  - platform: homeassistant
#    name: "Remote Temperature Sensor"
#    entity_id: "sensor.ruuvitag_living_room_temperature" # Replace with your HomeAssistant remote sensor entity id, or include in substitutions
#    internal: false
#    disabled_by_default: true
#    device_class: temperature
#    state_class: measurement
#    unit_of_measurement: "°C"
#    filters:
#      - clamp: # Limits values to range accepted by Mitsubishi units
#          min_value: 1
#          max_value: 40
#          ignore_out_of_range: true
#      - throttle: 30s
#    on_value:
#      then:
#        - logger.log:
#            level: INFO
#            format: "Remote temperature received from HA: %.1f C"
#            args: [ 'x' ]
#        - lambda: 'id(hp).set_remote_temperature(x);'

# Climate entity configuration
climate:
  - platform: cn105
    id: hp
    name: "Mitsu Heatpump"
    update_interval: 4s        # update interval can be adjusted after a first run and logs monitoring
    remote_temperature_timeout: 30min
    debounce_delay : 100ms
    visual:
      min_temperature: 16
      max_temperature: 31
      temperature_step:
        target_temperature: 0.5
        current_temperature: 0.5
    # Various optional sensors, not all sensors are supported by all heatpumps
    compressor_frequency_sensor:
      name: Compressor Frequency
      entity_category: diagnostic
      disabled_by_default: false
    vertical_vane_select:
      name: Vertical Vane
      disabled_by_default: false
    horizontal_vane_select:
      name: Horizontal Vane
      disabled_by_default: false
    isee_sensor:
      name: ISEE Sensor
      disabled_by_default: false
 

masimies

Tulokas
Tuossa koodissa pisti silmään että siinä ei ole ns kättelyä ensinkään. Tekoäly kovasti väittää että pumppu pitäisi herättää ensin. Ja vielä level-shifterin avulla ilmaista että CN105:een on jotain kytkettynä. Riippuu varmaan mallista miten antaa dataa ulos.
 

jkoljo

Aktiivinen jäsen
Jotain tuettujen ominaisuuksien hakua tuo kirjasto tekee käynnistyksessä. Kirjasto toimii ainakin FD25, LN25 ja RW25n kanssa. Ei ole tarvinnut erikseen rakennella kättelyitä.
 
Back
Ylös Bottom