Connected HWAM stove

Hello everyone

I have a connected Hwam stove, it is connected via Wi-Fi to my box, controlled via an application on iPhone, all via Wi-Fi, impossible remotely via 4G.
There is also a small Bluetooth sensor I think that serves as an ambient temperature probe to adjust the stove valves.

I found this work on Github in Python for Home Assistant.

Would a kind developer passing by feel like looking at this with me to get it into Gladys?
I know, it’s exotic hardware, customers for this stove are rare and even more so those under Gladys… :stuck_out_tongue:

For a second, I thought you were talking about a frying pan :sweat_smile: I thought to myself « what’s the point of that?! » :joy:

I’m quite busy working on scenes in my v4 on my end, I won’t have the time right now!

If you have any info about the API, it wouldn’t be refused.

It’s a small issue, I can’t find it.
The only information I have comes from the Home Assistant GitHub repository.
I tried contacting the manufacturer but no news…

You should check these URLs to see how authentication is handled.

https://github.com/mvn23/hwam_stove/blob/master/pystove/pystove.py

0! I think you just need to be on the local network…

Return from http://192.168.1.179/get_stove_data

{
   "updating":0,
   "message_id":176,
   "phase":0,
   "night_lowering":0,
   "new_fire_wood_hours":0,
   "new_fire_wood_minutes":0,
   "burn_level":5,
   "operation_mode":2,
   "maintenance_alarms":0,
   "safety_alarms":0,
   "refill_alarm":0,
   "remote_refill_alarm":0,
   "time_since_remote_msg":33,
   "version_major":1,
   "version_minor":9,
   "version_build":9,
   "remote_version_major":1,
   "remote_version_minor":4,
   "remote_version_build":0,
   "day":15,
   "month":2,
   "year":2020,
   "hours":7,
   "minutes":24,
   "seconds":51,
   "night_begin_hour":22,
   "night_begin_minute":0,
   "night_end_hour":6,
   "night_end_minute":0,
   "stove_temperature":6600,
   "room_temperature":1900,
   "oxygen_level":1600,
   "valve1_position":103,
   "valve2_position":101,
   "valve3_position":0,
   "algorithm":"TEST DATA",
   "doorOpen":false
}

So for a seasoned small developer, it shouldn’t be too violent to integrate into Gladys, at least for data retrieval… :stuck_out_tongue:

Oh, that shouldn’t be too complicated. :blush:

I’ve formatted the JSON to make it more readable.

Will you be able to post the results of all the get* URLs?

http://192.168.1.179/esp/get_current_accesspoint

HTTP/1.1 200 OK
Content-Type: text/json
Access-Control-Allow-Origin: *
Connection: close

HTTP/1.1 200 OK
Content-Type: text/json
Access-Control-Allow-Origin: *
Connection: close

{"ssid":"WiWi"}

http://192.168.1.179/esp/get_identification

{"ip":"192.168.1.179", "name":"Popo"}

http://192.168.1.179/get_live_data

It makes me download an empty file called get_live_data

Popo? :grin:

The file, I understood, is XML.

« Poele » :stuck_out_tongue:

For the file, I opened it with VSCode, the format is not supported… oO
When I forced the opening, there are indeed data, but the rendering is Chinese…

From what I’ve understood, « get_live_data » is returned in binary… That’s why it’s not human-readable. But I’m not sure if this information will be useful to you right away.
In theory, if you want to control the heating level of your stove, it seems that the route « /set_burn_level » is your friend.
In Postman, you should be able to make a POST request to this URL by specifying in the body:

{
  "level": 1
}

The question is, what range of « level » is available to you.
I imagine that by manually setting your stove to the MIN and MAX values, and querying « /get_stove_data » before and after the changes, you should be able to deduce the threshold values from the response to the key « burn_level ».
This should allow you to adjust your stove to « more or less strong ».
My 2 cents

hello,

I am posting on this topic that interests me because I have a hwam stove.
The get commands work, but the post set_burn_level command does not work. When the request is executed, it gives an OK response, but the result is that for different values tested, I always get the result level = 0

Is there a way to find the right command or parameter? I am ready to help, even though I am not an expert.

regards

and here I found the correct formatting:

{« level »:1}

and set header: accept application/json

A developer who developed a script: Client Challenge
and an interesting thread: [gelöst] Wert (JSON) an URL senden