Does Maveo send any interesting messages after it connects to a fake MQTT server? Can you at least see status changes, e.g. door open/opening/closing/closed?
The client does not check server’s certificate at all, but the Amazon cloud does check client’s certificate, so it is not easily possible to eavesdrop the original MQTT message flow…
Well I have tried it myself. It is sending the same {id}/rsp messages as the above linked thtemme’s cloud client is receiving! (and some more messages {id}/cloud_request to the cloud service like full status report and firmware update request). It seems to be usable locally already - if it also receives the same {id}/cmd messages (yes, it is suscribing to this topic). Hope Maveo is not going to upgrade the Stick to check server’s certificate in near future for others… I am blocking its access to internet already since now
I’m getting new garage doors installed with Maveo and am interested in replicating what you’ve done here. Can you confirm if I’m understanding correctly?
Connected Maveo to Wifi
Monitored its connections and found a DNS record it was reaching out to (for you eu-central-1.iot-prod.marantec-cloud.de)
Hosted your own eclipse-mosquito instance.
Created your own cert and key
Set this broker to publish records to Home Assistant
Used pihole as your local DNS server to override the record and point to the local instance
Restarted the Maveo, which pulled the new IP address from pihole’s DNS record and published/subscribed to the local server instead.
Is that all correct? If so, I then have a few questions…
If you publish to the appropriate topic on the broker, can you start/pause the door?
How did you generate the cert and key?
Could you (or @kouli ) share where the topic data structure looks like?
Actually I just got this setup myself with the mosquitto eclipse MQTT broker. I can see state changes like { "StoA_s": 4 } coming through. Did you already build Home Assistant entities that can translate these into something readable (like a cover) and have the commands to send back?
You have to connect to Wifi using the standard app. And then you do a DNS rewrite for eu-central-1.iot-prod.marantec-cloud.de to the IP address of your HA server, running EMQX. That will give you all the information about it. And then you should be able to use the yaml I have added before.
You can find the device IDs usings the topics that were registred into EMQX.
For me it doesn’t connect to EMQX due to authentication error. It’s sending a username of “?SDK=C&Version=3.0.1” and an empty password. Did you set a specific authorization policy?
No, it worked out of the box for me, I think. From what I have read, if you add some authentication methods to EQMX, it will then stop allowing anonymous.
Did you just install EQMX or were you already using it before?
I have done exactly that and I wish I had known about EQMX from the start. I wouldn't have tried with mosquitto at all then, it's just better in every conceivable way.
Short version:
Remove mosquitto addon.
Install EMQX addon.
Do NOT configure a user-store in EMQX (as it doesn't support empty passwords).
Update MQTT Integration to point to EMQX (it won't be hostname core-mosquitto anymore).
If you use Zigbee2MQTT, update that to the new hostname as well.
Done. HomeAssistant will pick up any MQTT entity that was in mosquitto from EMQX now, no reconfiguration of entities / devices needed.