Homematic - set_temperature fails


I am using homematic wall thermostats to control heating. Setup is armv71, Raspbian GNU/Linux 9 (stretch). This has worked fine for two years. However, at the beginning of this heating period, I cannot set temperatures any more.

  1. In PaperUI (or my sitemap), I can read the actual temperature
  2. In PaperUI (or my sitemap), I can set Auto to Manu and vice versa,I can change temperature offset etc.

… only Set_Temperature won’t do.

error.log shows that the temperature has been changed
openhab.log shows

    java.lang.IllegalArgumentException: Invalid URI host: null (authority: null)
    at org.eclipse.jetty.client.HttpClient.checkHost(HttpClient.java:510) ~[?:?]
    at org.eclipse.jetty.client.HttpClient.newHttpRequest(HttpClient.java:495) ~[?:?]
    at org.eclipse.jetty.client.HttpClient.newRequest(HttpClient.java:453) ~[?:?]
    at org.eclipse.jetty.client.HttpClient.newRequest(HttpClient.java:442) ~[?:?]
    at org.eclipse.smarthome.io.net.http.HttpUtil.executeUrlAndGetReponse(HttpUtil.java:212) ~[?:?]
    at org.eclipse.smarthome.io.net.http.HttpUtil.downloadData(HttpUtil.java:438) ~[?:?]
    at org.eclipse.smarthome.io.net.http.HttpUtil.downloadData(HttpUtil.java:417) ~[?:?]
    at org.openhab.binding.miio.internal.cloud.CloudConnector.getMap(CloudConnector.java:141) ~[?:?]
    at org.openhab.binding.miio.internal.handler.MiIoVacuumHandler.getMap(MiIoVacuumHandler.java:585) ~[?:?]
    at org.openhab.binding.miio.internal.handler.MiIoVacuumHandler.lambda$7(MiIoVacuumHandler.java:521) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_265]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_265]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_265]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_265]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_265]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_265]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]

I have no clue, who is the baddy here.
Any help very welcome!

Many thanks,

Hi Nikolaus,

I think this exception is not caused by the Homematic binding. As far as I can see it caused by the Miio binding.

Can you give us some more information about your environment? Especially which openHAB version and which thermostat device you are using. If it is a HmIP thermostat please check the channel definition. With the latest openHAB version ist should be defined as “Number:Temperature”. If this is not the case you can remove the thing and discover it anew.

If this does not help, please enable TRACE log mode for the Homematic binding and try to change the temperatures. Then please post the content of the openhab.log.

Hi Martin,

many thanks for your fast answer.

openHAB is 2.5.9, and I am using HG-BC-TC-C-WM-4 (MAX! Wandthermostat). What confused me is that the problem arose simultaneously with all of my six HG-BCs. However, rediscovering solved the issue promptly.

Thanks again!

Hi Nikolaus,

I have introduced a fix for temperature channels for HmIP devices. These channels were not defined as Number:Temperature and this caused some trouble. It seems that “by accident” also the channels of MAX! thermostats were affected by this change. That’s why all of your devices had the same problem simultaneously.

It’s good to hear that now everything is working again. It would nice if you could mark this thread as solved.