Control MCZ Maestro pellet stove via HACore trough MQTT

@Robbe-B First of all - thanks for your work!

Can you tell me, what I’m doing wrong, when I get the error "Try setup again: ‘index-vel_v2’?

I’ve a MCZ EGO Hydromatic 12 M2 which is connected successfully to the cloud (APP works fine)

Screenshot 2023-04-16 180533

Here’s a part of the debug log:

File "/config/custom_components/maestro_mcz/__init__.py", line 77, in _async_update_data
    await self._maestroapi.Refresh()
  File "/config/custom_components/maestro_mcz/maestro/__init__.py", line 175, in Refresh
    self._state = await self.StoveState()
  File "/config/custom_components/maestro_mcz/maestro/__init__.py", line 166, in StoveState
    return State(
  File "/config/custom_components/maestro_mcz/maestro/responses/state.py", line 50, in __init__
    self.index_vel_v2 = json["index_vel_v2"]
KeyError: 'index_vel_v2'
2023-04-16 04:08:33.032 WARNING (MainThread) [homeassistant.config_entries] Config entry '[email protected]' for maestro_mcz integration not ready yet: 'index_vel_v2'; Retrying in background
The above exception was the direct cause of the following exception:

2023-04-16 04:08:52.439 ERROR (MainThread) [custom_components.maestro_mcz] Unexpected error fetching MCZ Stove data: 'index_vel_v2'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 250, in _async_refresh
    self.data = await self._async_update_data()
  File "/config/custom_components/maestro_mcz/__init__.py", line 77, in _async_update_data
    await self._maestroapi.Refresh()
  File "/config/custom_components/maestro_mcz/maestro/__init__.py", line 175, in Refresh
    self._state = await self.StoveState()
  File "/config/custom_components/maestro_mcz/maestro/__init__.py", line 166, in StoveState
    return State(
  File "/config/custom_components/maestro_mcz/maestro/responses/state.py", line 50, in __init__
    self.index_vel_v2 = json["index_vel_v2"]
KeyError: 'index_vel_v2'

Thanks in advance for your help!

PS.: Is there a way to support you and Crisicus?

Hello there, would you be able to make an issue on Github with a diagnostic attached?
You can find the Diagnostic on the device page. I can’t quite tell if you can access that on your screenshot, or if the integration fails to setup entirely.

If you can’t, can you provide the stove model info as shown in the system info page in the app? I’ll make a model specific config for you that doesn’t have the index_vel_v2 so we can move from there.

1 Like

Hello there!

Unfortunately no diagnostic option, as you assumed.
Issue added on github - thanks in advance!
All the best

Hello everyone.

Are there still people using this integration from @Seb_Lz

It stopped working this afternoon for me.
I added an issue on github, and so I double it here :slight_smile:

Here are the logs, that is looping like this.

Connection failed, new attempt in 1.09 seconds
2023-04-26 18:36:52,658 :engineio.client :: INFO :: Exiting read loop task
2023-04-26 18:36:52,657 :socketio.client :: INFO :: Connection failed, new attempt in 1.09 seconds
2023-04-26 18:36:53,753 :engineio.client :: INFO :: Attempting polling connection to http://app.mcz.it:9000/socket.io/?transport=polling&EIO=3
2023-04-26 18:36:53,774 :urllib3.connectionpool :: DEBUG :: http://app.mcz.it:9000 "GET /socket.io/?transport=polling&EIO=3&t=1682527013.754417 HTTP/1.1" 200 121
2023-04-26 18:36:53,777 :engineio.client :: INFO :: Polling connection accepted with {'sid': 'JiM65GUtdXcPnbmoG8kf', 'upgrades': ['websocket'], 'pingInterval': 5000, 'pingTimeout': 25000, 'maxPayload': 1000000}
Engine.IO connection established
2023-04-26 18:36:53,777 :socketio.client :: INFO :: Engine.IO connection established
2023-04-26 18:36:53,778 :engineio.client :: INFO :: Sending packet MESSAGE data 0
2023-04-26 18:36:53,779 :engineio.client :: INFO :: Attempting WebSocket upgrade to ws://app.mcz.it:9000/socket.io/?transport=websocket&EIO=3
2023-04-26 18:36:53,826 :engineio.client :: INFO :: WebSocket upgrade was successful
2023-04-26 18:36:53,828 :engineio.client :: INFO :: Sending packet PING data None
Reconnection successful
2023-04-26 18:36:53,832 :socketio.client :: INFO :: Reconnection successful
2023-04-26 18:36:53,838 :engineio.client :: INFO :: Received packet MESSAGE data 0
Namespace / is connected
2023-04-26 18:36:53,839 :socketio.client :: INFO :: Namespace / is connected
2023-04-26 18:36:53,840 :root :: INFO :: Connected
2023-04-26 18:36:53,841 :root :: INFO :: SID is : JiM65GUtdXcPnbmoG8kf
Emitting event "join" [/]
2023-04-26 18:36:53,842 :socketio.client :: INFO :: Emitting event "join" [/]
2023-04-26 18:36:53,842 :engineio.client :: INFO :: Sending packet MESSAGE data 2["join",{"serialNumber":"xxxxxxxxxxxxx","macAddress":"xxxxxxxxxxxxx","type":"Android-App"}]
Emitting event "chiedo" [/]
2023-04-26 18:36:53,844 :engineio.client :: INFO :: Received packet NOOP data None
2023-04-26 18:36:53,845 :socketio.client :: INFO :: Emitting event "chiedo" [/]
2023-04-26 18:36:53,847 :engineio.client :: INFO :: Sending packet MESSAGE data 2["chiedo",{"serialNumber":"xxxxxxxxxxxxx","macAddress":"xxxxxxxxxxxxx","tipoChiamata":0,"richiesta":"RecuperoParametri"}]
Emitting event "chiedo" [/]
2023-04-26 18:36:53,848 :socketio.client :: INFO :: Emitting event "chiedo" [/]
2023-04-26 18:36:53,850 :engineio.client :: INFO :: Sending packet MESSAGE data 2["chiedo",{"serialNumber":"xxxxxxxxxxxxx","macAddress":"xxxxxxxxxxxxx","tipoChiamata":1,"richiesta":"C|RecuperoInfo"}]
2023-04-26 18:36:53,855 :engineio.client :: WARNING :: WebSocket connection was closed, aborting
2023-04-26 18:36:53,856 :engineio.client :: INFO :: Waiting for write loop task to end
2023-04-26 18:36:53,856 :engineio.client :: INFO :: Exiting write loop task
2023-04-26 18:36:53,858 :engineio.client :: INFO :: Waiting for ping loop task to end
2023-04-26 18:36:53,859 :engineio.client :: INFO :: PONG response has not been received, aborting
2023-04-26 18:36:53,859 :engineio.client :: INFO :: Exiting ping task
Engine.IO connection dropped
2023-04-26 18:36:53,860 :socketio.client :: INFO :: Engine.IO connection dropped
2023-04-26 18:36:53,861 :root :: ERROR :: Disconnected
Connection failed, new attempt in 1.36 seconds
2023-04-26 18:36:53,863 :engineio.client :: INFO :: Exiting read loop task
2023-04-26 18:36:53,863 :socketio.client :: INFO :: Connection failed, new attempt in 1.36 seconds

Does anyone have the same problem ?

Thx a lot

I’ve got exactly the same problem :frowning:

I’m trying to switch from cloud to local connection.

I managed to activate the wifi card of my RPI4 and keep it connected to the stove (which was my main problem 6 month ago …yay)

But there is nothing on the MCZ integration.
nothing in the log, nothing in MQTT Broker …

@Seb_Lz if you are still around we could use a hand :slight_smile:

thx a lot

EDIT : got It … the MQTT topic are different

Hello @o0larry0o , should be fixed in the new version :slight_smile:

Hello @qgene054 : try out the new version, it should be fixed now

Yes, it works again. Thank you @Seb_Lz for the update :+1:

Great !!
thx for still being around :slight_smile:

Although it allowed me to switch to local connection instead of cloud :slight_smile:

About that, I tried to make a fork of your add on to add the possibility to reduce the refresh interval on the local version, but I have no idea how to publish a package …-_-
I’m really not a dev, do you think you could implement it ?

thx a lot

Do you mean you want to increase “get_stove_info_interval” : ha-addons/maestro.py at 77abf1f34901931f7985ff2a1b0e76d1966ced88 · SebLz/ha-addons · GitHub ?
If so, I suppose it should not be too hard to do. I’ll have a look at it when I have some free time (possibly this weekend).

Yes exactly,
I was thinking of a variable in the configuration page/YAML

and actually i was more to decrease it :slight_smile:
15 sec is waaaay to long for me.

I think it’s 20 minutes tops ^^

It would be cool, thx a lot

I’ve published an update with this new parameter, however I haven’t tested it… Since it was quite a small change I took the risk to just modify the code on the fly but would still be good to confirm that it doesn’t break anything else ^^

Niiice.

I’m testing it right now, i’ll keep you posted !
thx a lot

Hello guys,
I only see the sensors and diagnostics on my two pellet stoves. Unfortunately there are no controls.

Greetings from Germany

@Voidfloop,
This should be fixed in the v0.4.0-beta
Where I’ve added Basic support for the M1+ models.
You should see this now:


Cheers !

@Seb_Lz i have tried to setup you addon (i have the old app of mcz). But when i try to add the integration hacore reboot.

Hi, I’m not using any integration, just my addon, not sure what you are referring to

thanks for the answer: but shouldn’t we
install the addon
then go to integrations page
add the stove from there?

if I do “+ integration” and select your mcz maestro addon it gives me the Host of the stove, the port and the seconds between the updates. Then I press send and ha core restarts. I have to do this, right? or do I have to create the stove by hand in the yalm? Thank you

Hello ^^
I’m back here

@Kykkus I looks like your using the add-on from @Seb_Lz AND another integration.

The add-on from Seb, does you need you to go to the integration page, after installing the add-on you need to configure it in the Add-on page to connect your stove