[SOLVED] Millheat Wifi Electric heater openhab binding

Yes, it is the binding I am talking about. I just retested it, works fine (the whole openhab installation was not responding properly). The binding is based on reverse engineering of the mobile app, so it is not so easy to add new features.

Besides that I am happy about my MillHeat panels. Happy enought to have bought 7 of them in various forms :slight_smile:

(I am the developer/maintainer of this binding).

Regards

Thanks Arne,
That explains the app - addon relation.
So, back to my first post: Feel free to share a few lines of OH code to just set the temperature. Connecting to Wifi Things will be another Everest climb to me. Iā€™ve had too many already.
Take care.

Well, if you are configuring using files you can add a bridge and a heater thing in a thing file:

Bridge millheat:account:home "Millheat account" [username="email@address.com",password="topsecret"] {
    Thing heater office "Office panel heater" [ macAddress="F0XXXXXXXXX", power=900, heaterId=12345 ] Note: heaterId is a numeric value
} 

Then add a single item

Number:Temperature Heating_Office_Heater_Target_Temperature "Heater target [%.1f %unit%]" <temperature>  {channel="millheat:heater:home:office:targetTemperature"}

Then set your desired temperature via one of your user interfaces/rules.

Note: Auto discovery is even easier, just add the binding, configure the account details and search for things.

Thanks again Arne,
Iā€™m using files only, so this makes sence, but generates a few questions:

  1. Where does the need for username and password come from: the Millheater or its app, openHAB, Wifi router, or do I generate these (for accessing what)??
  2. What is the power=900 for?
  3. Your single Item line uses the targetTemperature to set temperature, but itā€™s Read Only according to the binding documentation. Should it be comfortTemperature insted, which is R/W?

Sorry for the questions, but can hopefully make it easier for subsquent users.

  1. It is the same username/pwd as in the Millheat mobile app
  2. It is used when you use the mill heat wifi plug - you can omit it
  3. If forgot to mention that you need to make your heaters ā€œindependentā€ in the app (not connected to a room) if you want to control them directly. If not you need to control the various comfort/away/sleep etc temperatures. But then you to add the room channels and not the heater channels.

Cheers

Thanks,
Iā€™m sorry, but now Iā€™m confused!!
Final question:
I do not wish/want to interact with the phon app. I just want OH PaperUI to auto detect the two Mill panels and their channels, using the Network and Millheat Bindings, and therafter command the temperature from a simple rule. The final question is if the Millheat binding can do this, or I need to use the phone app to set up the Mill panels first.
Thanks and stay healthy.

In order to add the heaters to your mill heat account you need to use the app.

After that you need to use the millheat app to set the heaters to ā€œindependentā€ mode. Then you can send commands to adjust the temperature directly instead of adjusting the temperature for each comfort/sleep/away mode.

Regards

Thanks, Perfect!
Just one more:
What if there is a power outage? Will that require a re-setup from the phone app or will Mill remenber the setup?

Simple answer: Nothing is lost. But if you are using the room program setup, the heaters will remain at their current temperature until connection is restored - not following the room program.

Cheers

Hello,
I have OH2.5 installation and I have been using the MillHeat binding for few months. It was working properly earlier but I recently noticed that the MillHeat server does not change the setting when I make change in OH. If I look at the OH logs it looks like the temperature is changed but the setting is not changing anything in the heater and after minute or two I can see in the OH log it looks like it changes back to the previous temperature (even though nothing never really changed in the heater setting). When I monitor the MillHeat mobile app there is no change at all in the settings. This happened after the MillHeat mobile app was updated.

OK, it might be that they have changed the API (which is unpublished and require reverse engineering of the app).

I will try to fix this, but I am unable to do it at the moment unfortunately.

Regards

Trying to set it up in OH3 and Mill Heating API is stuck at INITIALIZING. Credentials are correct and donā€™t have any connection problems using their iOS app.

OK, I have yet to test on the latest OH3.

Could you send some logs? Be careful to mask any personal details before sending.

Regards

When initializing the thing (mill heating api):

