Holmes WeMo Humidifier

I think I figured this out… I used a packet sniffer and got the following when setting fan to “MIN” value…

POST /upnp/control/deviceevent1 HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.1.74
Content-Length: 1052
SOAPACTION: "urn:Belkin:service:deviceevent:1#SetAttributes"
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body>
  <u:SetAttributes xmlns:u="urn:Belkin:service:deviceevent:1">
     <attributeList>&lt;attribute&gt;&lt;name&gt;FanMode&lt;/name&gt;&lt;value&gt;1&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;DesiredHumidity&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;CurrentHumidity&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;WaterAdvise&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;NoWater&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;FilterLife&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;&lt;attribute&gt;&lt;name&gt;ExpiredFilterTime&lt;/name&gt;&lt;value&gt;NULL&lt;/value&gt;&lt;/attribute&gt;</attributeList>
  </u:SetAttributes>
</s:Body>
</s:Envelope>

And the following response:

HTTP/1.0 200 OK
CONTENT-LENGTH: 288
CONTENT-TYPE: text/xml; charset="utf-8"
DATE: Tue, 08 Dec 2015 04:14:21 GMT
EXT:
SERVER: Unspecified, UPnP/1.0, Unspecified
X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:SetAttributesResponse xmlns:u="urn:Belkin:service:deviceevent:1">
<attributeList>0</attributeList>
</u:SetAttributesResponse>
</s:Body> </s:Envelope>

interestingly enough, if I paste the text inside the “attributeList” tag here and don’t make it “preformatted text” I get something more readable since the above code has XML entity references.

<attribute><name>FanMode</name><value>1</value></attribute>
<attribute><name>DesiredHumidity</name><value>NULL</value></attribute>
<attribute><name>CurrentHumidity</name><value>NULL</value></attribute>
<attribute><name>WaterAdvise</name><value>NULL</value></attribute>
<attribute><name>NoWater</name><value>NULL</value></attribute>
<attribute><name>FilterLife</name><value>NULL</value></attribute>
<attribute><name>ExpiredFilterTime</name><value>NULL</value></attribute>

So I guess to extrapolate… to set Fan mode, you pick a value 1-5 (MIN-MAX), and all other values to NULL.
to set humidity… desired humidity is 0-5 (45%,50%,55%,60%,Max%)

Also… to turn the unit “OFF” you set the FanMode to 0 (which would make sense) and this shows as power off on the WeMo app.

1 Like