X-MitsContextKey:-> zie automation melcloud.yaml
appVersion: 1.28.1.0
"DeviceID": 12345678,
"DeviceName": "Garage",
"BuildingID": 123456,
Deze tools kan je gebruiker om achter de verschillende codes te komen, na het opzetten van de melcloud app.
Control your Mitsubishi heat pump using PowerShell
Deze scripts laten je toe om de HP en de API key te bekomen, als je hem handmatig niet kan vinden.
Download de Zip en pak deze uit in een folder.
Open van in deze folder de PowerShell-admin
Voer het volgende commando in:
Import-Module .\Control-MELCloudDevice.psd1 -Force
Get-MELCloudContextKey
Geef nu je login (gmail) en paswoord(MCon4awm) in.
Het antwoord geeft je ook de context key
$Key = “your-key”
Maak de variabele gelijk aan de key uit het voorgaande.
Get-MELCloudDeviceInfo -ContextKey $Key
Dit geeft je een lijst van alle variabelen die je kan verkrijgen via MelCloud
Klik recht en kies Inspect
Doe een login in de Melcoud app naar je device
Network/Response/ Client Login
waar je de ContextKey kan vinden.
"ContextKey": "DB8B56B634954643977E3A56CECxxx",
Pas in HA via Studiocode Melcloud.yaml de X-MitsContextKey aan naar de nieuwe waarde.
Refresh REST en Template in Development in HA.
Via de ListDevices/Structure/Devices/DeviceID & BuildingID kan je de DeviceID en BuildingID achterhalen voor een bepaald apparaat.
Deze heb je nodig om nadien met een unieke REST sensor, de gegevens van dit apparaat te kunnen opvragen, nadat je de X-MitsContextKey toegang verkrijgt.
https://app.melcloud.com/Mitsubishi.Wifi.Client/user/ListDevices?id=DDDDDD&buildingID=BBBBBBB
De integratie staat verder omschreven.
Het integreren van de communicatie met de Melcloud cloud is omslachtig en niet stabiel.
Het is aan te raden om gebruik te maken van de ClimaControl module zie 3 ClimaControl module integratie.
Volgende data wordt enkel nog gegeven als hulpmiddel voor het uitzoeken van de nodige parameters en waardes of wanneer de ClimaControl module niet alle waardes ter beschikking stelt.
zie file melcloud.yaml
Extra info:
Integrate REST Calls into Home Assistant
How to access rest-api of a photovoltaic system (documented)?
Integreer de file in je configuration.yaml:
sensor: !include melcloud.yaml
Hiervoor worden helpers type Template gebruikt:
Unit: Kwh
Display precisison: Default (10.5)
Device class: Energy
State class: Total increasing
DailyHeatingEnergyConsumed:
{{ state_attr('sensor.heat_pump_api', 'DailyHeatingEnergyConsumed') }}
DailyHeatingEnergyProduced:
{{ state_attr('sensor.heat_pump_api', 'DailyHeatingEnergyProduced') }}
DailyHotWaterEnergyConsumed:
{{ state_attr('sensor.heat_pump_api', 'DailyHotWaterEnergyConsumed') }}
DailyHotWaterEnergyProduced:
{{ state_attr('sensor.heat_pump_api', 'DailyHotWaterEnergyProduced') }}
TotalHPEnergyConsumed:
{{ ((states('sensor.dailyheatingenergyconsumed')|float) + (states('sensor.dailyhotwaterenergyconsumed')|float))|round(2) }}
TotalHPEnergyProduced:
{{ ((states('sensor.dailyheatingenergyproduced')|float) + (states('sensor.dailyhotwaterenergyproduced')|float))|round(2) }}
Voor de cop gebruik je de device class balance, omdat dit kan zonder Unit of measurement
COPHeating
{{ ((states('sensor.dailyheatingenergyproduced')|float) / (states('sensor.dailyheatingenergyconsumed')|float))|round(2) }}
COPHotWater
{{ ((states('sensor.dailyhotwaterenergyproduced')|float) / (states('sensor.dailyhotwaterenergyconsumed')|float))|round(2) }}
COPTotal
{{ ((states('sensor.totalhpenergyproduced')|float) / (states('sensor.totalhpenergyconsumed')|float))|round(2) }}
Hiervoor genereer je een helper, die gebruik maakt van de Heatpump frequency.
HP_on_off
{% if (states("sensor.heat_pump_api") not in ["unknown", "unavailable"]) and (state_attr('sensor.heat_pump_api', 'HeatPumpFrequency') != None) %}
{% if state_attr('sensor.heat_pump_api', 'HeatPumpFrequency')|int > 0 %}
true
{% else %}
false
{% endif %}
{% endif %}
Voor de urenteller kan je gebruik maken van een template sensor die de tijd berekend van de ON toestand.
Deze kan je toevoegen aan de melcloud.yaml file.
Door hem toe te voegen aan het history_stats wordt deze voor lange tijd bewaard en bekom je zo een totaal uren teller.
#statistcal values
- platform: history_stats
type: time
name: HP_on_day
entity_id: binary_sensor.hp_on_off
state: "on"
start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
end: "{{ now() }}"
De apex-chart integratie laat je toe om verschillende signalen in een grafiek onder te brengen.
In het voorbeeld zie je verschillende Y assen met heel wat sensoren van de heat_pump, maar ook sensoren, zoals de load van andere energiemeters.
Code
type: custom:apexcharts-card
graph_span: 24h
update_interval: 2m
header:
show: true
title: Melcoud
show_states: true
colorize_states: true
yaxis:
- id: temp
decimals: 1
align_to: 0.1
min: -15
- id: load
decimals: 1
align_to: 0.1
opposite: true
min: 0
- id: energy
decimals: 1
align_to: 0.1
opposite: true
max: 10
min: 0
- id: freq
decimals: 0
align_to: 0
min: 0
max: 150
now:
show: false
label: Now
series:
- entity: sensor.heat_pump_outdoortemperature
name: Buitentemperatuur
type: line
yaxis_id: temp
stroke_width: 1
- entity: sensor.heat_pump_tankwatertemperature
name: DHW
yaxis_id: temp
type: line
stroke_width: 2
color: orange
float_precision: 3
- entity: sensor.heat_pump_mixingtankwatertemperature
name: Mixingtank
yaxis_id: temp
type: line
stroke_width: 1
color: red
float_precision: 3
- entity: sensor.heat_pump_flowtemperature
name: flowtemp
yaxis_id: temp
type: line
stroke_width: 1
color: purple
float_precision: 3
- entity: sensor.heat_pump_returntemperature
name: returntemp
yaxis_id: temp
type: line
stroke_width: 1
float_precision: 3
- entity: sensor.heat_pump_roomtemperaturezone1
name: room
yaxis_id: temp
type: line
stroke_width: 1
color: green
float_precision: 3
- entity: sensor.alb002022090937_instantaneous_load
name: Load
yaxis_id: load
curve: stepline
stroke_width: 1
color: cornflowerblue
group_by:
func: avg
duration: 1min
- entity: sensor.heat_pump_condensingtemperature
name: Condensetemp
yaxis_id: temp
curve: stepline
type: line
stroke_width: 1
color: cyan
float_precision: 3
- entity: sensor.heat_pump_heatpumpfrequency
name: HPspeed
yaxis_id: freq
type: line
curve: stepline
stroke_width: 1
color: violet
float_precision: 3
- entity: sensor.hp_current_poweruse
name: HPpwr
yaxis_id: energy
type: line
curve: stepline
stroke_width: 2
color: brown
float_precision: 3
- entity: sensor.heat_pump_targethctemperaturezone1
name: Target zone1
yaxis_id: temp
type: line
stroke_width: 1
color: blueviolet
float_precision: 3
- entity: sensor.heat_pump_targethctemperaturezone2
name: Target zone2
yaxis_id: temp
type: line
stroke_width: 1
color: purple
float_precision: 3
- entity: sensor.heat_pump_defrostmode
name: defrost
yaxis_id: energy
type: line
curve: stepline
stroke_width: 1
color: '#999999'
De volgende grafiek laat je toe om in detail de temperaturen te bezien van de HP, waardoor het verder optimaliseren en instellen van de HP mogelijk wordt.
Zoals je kan zien is er geen overshoot meer bij de opstart, omdat het vermogen van de HP beperkt is.
Dit was nodig, samen met het instellen van een vaste Ta van 36c.
https://www.mitsubishi-les.info/database/servicemanual/files/BH79D674L01.pdf op P5
Vermogenbeperking: Ecodan kabeltje, Buitenunit SW7-1 op ON. zie Special function
50%=34Hz, 75%=50Hz, 100%=72Hz
Code
type: custom:apexcharts-card
graph_span: 6h
update_interval: 2m
header:
show: true
title: Melcoud-Temperature curve
show_states: true
colorize_states: true
yaxis:
- id: temp
decimals: 1
align_to: 0.1
- id: defrost
decimals: 0
align_to: 0.1
opposite: true
show: false
min: 0
max: 4
- id: solarnow
decimals: 1
align_to: 0.1
opposite: true
min: 0
- id: freq
decimals: 0
align_to: 0
min: 0
max: 150
now:
show: false
label: Now
series:
- entity: sensor.heat_pump_mixingtankwatertemperature
name: Mixingtank
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: '#00EE00'
float_precision: 3
- entity: sensor.heat_pump_flowtemperature
name: flowtemp
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#00DD00'
float_precision: 3
- entity: sensor.heat_pump_returntemperature
name: returntemp
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#00AA00'
float_precision: 3
- entity: sensor.heat_pump_targethctemperaturezone1
name: Target zone1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: '#0000EE'
float_precision: 3
- entity: sensor.heat_pump_flowtemperaturezone1
name: Flow1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#0000DD'
float_precision: 3
- entity: sensor.heat_pump_returntemperaturezone1
name: Return1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#0077AA'
float_precision: 3
- entity: sensor.heat_pump_targethctemperaturezone2
name: Target zone2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: '#EE0000'
float_precision: 3
- entity: sensor.heat_pump_flowtemperaturezone2
name: Flow2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#DD0000'
float_precision: 3
- entity: sensor.heat_pump_returntemperaturezone2
name: Return2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: '#AA7700'
float_precision: 3
- entity: sensor.heat_pump_tankwatertemperature
name: DHW
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: orange
float_precision: 3
- entity: sensor.heat_pump_condensingtemperature
name: Condensetemp
yaxis_id: temp
curve: stepline
type: line
stroke_width: 1
color: cyan
float_precision: 3
- entity: sensor.heat_pump_heatpumpfrequency
name: HPspeed
yaxis_id: freq
type: line
curve: stepline
stroke_width: 1
color: violet
float_precision: 3
- entity: sensor.heat_pump_defrostmode
name: defrost
yaxis_id: defrost
type: line
curve: stepline
stroke_width: 1
color: '#999999'
De ClimaControl is een module die tussen de standaard wifi module van Mitsubishi (C105) wordt geplaatst en zelf via een eigen protocol de data om zet en naar de mqtt server van homeassistant doorstuurt.
Er bestaan modules voor lucht-lucht en lucht-water warmtepompen.
De module bevat een website van waarop je de configuratie en het monitoren kan doen en meld zich als: heatpump.local aan in je dns (bij mij op 10.99.25.180)
De connectie met Home Assistant gebeurt door een verbinding te maken met de HA mqtt server met de nodige credentials, die je vooraf aanmaakt in HA.
Je installeert als device de MQTT
Je maakt een user aan met paswoord om toegang te krijgen tot de mqtt
Als alles vlot loopt, kan je met een tool zoals mqtt-explorer nagaan dat alle data in je mqtt database terecht komt.
In de MQTT entities zal je alle variabelen terug kunnen vinden die door de module ter beschikking worden gesteld in een formaat waarmee HA aan de slag kan.
Je kan deze nadien opnemen in verschillende dashboards, zowel voor history logging als controle.
Als voorbeeld vind je hier een ApexChart waarin verschillende variabelen zijn samen gebracht.
Met deze grafiek kan je nagaan of de regeling van je warmtepomp optimaal verloopt.
Nog niet alle variabelen zijn geïntegreerd, waardoor de controle van de setpunten van de verschillende zones en de buitentemperatuur op de condensor niet gemeten worden (N/A).
In onderstaand voorbeeld zie je hoe je ook de Defrost mode kan laten zien, zodat je de correlatie tussen de temperaturen en de defrost goed kan tonen.
De binaire waarde die als tekst wordt aangeboden vanuit de module wordt dmv transform omgevormd naar een werkelijke waarde die zichtbaar is in de grafiek.
- entity: sensor.climacontrol_living_room_defrost_active
name: defrost
yaxis_id: defrost
type: line
curve: stepline
stroke_width: 2
color: "#999999"
transform: "return x=='False'? 0 : 1;"
Code ApexChart
type: custom:apexcharts-card
graph_span: 6h
update_interval: 2m
header:
show: true
title: Melcoud-Temperature ClimaControl
show_states: true
colorize_states: true
yaxis:
- id: temp
decimals: 1
align_to: 0.1
- id: defrost
decimals: 0
align_to: 0.1
opposite: true
show: false
min: 0
max: 10
- id: solarnow
decimals: 1
align_to: 0.1
opposite: true
min: 0
- id: freq
decimals: 0
align_to: 0
min: 0
max: 150
now:
show: false
label: Now
series:
- entity: sensor.climacontrol_living_room_mixing_tank_temperature
name: Mixing
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: "#00FF00"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_feed_temperature
name: flowtemp
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#00DD00"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_return_temperature
name: returntemp
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#00AA00"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_1_setpoint
name: Target zone1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: "#0000EE"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_1_feed_temperature
name: Flow1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#0000DD"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_1_return_temperature
name: Return1
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#0077AA"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_2_setpoint
name: Target zone2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 2
color: "#EE0000"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_2_feed_temperature
name: Flow2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#DD0000"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_zone_2_return_temperature
name: Return2
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: "#AA7700"
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_dhw_temp_secondary
name: DHW
yaxis_id: temp
type: line
curve: smooth
stroke_width: 1
color: orange
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.heat_pump_condensingtemperature
name: Condensetemp
yaxis_id: temp
curve: stepline
type: line
stroke_width: 1
color: cyan
float_precision: 1
- entity: sensor.climacontrol_living_room_compressor_freq
name: HPspeed
yaxis_id: freq
type: line
curve: stepline
stroke_width: 1
color: violet
float_precision: 1
group_by:
func: avg
duration: 10min
- entity: sensor.climacontrol_living_room_defrost_active
name: defrost
yaxis_id: defrost
type: line
curve: stepline
stroke_width: 2
color: "#999999"
transform: "return x=='False'? 0 : 1;"
- entity: sensor.climacontrol_living_room_outdoor_temperature
name: Buitentemperatuur
type: line
curve: smooth
yaxis_id: temp
stroke_width: 1
color: "#990099"
group_by:
func: avg
duration: 10min
- entity: sensor.shelly_ht3b_temperature
name: Buitentemperatuur Veranda
type: line
curve: smooth
yaxis_id: temp
stroke_width: 1
color: "#bb00bb"
- entity: sensor.alphaess_current_house_load
name: Load
yaxis_id: solarnow
curve: stepline
stroke_width: 1
color: cornflowerblue
group_by:
func: avg
duration: 1min
view_layout:
position: main