2021-03-01 19:16:07.892 [DEBUG] [ernal.handler.MillheatAccountHandler] - Finished initializing!
2021-03-01 19:16:07.916 [DEBUG] [llheat.internal.client.RequestLogger] - Request a2f435b80d-0
a2f435b80d-0 > POST https://eurouter.ablecloud.cn:9005/zc-account/v1/login
a2f435b80d-0 > Accept-Encoding: gzip
a2f435b80d-0 > User-Agent: Jetty/9.4.20.v20190813
a2f435b80d-0 > Connection: Keep-Alive
a2f435b80d-0 > X-Zc-Major-Domain: seanywell
a2f435b80d-0 > X-Zc-Msg-Name: millService
a2f435b80d-0 > X-Zc-Sub-Domain: milltype
a2f435b80d-0 > X-Zc-Seq-Id: 1
a2f435b80d-0 > X-Zc-Version: 1
a2f435b80d-0 > Content-Type: application/x-zc-object
a2f435b80d-0 > Host: eurouter.ablecloud.cn:9005
a2f435b80d-0 > Content-Length: 62
{
  "account": "xxx",
  "password": "xxx"
}
2021-03-01 19:16:08.045 [DEBUG] [llheat.internal.client.RequestLogger] - Response a2f435b80d-0
a2f435b80d-0 < HTTP/1.1 200 OK
a2f435b80d-0 < Content-Length: 269
a2f435b80d-0 < Content-Type: application/x-zc-object
a2f435b80d-0 < Date: Mon, 01 Mar 2021 18:16:08 GMT
a2f435b80d-0 < X-Zc-Msg-Name: X-Zc-Ack
a2f435b80d-0 < X-Zc-Trace-Id: 23cece7c40a7b82d80523c7ad344238e
{
  "email": "xxx",
  "nickName": "xxx",
  "phone": "",
  "refreshToken": "xxx",
  "refreshTokenExpire": "2021-03-31 18:16:07",
  "token": "xxx",
  "tokenExpire": "2021-03-01 20:16:07",
  "userId": xxx,
  "userProfile": {
    "nick_name": "Jacob",
    "privacyPolicy": 1
  }
}
2021-03-01 19:16:08.053 [DEBUG] [llheat.internal.client.RequestLogger] - Request a2f435b80d-1
a2f435b80d-1 > POST https://eurouter.ablecloud.cn:9005/millService/v1/selectHomeList
a2f435b80d-1 > Accept-Encoding: gzip
a2f435b80d-1 > User-Agent: Jetty/9.4.20.v20190813
a2f435b80d-1 > Connection: Keep-Alive
a2f435b80d-1 > X-Zc-Major-Domain: seanywell
a2f435b80d-1 > X-Zc-Msg-Name: millService
a2f435b80d-1 > X-Zc-Sub-Domain: milltype
a2f435b80d-1 > X-Zc-Seq-Id: 1
a2f435b80d-1 > X-Zc-Version: 1
a2f435b80d-1 > Content-Type: application/x-zc-object
a2f435b80d-1 > X-Zc-Timestamp: 1614622568
a2f435b80d-1 > X-Zc-Timeout: 300
a2f435b80d-1 > X-Zc-Nonce: T1YT612DGZ1HO8VA
a2f435b80d-1 > X-Zc-User-Id: xxx
a2f435b80d-1 > X-Zc-User-Signature: xxx
a2f435b80d-1 > X-Zc-Content-Length: 2
a2f435b80d-1 > Host: eurouter.ablecloud.cn:9005
a2f435b80d-1 > Content-Length: 2
{}
2021-03-01 19:16:08.177 [DEBUG] [llheat.internal.client.RequestLogger] - Response a2f435b80d-1
a2f435b80d-1 < HTTP/1.1 200 OK
a2f435b80d-1 < Content-Length: 514
a2f435b80d-1 < Content-Type: application/x-zc-object
a2f435b80d-1 < Server: Jetty(9.1.5.v20140505)
a2f435b80d-1 < X-Zc-Msg-Name: X-Zc-Ack
a2f435b80d-1 < X-Zc-Trace-Id: 78ca216c40afce9780d359b78192aded
a2f435b80d-1 < Date: Mon, 01 Mar 2021 18:16:08 GMT
{
  "hourSystem": 1,
  "homeList": [
    {
      "maxTemperature": 0,
      "maxTemperatureMsg": "Temperature range is limited by administrator to 5-35ā„ƒ",
      "homeAlways": 0,
      "changeTemperature": 0,
      "homeName": "xxx",
      "isHoliday": 0,
      "holidayStartTime": 0,
      "timeZone": "+1:00",
      "modeMinute": 0,
      "modeStartTime": 0,
      "holidayTemp": 10,
      "modeHour": 0,
      "changeTemperatureMsg": "Temperature change not allowed by administrator",
      "currentMode": 0,
      "holidayEndTime": 0,
      "holidayTempType": 1,
      "homeType": 0,
      "homeId": 202012301029070016,
      "programId": 202012301029070016
    }
  ]
}
2021-03-01 19:16:08.183 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.time.DateTimeException: Invalid ID for ZoneOffset, non numeric characters found: +1:00
	at java.time.ZoneOffset.parseNumber(ZoneOffset.java:269) ~[?:?]
	at java.time.ZoneOffset.of(ZoneOffset.java:221) ~[?:?]
	at org.openhab.binding.millheat.internal.model.Home.<init>(Home.java:62) ~[?:?]
	at org.openhab.binding.millheat.internal.handler.MillheatAccountHandler.refreshModel(MillheatAccountHandler.java:267) ~[?:?]
	at org.openhab.binding.millheat.internal.handler.MillheatAccountHandler.lambda$0(MillheatAccountHandler.java:183) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:834) [?:?]
