Homewizard climate local MQTT control!

Still working here.

Has anyone got the Princess Smart Fan 3500 working?

Looking at Wireshark it uses cleaner.cloud.homewizard.com and I’ve setup the DNS to redirect to that.

If I connect a Laptop to my IOT LAN then connect to the ws in MQTT Explorer it shows up fine, but the fan never registers.

Looks like the fan does a DNS lookup, but then ignores the response and talks to a Google Cloud IP Address 35.109.201.110

Fan is 192.168.9.29 and DNSMasq Server is 192.168.6.83

Note to anyone else when the DNSMasq server doesn’t respond to a different VLAN you may need to edit the listen-address to include the IP Address the DNS Server is accessible on from the VLAN - e.g.
listen-address=192.168.6.83,127.0.0.1

Wireshark set of requests:-

Anyone any ideas?

Drat, Fresh eyes this morning - and I notice it’s talking on port 433 to my Mosquito sever as well as trying to talk to the Google Cloud address.

Given I have a self signed SSL Certificate on the server, I can decode the request - looks like it’s a https request to /tunnel/challenge

Now to work out how to respond…

Maybe they don’t use MQTT anymore?

Hi! Did you manage to figure this out? I have two of the same fans but network has never been my strong suit.

1 Like

@a1ad Good job. Many thanks for this. I now have it working for my Princess 343700 “Smart Infrared Panel heater 700”. Now I can start making some automations in Node-Red. All to reduce the use of fossil gas and more use the overcapacity of my Solar Panels.

2 Likes

Hi guys,

I tried this but in my logs I seem to only be getting

1658181641: mosquitto version 1.6.12 starting                                   
1658181641: Config loaded from /mosquitto/config/mosquitto.conf.                
1658181641: Opening websockets listen socket on port 8084.                      
1658181641: Opening ipv4 listen socket on port 1883.                            
1658181641: Opening ipv6 listen socket on port 1883.                            
1658181641: Connecting bridge external-bridge (10.0.0.1:1883)                   
1658181641: mosquitto version 1.6.12 running                                    
1658181655: New client connected from ::ffff:10.0.0.239 as ESP32_247B50 (p2, c1>
1658183436: Client ESP32_247B50 already connected, closing old connection.      
1658183436: New client connected from ::ffff:10.0.0.239 as ESP32_247B50 (p2, c1>
1658183436: Socket error on client ESP32_247B50, disconnecting.                 
1658183441: Saving in-memory database to /mosquitto/data/mosquitto.db.

I keep getting terminations with no messages sent across. I have the certificate and key files in the config directory and my config file looks like this:

persistence_location /mosquitto/data/                                           
allow_anonymous true  #tried with and without                                                
                                                                                
log_dest file /mosquitto/log/mosquitto.log                                      
listener 8084                                                                   
protocol websockets                                                             
certfile /mosquitto/config/m.cloud.homewizard.certificate.pem                   
keyfile /mosquitto/config/m.cloud.homewizard.key.pem                            
                                                                                
connection external-bridge                                                      
address 10.0.0.1                                                                
topic appliance/aircon/# both 0                                                 
remote_username mqtt                                                       
remote_password mqtt

10.0.0.239 is the Aircon and seems to be finding the server just can’t seem to do anything else.

Any ideas what is going wrong?

Why are you using port 8084?

(no idea why my prev post is deleted)

That was what was in your docker config (-p 443:8084) and in your mosquitto.conf file as well.

Just copied it over on mine I think (no changes) - would be grateful if you could look at your config and advise. Thanks

Oh, I did not know it was a docker install. It was not clear in the post.

Just to be sure: What is the result of “ping m.cloud.homewizard.com
Can you test again without the bridge config?

When I ping, it seems to resolve correctly to the MQTT broker. is your mosquitto.conf similar to what I’ve got?

ping m.cloud.homewizard.com

Pinging m.cloud.homewizard.com [10.0.0.2] with 32 bytes of data:
Reply from 10.0.0.2: bytes=32 time=5ms TTL=64
Reply from 10.0.0.2: bytes=32 time=4ms TTL=64
Reply from 10.0.0.2: bytes=32 time=2ms TTL=64

Ping statistics for 10.0.0.2:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 5ms, Average = 3ms

Yes it is.

Can you do: “curl htttps://10.0.0.2” from a client on your network and post the output.

Sure, I get. I’m guessing that’s a warning from a self-signed SSL certificate? Do you get that?

curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Yup, like expected.

No idea, I would try to trace my TCP connection with Wireshark. I guess with self-signed certs you can decrypt the traffic and see what’s going on.

On the other hand, perhaps they do not allow self-signed certs anymore…

Edit: Did you try with plain text http of with default MQTT protocol?

Having issues to. I can see the app on the phone uses:
app-ws.homewizard.com

Looks like they are using an api now. My Airco connects to:
push.homewizard.com
provisioning.homewizard.com
climate.homewizard.com
cleaner.homewizard.com
m.cloud.homewizard.com
api.homewizardeasyonline.com

After succesfull provision it only connects to m.cloud.homewizard.com.

m.cloud.homewizard.com is what you want, that is the SSL websocket MQTT connection.

I tried looking into the issue as well. Got a new one, firmware version is 2.15. Got this by manually connecting during setup and visiting 192.168.4.1. You get a JSON with the following info:

{
  "product_type": "heater",
  "product_name": "Heater",
  "mac_address": "xxxxxxxxxxxx",
  "firmware_version": "2.15"
}

Tried to find some URI locations like /config /setup /configuration /admin /install but no success

I had this working for about 2 months. Then I had to upgrade Node-Red because the upgraded Websocket node needed Node-Red v3. I also installed the latest MQTT, just to have everything up-to-date. Now this methode of local control for the Princess IR panel isn’t working anymore. Any idea’s on why it is not working anymore after a upgrade of MQTT (v2.0.15)?

Hi Gert,

I am using “eclipse-mosquitto:1.6.12-openssl” docker for the heater only. With the topics bridged to the main up to date MQTT server. I guess the ssl handling/checking is better implemented in the newer versions.

Explained here: Homewizard climate local MQTT control! - #6 by a1ad

@a1ad Will try the solution you suggested. Many thanks!