{"id":281,"date":"2018-10-27T12:18:20","date_gmt":"2018-10-27T10:18:20","guid":{"rendered":"http:\/\/techblog.vindvejr.dk\/?p=281"},"modified":"2018-10-27T19:11:26","modified_gmt":"2018-10-27T17:11:26","slug":"miele-xgw3000-firmware-2-3-4","status":"publish","type":"post","link":"https:\/\/techblog.vindvejr.dk\/?p=281","title":{"rendered":"Miele XGW3000 firmware 2.3.4"},"content":{"rendered":"<p>New firmware, this time noticed a bit late, since <a href=\"http:\/\/www1.miele.com\/media\/ex\/int\/service\/downloads\/XGW3000_version.txt\" rel=\"noopener\" target=\"_blank\">XGW3000_version.txt<\/a> is still showing 2.3.0. I guess I should switch to http:\/\/GATEWAY\/Rest\/Update\/ and check &#8220;AvailableVersion&#8221;, or once again reverse engineer how the gateway checks the version. Anyway, here goes&#8230;<\/p>\n<p><strong>Release 2.3.4 &#8211; 12.09.2018<\/strong><\/p>\n<ul>\n<li>Improved Miele@mobile behavior in conjunction with ZigBee appliances<\/li>\n<li>Stability improvements and bugfixing<\/li>\n<\/ul>\n<p>Good news is the this fixes the Miele@mobile app so it doesn&#8217;t crash anymore on startup. I guess this reveals that they changed the API between the app and the gateway in app version 2.9.4 and didn&#8217;t provide backwards compatibility for the existing gateway API. So the app was constantly crashing until the gateway firmware received an update. Not elegant.<\/p>\n<p>First observation: It seems like phases for my oven (H 5581 BP) isn&#8217;t supported anymore. Running self-clean\/pyrolysis:<\/p>\n<p><strong>Homebus<\/strong><\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;information&gt;\r\n&lt;key name=&quot;Appliance Type&quot; value=&quot;Oven&quot;\/&gt;\r\n&lt;key name=&quot;State&quot; value=&quot;Running&quot; type=&quot;state&quot; raw=&quot;5&quot;\/&gt;\r\n&lt;key name=&quot;Remaining Time&quot; value=&quot;1:21&quot; type=&quot;duration&quot; raw=&quot;81&quot;\/&gt;\r\n&lt;\/information&gt;\r\n<\/pre>\n<p><strong>Rest<\/strong><\/p>\n<pre>\r\n{\"SignalFailure\":false,\r\n\"TargetTemperature\":[0,0],\r\n\"Temperature\":[0,0],\r\n\"SignalInfo\":false,\r\n\"ProgramID\":2348810240,\r\n\"InternalState\":0,\r\n\"RemainingTime\":[1,24],\r\n\"RemoteEnable\":[0,0,0],\r\n\"Status\":5,\r\n\"ProgramPhase\":3072,\r\n\"ProgramType\":1,\r\n\"ExtendedState\":\"000C100500110000000100000000110400000000000000000018010000000000000000000242000000000000400000000000000000000000000000\",\r\n\"ElapsedTime\":[0,42],\r\n\"SignalDoor\":false,\r\n\"Light\":0,\r\n\"ProcessAction\":0,\r\n\"StartTime\":[0,0]}\r\n<\/pre>\n<p>These are my notes for ProgramPhase 3072 and pyrolysis:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\t\t\tcase 3072:\r\n\t\t\t\t\/\/ Purpose unknown, seems to be set when the oven is just turned on.\r\n\t\t\t\t\/\/ Catch it here to avoid excessive logging.\r\n\t\t\t\treturn setPhase(PHASE_UNKNOWN);\r\n&#x5B;...]\r\n\t\t\tcase 3076:\r\n\t\t\t\treturn setPhase(PHASE_PYROLYSIS);\r\n<\/pre>\n<p>Also, temperature is now reported as 0\u00b0C. Removing functionality for my oven is just sad, since it&#8217;s the appliance with least functionality already (for example, ProgramID&#8217;s are not supported). Here&#8217;s how it looks in Miele&#8217;s own app now:<\/p>\n<p><a href=\"https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503-169x300.jpg\" alt=\"Miele@mobile screenshot\" width=\"169\" height=\"300\" class=\"alignnone size-medium wp-image-286\" srcset=\"https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503-169x300.jpg 169w, https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503-768x1365.jpg 768w, https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503-576x1024.jpg 576w, https:\/\/techblog.vindvejr.dk\/wp-content\/uploads\/2018\/10\/Screenshot_20181027-121503.jpg 1080w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/a><\/p>\n<p><strong>Update\/precision:<\/strong> This bug was probably caused by the fact that I upgraded the firmware on the gateway while the oven program was running. Since the phase didn&#8217;t change after the gateway rebooted, the gateway probably had some uninitialized values. I guess it should be possible to query the devices after a boot to get updated values, but I don&#8217;t know which limitations may exist. So the bug is there, but it&#8217;s rare.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New firmware, this time noticed a bit late, since XGW3000_version.txt is still showing 2.3.0. I guess I should switch to http:\/\/GATEWAY\/Rest\/Update\/ and check &#8220;AvailableVersion&#8221;, or once again reverse engineer how the gateway checks the version. Anyway, here goes&#8230; Release 2.3.4 &hellip; <a href=\"https:\/\/techblog.vindvejr.dk\/?p=281\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,9],"tags":[],"class_list":["post-281","post","type-post","status-publish","format-standard","hentry","category-iot","category-mielehome"],"_links":{"self":[{"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=281"}],"version-history":[{"count":8,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=\/wp\/v2\/posts\/281\/revisions\/300"}],"wp:attachment":[{"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techblog.vindvejr.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}