==> /var/log/openhab/events.log <==
2021-03-01 19:16:07.878 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'millheat:account:xxx' changed from UNINITIALIZED (DISABLED) to INITIALIZING

When scanning for things:

2021-03-01 19:18:51.030 [DEBUG] [l.discovery.MillheatDiscoveryService] - Start scan for Millheat devices on account millheat:account:a2f435b80d
2021-03-01 19:18:51.037 [DEBUG] [llheat.internal.client.RequestLogger] - Request a2f435b80d-2
a2f435b80d-2 > POST https://eurouter.ablecloud.cn:9005/millService/v1/selectHomeList
a2f435b80d-2 > Accept-Encoding: gzip
a2f435b80d-2 > User-Agent: Jetty/9.4.20.v20190813
a2f435b80d-2 > Connection: Keep-Alive
a2f435b80d-2 > X-Zc-Major-Domain: seanywell
a2f435b80d-2 > X-Zc-Msg-Name: millService
a2f435b80d-2 > X-Zc-Sub-Domain: milltype
a2f435b80d-2 > X-Zc-Seq-Id: 1
a2f435b80d-2 > X-Zc-Version: 1
a2f435b80d-2 > Content-Type: application/x-zc-object
a2f435b80d-2 > X-Zc-Timestamp: 1614622731
a2f435b80d-2 > X-Zc-Timeout: 300
a2f435b80d-2 > X-Zc-Nonce: Y282AZ6QNVDB4P6D
a2f435b80d-2 > X-Zc-User-Id: xxx
a2f435b80d-2 > X-Zc-User-Signature: 3845a61ae62140d03a7813f52891c1bdc4677ede
a2f435b80d-2 > X-Zc-Content-Length: 2
a2f435b80d-2 > Host: eurouter.ablecloud.cn:9005
a2f435b80d-2 > Content-Length: 2
{}
2021-03-01 19:18:51.137 [DEBUG] [llheat.internal.client.RequestLogger] - Response a2f435b80d-2
a2f435b80d-2 < HTTP/1.1 200 OK
a2f435b80d-2 < Content-Length: 514
a2f435b80d-2 < Content-Type: application/x-zc-object
a2f435b80d-2 < Server: Jetty(9.1.5.v20140505)
a2f435b80d-2 < X-Zc-Msg-Name: X-Zc-Ack
a2f435b80d-2 < X-Zc-Trace-Id: 581c8220402aa1e980603f915754bd42
a2f435b80d-2 < Date: Mon, 01 Mar 2021 18:18:51 GMT
{
  "hourSystem": 1,
  "homeList": [
    {
      "maxTemperature": 0,
      "maxTemperatureMsg": "Temperature range is limited by administrator to 5-35ā„ƒ",
      "homeAlways": 0,
      "changeTemperature": 0,
      "homeName": "xxx",
      "isHoliday": 0,
      "holidayStartTime": 0,
      "timeZone": "+1:00",
      "modeMinute": 0,
      "modeStartTime": 0,
      "holidayTemp": 10,
      "modeHour": 0,
      "changeTemperatureMsg": "Temperature change not allowed by administrator",
      "currentMode": 0,
      "holidayEndTime": 0,
      "holidayTempType": 1,
      "homeType": 0,
      "homeId": 202012301029070016,
      "programId": 202012301029070016
    }
  ]
}
2021-03-01 19:18:51.142 [ERROR] [nternal.DiscoveryServiceRegistryImpl] - Cannot trigger scan for thing types '[millheat:room, millheat:heater, millheat:home]' on 'MillheatDiscoveryService'!
java.time.DateTimeException: Invalid ID for ZoneOffset, non numeric characters found: +1:00
	at java.time.ZoneOffset.parseNumber(ZoneOffset.java:269) ~[?:?]
	at java.time.ZoneOffset.of(ZoneOffset.java:221) ~[?:?]
	at org.openhab.binding.millheat.internal.model.Home.<init>(Home.java:62) ~[?:?]
	at org.openhab.binding.millheat.internal.handler.MillheatAccountHandler.refreshModel(MillheatAccountHandler.java:267) ~[?:?]
	at org.openhab.binding.millheat.internal.handler.MillheatAccountHandler.updateModel(MillheatAccountHandler.java:331) ~[?:?]
	at org.openhab.binding.millheat.internal.handler.MillheatAccountHandler.updateModelFromServerWithRetry(MillheatAccountHandler.java:308) ~[?:?]
	at org.openhab.binding.millheat.internal.discovery.MillheatDiscoveryService.startScan(MillheatDiscoveryService.java:65) ~[?:?]
	at org.openhab.core.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:194) ~[bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:377) [bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:362) [bundleFile:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:211) [bundleFile:?]
	at org.openhab.core.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:105) [bundleFile:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) [bundleFile:1.0.9]
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) [bundleFile:1.0.9]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) [bundleFile:1.0.9]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) [bundleFile:1.0.9]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) [bundleFile:1.0.9]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) [bundleFile:1.0.9]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) [bundleFile:1.0.9]
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [bundleFile:1.0.9]
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [bundleFile:1.0.9]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) [bundleFile:1.0.9]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) [bundleFile:3.1.0]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [bundleFile:1.0.9]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]
	at java.lang.Thread.run(Thread.java:834) [?:?]

