OS: _what OS is used and which version_WinX latest
Java Runtime Environment: _which java platform is used and what version_jre8 (Oracle, latest)
openHAB version: 2
Issue of the topic: please be detailed explaining your issue: I apologize in advance if this is a stupid question (or covered by a post I haven’t found). I recently found openHAB and was drawn in by the possibility of Google Home support. I am a longtime Vera user, but was interested enough that I am moving everything from the Vera to give it a shot. I have a Honeywell Z-Wave thermostat and am trying to get it configured with openHAB. I have it set now with a generic config which is definitely lacking some of the things it needs to work properly. I found an xml file which appears to have everything I need but the format is different from what my system has. I am thinking maybe this has to do with the move from OH1 to OH2? If there’s a way to merge the specific info to the generic config file that’s be ideal.
I am using the Aeotec Z-stick gen5 as a z wave gateway.
I am doing most of the things in Paper UI.
Please post configurations (if applicable):
This is what OH2 came up with:
Number
Thermostat Mode
Sets the thermostat mode
Temperature
Auto
Off
Economy Heat
Cool
Economy Cool
Heat
Resume
Number
Thermostat Fan Mode
Sets the thermostat fan mode
Temperature
Auto (Low)
On (Low)
Circulate
Number
Thermostat Fan State
Sets the thermostat fan state
Temperature
Idle
</thing:thing-descriptions>
Sitemap configuration related to the issue
Rules code related to the issue
Services configuration related to the issue
If logs where generated please post these here using code fences:
The device is in the openHAB zwave database, so all you need to do is include it to your zwave controller, add the Thing from your inbox, link available channels to your items and start using it.
Makes sense. Maybe I am missing something else. I can see a reported temperature. I can set a temperature, although it errors out when I send it. What I thought I could accomplish with this other config data was to take things that it reports now, eg fan status, and make them into text instead of numbers. Right now it might say something like: Fan off: 0 Fan on:1 Fan auto 2. What I’d like it to do is display “on” “off” or “auto”
Do I need to go and download the thing from that zwave database?
Transformation is what I’d like to do but I can’t seem to find where to put the transformation. The examples I’ve found are done in rules- I’m just trying to display the status of the thing. Right now I have all the states coming in as numbers. if I change them to strings then they display nothing at all. It seems like it should be something really simple but the lightbulb isn’t on just yet.
The map files go to your /transform folder.
If you need to manipulate the state, put your map call in your channel definition, if you need to manipulate the display name, put the map call in your label definition and change the format to string. Example:
But first make sure your thermostat setpoint item (if you are using this) is working, because with transformations things can get tricky. There should be no need to use transforming to make your thermostat working …
Seems like I a have a java problem with that setpoint. I had reinitialized the unit and after that attempted to make a change from 75 to 70 (degrees F in cooling) and captured the zwave log:
12:36:42.909 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 17: Updating channel state zwave:device:3e121ab5:node17:switch_binary to ON [OnOffType]
12:36:42.909 [DEBUG] [l.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Get, dest=17, callback=21, payload=11 02 25 02
12:36:42.914 [DEBUG] [l.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 11 03 25 03 FF
12:36:42.914 [DEBUG] [l.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=21, expected=ApplicationCommandHandler, cancelled=false transaction complete!
12:36:42.915 [DEBUG] [ave.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
12:36:42.915 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 17: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent
12:36:42.916 [DEBUG] [tocol.ZWaveController$ZWaveSendThread] - NODE 17: Response processed after 69ms/4990ms.
12:37:10.784 [INFO ] [smarthome.event.ItemCommandEvent ] - Item 'ZWaveNode25TH8320ZWVisionPROZWaveTouchscreenProgrammableThermostat_SetpointCooling' received command 70 ?
12:37:10.787 [INFO ] [enhab.binding.upb.internal.UPBBinding] - UPB binding starting up...
12:37:10.785 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Command received zwave:device:3e121ab5:node25:thermostat_setpoint_cooling --> 70 ?
12:37:10.793 [INFO ] [smarthome.event.ItemStateChangedEvent] - ZWaveNode25TH8320ZWVisionPROZWaveTouchscreenProgrammableThermostat_SetpointCooling changed from 75.0 ? to 70 ?
12:37:10.798 [ERROR] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Command received with no implementation (QuantityType).
12:37:10.893 [ERROR] [org.openhab.binding.upb ] - [org.openhab.binding.upb.binding(211)] The activate method has thrown an exception
java.lang.RuntimeException: Failed to open serial port.
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:81) [483:org.openhab.binding.upb:1.12.0]
at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:307) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:299) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) [39:org.apache.felix.scr:2.0.12]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.obtain(EventHandlerProxy.java:286) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:407) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.RuntimeException: Port does not exist
at org.openhab.binding.upb.internal.UPBBinding.openSerialPort(UPBBinding.java:234) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:77) ~[?:?]
... 32 more
Caused by: gnu.io.NoSuchPortException
at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:273) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.openSerialPort(UPBBinding.java:232) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:77) ~[?:?]
... 32 more
12:37:10.904 [WARN ] [org.openhab.binding.upb ] - FrameworkEvent WARNING - org.openhab.binding.upb
org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:232) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.obtain(EventHandlerProxy.java:286) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:407) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
12:37:57.725 [DEBUG] [ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0C 00 04 00 19 06 31 05 01 2A 02 EE 1B
12:37:57.729 [DEBUG] [ave.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
12:37:57.731 [DEBUG] [zwave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0C 00 04 00 19 06 31 05 01 2A 02 EE 1B
12:37:57.731 [DEBUG] [ave.internal.protocol.ZWaveController] - Process Message = 01 0C 00 04 00 19 06 31 05 01 2A 02 EE 1B
12:37:57.732 [DEBUG] [ave.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 19 06 31 05 01 2A 02 EE
12:37:57.732 [DEBUG] [essage.ApplicationCommandMessageClass] - NODE 25: Application Command Request (ALIVE:DONE)
12:37:57.733 [DEBUG] [ialization.ZWaveNodeInitStageAdvancer] - NODE 25: Starting initialisation from DONE
12:37:57.733 [DEBUG] [essage.ApplicationCommandMessageClass] - NODE 25: Incoming command class SENSOR_MULTILEVEL
12:37:57.734 [DEBUG] [ass.ZWaveMultiLevelSensorCommandClass] - NODE 25: Received COMMAND_CLASS_SENSOR_MULTILEVEL command V3
12:37:57.734 [DEBUG] [ass.ZWaveMultiLevelSensorCommandClass] - NODE 25: Sensor Multi Level REPORT received
12:37:57.735 [DEBUG] [ass.ZWaveMultiLevelSensorCommandClass] - NODE 25: Sensor Type = Temperature(1), Scale = 1
12:37:57.735 [DEBUG] [ass.ZWaveMultiLevelSensorCommandClass] - NODE 25: Sensor Value = 75
12:37:57.736 [DEBUG] [ave.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveMultiLevelSensorValueEvent
12:37:57.736 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Got an event from Z-Wave network: ZWaveMultiLevelSensorValueEvent
12:37:57.737 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 75
12:37:57.737 [DEBUG] [verter.ZWaveMultiLevelSensorConverter] - NODE 25: Sensor is reporting scale 1, requiring conversion to 1. Value is now 75.
12:37:57.737 [DEBUG] [.converter.ZWaveCommandClassConverter] - Converted temperature from 75F to 75F
12:37:57.740 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Updating channel state zwave:device:3e121ab5:node25:sensor_temperature to 75 [DecimalType]
12:37:57.747 [DEBUG] [essage.ApplicationCommandMessageClass] - NODE 17: Transaction not completed: node address inconsistent. lastSent=17, incoming=255
12:37:57.747 [INFO ] [smarthome.event.ItemStateChangedEvent] - ZWaveNode25TH8320ZWVisionPROZWaveTouchscreenProgrammableThermostat_SensorTemperature changed from 73.0 ? to 75.0 ?
12:38:50.053 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 24: Polling...
12:38:50.059 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 24: Polling deferred until initialisation complete
12:38:50.064 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 14: Polling...
12:38:50.064 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 14: Polling deferred until initialisation complete
12:38:50.085 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling...
12:38:50.086 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 7: Polling deferred until initialisation complete
19:46:35.503 [INFO ] [smarthome.event.ItemCommandEvent ] - Item 'ZWaveNode25TH8320ZWVisionPROZWaveTouchscreenProgrammableThermostat_SetpointCooling' received command 70 ?
19:46:35.505 [DEBUG] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Command received zwave:device:3e121ab5:node25:thermostat_setpoint_cooling --> 70 ?
19:46:35.504 [INFO ] [enhab.binding.upb.internal.UPBBinding] - UPB binding starting up...
19:46:35.509 [INFO ] [smarthome.event.ItemStateChangedEvent] - ZWaveNode25TH8320ZWVisionPROZWaveTouchscreenProgrammableThermostat_SetpointCooling changed from 76.0 ? to 70 ?
19:46:35.508 [ERROR] [nding.zwave.handler.ZWaveThingHandler] - NODE 25: Command received with no implementation (QuantityType).
19:46:35.597 [ERROR] [org.openhab.binding.upb ] - [org.openhab.binding.upb.binding(211)] The activate method has thrown an exception
java.lang.RuntimeException: Failed to open serial port.
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:81) [483:org.openhab.binding.upb:1.12.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:307) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:299) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [39:org.apache.felix.scr:2.0.12]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) [39:org.apache.felix.scr:2.0.12]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.obtain(EventHandlerProxy.java:286) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:407) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.RuntimeException: Port does not exist
at org.openhab.binding.upb.internal.UPBBinding.openSerialPort(UPBBinding.java:234) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:77) ~[?:?]
... 33 more
Caused by: gnu.io.NoSuchPortException
at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:273) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.openSerialPort(UPBBinding.java:232) ~[?:?]
at org.openhab.binding.upb.internal.UPBBinding.activate(UPBBinding.java:77) ~[?:?]
... 33 more
19:46:35.612 [WARN ] [org.openhab.binding.upb ] - FrameworkEvent WARNING - org.openhab.binding.upb
org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:232) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.obtain(EventHandlerProxy.java:286) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:407) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.5]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
I’m reading that UPB is possibly not supported in Windows. Seems like the thermostat shouldn’t need it though because it’s zwave.
Now that is all said and done and I have moved the zwave dongle from a USB3 port to a USB 2 port and learned something about the HABpanel, I think I’m in business.
@chris this seems to be the same issue I am having over at eurotronic-spirit-z-wave-errors Ill move my conversation here since this is dedicated to the thermostat and it seems others are having the same issue.
All it seems to me everything is working except for the setpoints on my setup.
Here is my sitemap with mapping if you want to take it and tweak… Note that two of the items here are read only but I thought it looked nicer as a Selection (Fan State, and Operating State)
FYI I am not using any sitemaps at this point. I’m only using HabPanel or the control section of Paper UI. But based on the above, it seems the problem happens regardless.
Also FYI, the thermostat-to-openhab setpoint updates work properly. When the thermostat reports its setpoint to openhab, it is properly received and displayed in the UI. It’s the openhab-to-thermostat change of setpoints that is making it angy. For example, you try to send it a setpoint of 70, which presumably is sent as 70.0. The thermostat changes to 99, and reports that 99 back to OpenHab, which correctly displays the newly reported setpoint of 99.
Ok so a big part of my problem was I am new to this system. I will explain a little bit here in case it will help someone else.
I had manually bound the zwave things and was using PaperUI as my control method.
Now I understand that PaperUI is better used for administration and troubleshooting.
I had no .items file and no .sitemap file.
These really are critical to getting anything done.
Thermostat specific:
In my .sitemap file I had no troubles mapping the Mode and Fan Mode, as they are selection items and support it. The Operate States on the other hand do not support mapping like the selection items. I had to use transformation for those.
Here’s my Thermostat in the sitemap: It’s now working.
Problem solved. When I looked at the channel properties in HabMin, it had a selection for Fahrenheit vs celsius. It was set to celcius by default. So telling it to go to 70 degrees was being interpreted as 70C which it just can’t do. Once i changed it to F, it stated working fine.