java.time.DateTimeException: Invalid ID for ZoneOffset, non numeric characters found: +1:00

It appears that they are no longer following the ISO8601 standard on timezone information; the standard mandates 2 digits for each segment (hour/minutes) while they are sending just 1.

I wonā€™t be able to create a workaround for this very soon, but please file a bug on github. You may try to adjust the timezone in the Millheat app to UTC to see if they send something parseable then.

Regards
Arne

Ok, just filed a bug report.

Canā€™t find a way to change the time zone using the Millheat app, tried both iOS and Android.
It is displayed under Settings>Date and time, but canā€™t be changed. And there is no info at their site either, just that it gets the time from the cloud.

Check this out:
https://api.millheat.com/

Best regards

1 Like

Cool!

Yes I am aware of it. Unfortunately it is quite limited.

Regards

Hello Together,

Iā€™ve ordered an ā€œmill PA900Wifi3ā€ because of this OpenHab binding.

Summary: Iā€™m not happy with itā€¦ ā†’ I think it goes back.

My Idea:
I want to control the temperature of my small Bathroom by OpenHab.

What works well:
Adding the ā€œmill PA900Wifi3ā€ into my local network.
Installing the Smartphone app ā€œMill Norwayā€
Control the Heater by this app, works also well
Adding and connectiing the OpenHab Binding (Gateway) works well
->If you add your Heater to an Room in the app ā€œMill Norwayā€
Then adding a Room to OpenHab works also well.
->If you add your Heater as standalone the app ā€œMill Norwayā€
Then adding the Heater as standalone in OpenHab works also wellā€¦

Now the Problems:
ā†’ Iā€™m not able to control the temperature of the Room!
ā†’ The documentation says it sould be possible to R/W these variables. But it isnā€™t.

Here in this test. I try to set the Away and Sleep Mode to 27 degree. After a view seconds the old values are backā€¦
(I have done several tests and tries, no success.)


@bjovas
Do you have an Idea what is wrong here in openHAB 3.1.0 Release Build ?

Also if I add the Heater as ā€œStandaloneā€ this means without connection to any Room. Then you are not able to see the additional settings like ā€œtargetTemperatureā€. (Mentioned in the binding documentation)

Last problem:
Iā€™m not able to switch the heater off by OpenHabā€¦

If I add

Not so beautiful:
The Temperature is shown as wrong value:
image

Solution:
Send the heater back, buy a more simple heater and control it by an switchable socketā€¦