Broadlink / Floureon/Hysen-Thermostat Binding

@bachel1, @andreaem A colleague of mine has similar issues with his thermostat. One difference we found so far on reverse lookups (e.g. with dig):

dig -x <thermostat ip>

returns

42.XXX.XXX.XXX.in-addr.arpa. 9	IN	PTR	BroadLink-OEM-T1-XX-XX-ea.fritz.box.

in my working case, while it returns

152.XXX.XXX.XXX.in-addr.arpa. 0    IN    PTR    ESP_AF3809.localdomain.

in my colleague’s non-working case. Maybe you can run the reverse-lookup as well, to see if this is consistent. My feeling is that the ESP (that could be the ESP8266 or ESP32 microcontroller) chip is the newer version of the thermostat that uses a totally different protocoll (and app).

Hey it returns

52…168.192.in-addr.arpa. 9 IN PTR ESP-A1FEFF.fritz.box

It has an esp12f module in it

I’m glad to hear that the binding works for you out of the box!
I added the two mentioned channels in a new build: https://github.com/flo-02-mu/openhab2-addons/releases/download/0.1.4-bl/org.openhab.binding.broadlink-2.5.0-SNAPSHOT.jar
As I don’t have an external sensor, I cannot really test this. Retrieving the temperature will probably work, switching might need a bit more work, but feel free to try it out.

1 Like

@flo-02-mu
I got:

; <<>> DiG 9.11.5-P4-5.1-Raspbian <<>> -x 192.168.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49012
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;5.1.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
5.1.168.192.in-addr.arpa. 86400	IN	PTR	ESP_33C623.
5.1.168.192.in-addr.arpa. 86400	IN	PTR	ESP_33C623.homenet.telecomitalia.it.

;; Query time: 1 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Dec 06 00:31:00 CET 2019
;; MSG SIZE  rcvd: 115

So I think is not the newer version?

Ill give this a go too, as my Thermostat has an external temp sensor for the floor

Thanks for the update, now the channels are discovered, but no data is updated to them and values remain null. Here is a log snippet that shows that channels are discovered, but only the earlier channel values are instantly updated after discovery. I’ve run this overnight and it remains the same. I do have the old MQTT setup running and the values are updating on that side.

2019-12-08 12:21:44.463 [INFO ] [.discovery.BroadlinkDiscoveryService] - Discovery service found 2 broadlink devices.
2019-12-08 12:21:44.572 [home.event.InboxAddedEvent] - Discovery Result with UID 'broadlink:floureonthermostat:192-168-1-83' has been added.
2019-12-08 12:21:44.571 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'broadlink:floureonthermostat:192-168-1-83' to inbox.
2019-12-08 12:21:54.808 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_power-broadlink:floureonthermostat:192-168-1-83:power' has been added.
2019-12-08 12:21:54.832 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_mode-broadlink:floureonthermostat:192-168-1-83:mode' has been added.
2019-12-08 12:21:54.856 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_sensor-broadlink:floureonthermostat:192-168-1-83:sensor' has been added.
2019-12-08 12:21:54.879 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_roomtemperature-broadlink:floureonthermostat:192-168-1-83:roomtemperature' has been added.
2019-12-08 12:21:54.902 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_roomtemperatureexternalsensor-broadlink:floureonthermostat:192-168-1-83:roomtemperatureexternalsensor' has been added.
2019-12-08 12:21:54.925 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_active-broadlink:floureonthermostat:192-168-1-83:active' has been added.
2019-12-08 12:21:54.953 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_setpoint-broadlink:floureonthermostat:192-168-1-83:setpoint' has been added.
2019-12-08 12:21:54.979 [.ItemChannelLinkAddedEvent] - Link 'broadlink_floureonthermostat_192_168_1_83_temperatureoffset-broadlink:floureonthermostat:192-168-1-83:temperatureoffset' has been added.
2019-12-08 12:21:55.039 [me.event.InboxRemovedEvent] - Discovery Result with UID 'broadlink:floureonthermostat:192-168-1-83' has been removed.
2019-12-08 12:21:55.057 [hingStatusInfoChangedEvent] - 'broadlink:floureonthermostat:192-168-1-83' changed from UNINITIALIZED to INITIALIZING
2019-12-08 12:21:55.132 [hingStatusInfoChangedEvent] - 'broadlink:floureonthermostat:192-168-1-83' changed from INITIALIZING to ONLINE
2019-12-08 12:21:55.317 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_roomtemperature changed from NULL to 23.5 °C
2019-12-08 12:21:55.327 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_setpoint changed from NULL to 19.0 °C
2019-12-08 12:21:55.331 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_power changed from NULL to ON
2019-12-08 12:21:55.335 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_mode changed from NULL to auto
2019-12-08 12:21:55.337 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_temperatureoffset changed from NULL to 1.0 °C
2019-12-08 12:21:55.339 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_active changed from NULL to OFF
2019-12-08 12:22:14.623 [INFO ] [.discovery.BroadlinkDiscoveryService] - Discovery service found 2 broadlink devices.

EDIT: Debug log shows the data is there:

2019-12-08 12:56:24.301 [DEBUG] [al.handler.FloureonThermostatHandler] - Retrieved data from device broadlink:floureonthermostat:192-168-1-110: BaseStatusInfo [
remote lock=false,
 power=true,
 active=false,
 manual temp=false,
 room temp=22.5,
 thermostat temp=19.0,
 auto_mode=true,
 loop_mode=D12345_67,
 sensor=EXTERNAL,
 osv=42,
 dif=1,
 svh=30,
 svl=15,
 room_temp_adj=0.0,
 anti freeze=OPEN,
 powerOnMemory=ON_NEED_MEM,
 fac?=0,
 external temp=20.0]

@Jorkki Weird, the code is not really different compared to the other channels. I added two more debug-lines in this build: https://github.com/flo-02-mu/openhab2-addons/releases/download/0.1.5-bl/org.openhab.binding.broadlink-2.5.0-SNAPSHOT.jar

is it possible add this as channel too ?

so u could lock the thermostat by a switch item and protect it from Kids :smiley:

Installed the new binding and restarted OH2. Removed the thermostat and added it again. Logs attached

beok_logs_20191209.txt (10.8 KB)

@_tobi Remote lock channel is added in the next version: https://github.com/flo-02-mu/openhab2-addons/releases/download/0.1.6-bl/org.openhab.binding.broadlink-2.5.0-SNAPSHOT.jar
Worked for me out of the box.

@Jorkki I am missing a debug line (and there is not “active” code between the two outputs). It should look like this:

2019-12-13 11:59:38.718 [DEBUG] [al.handler.FloureonThermostatHandler] - Updating channel roomtemperature with value 18.0
2019-12-13 11:59:38.719 [DEBUG] [al.handler.FloureonThermostatHandler] - Mode manual
2019-12-13 11:59:38.719 [DEBUG] [al.handler.FloureonThermostatHandler] - Updating channel roomtemperatureexternalsensor with value 0.0
2019-12-13 11:59:38.720 [DEBUG] [al.handler.FloureonThermostatHandler] - Updating channel sensor with value INTERNAL

Can you maybe double check if the latest (and only the latest) version is installed? If you use the 0.1.6-bl and check on the openhab console the following command, you should only see one version:

openhab> bundle:list |grep Broadlink                                                                                                                                                         
205 │ Active │  80 │ 2.5.0.201912131049      │ openHAB Add-ons :: Bundles :: Broadlink Binding

That solved it, I had made the mistake of just renaming the old bindings to .old and left the files in the same folder so it was actually running three versions at the same time. Deleted the files and added the latest one and everything works now. I can also confirm the Remote Lock channel also updates.

2019-12-13 21:33:20.432 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_roomtemperature changed from NULL to 23.5 °C
2019-12-13 21:33:20.457 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_roomtemperatureexternalsensor changed from NULL to 18.0 °C
2019-12-13 21:33:20.502 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_setpoint changed from NULL to 19.0 °C
2019-12-13 21:33:20.595 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_power changed from NULL to ON
2019-12-13 21:33:20.671 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_mode changed from NULL to auto
2019-12-13 21:33:20.750 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_sensor changed from NULL to EXTERNAL
2019-12-13 21:33:20.808 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_temperatureoffset changed from NULL to 1.0 °C
2019-12-13 21:33:20.959 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_active changed from NULL to ON
2019-12-13 21:33:20.967 [vent.ItemStateChangedEvent] - broadlink_floureonthermostat_192_168_1_83_remotelock changed from NULL to OFF

Thanks so much for your work, really appreciated.

thx for adding :+1:

if you now find a way/channel to set the time and date too
you make me realy realy happy :smiley:

https://github.com/flo-02-mu/openhab2-addons/releases/download/0.1.7-bl/org.openhab.binding.broadlink-2.5.0-SNAPSHOT.jar

It’s not ideal though: I think DateTime is the correct item, but the thermostat actually just uses time + day of the week. The (pseudo)date is taken from the systems date+time.

Hello, I am using a BEOK BOT-313Wifi. I have installed the last binding (0.1.7-bl).
It detects the device but then I got a bunch of errors:

18:22:10.525 [INFO ] [smarthome.event.InboxRemovedEvent    ] - Discovery Result with UID 'broadlink:floureonthermostat:192-168-1-96' has been removed.
18:22:10.529 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'broadlink:floureonthermostat:192-168-1-96' changed from UNINITIALIZED to INITIALIZING
18:22:10.547 [ERROR] [com.github.mob41.blapi.BLDevice      ] - auth Received datagram decryption error. Aborting method
java.lang.NegativeArraySizeException: null
        at com.github.mob41.blapi.BLDevice.subbytes(BLDevice.java:935) ~[311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at com.github.mob41.blapi.BLDevice.getRawPayloadBytesPadded(BLDevice.java:901) ~[311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at com.github.mob41.blapi.BLDevice.decryptFromDeviceMessage(BLDevice.java:918) ~[311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at com.github.mob41.blapi.dev.hysen.BaseHysenDevice.decryptFromDeviceMessage(BaseHysenDevice.java:74) ~[311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at com.github.mob41.blapi.BLDevice.auth(BLDevice.java:406) [311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at com.github.mob41.blapi.BLDevice.auth(BLDevice.java:366) [311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at org.openhab.binding.broadlink.internal.handler.BroadlinkHandler.authenticate(BroadlinkHandler.java:64) [311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at org.openhab.binding.broadlink.internal.handler.BroadlinkHandler.initialize(BroadlinkHandler.java:76) [311:org.openhab.binding.broadlink:2.5.0.201912152138]
        at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
        at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [133:org.openhab.core:2.5.0.M3]
        at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [133:org.openhab.core:2.5.0.M3]
        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) [?:?]
18:22:10.577 [WARN ] [.blapi.pkt.cmd.hysen.BaseHysenCommand] - GetStatusCommand received an error: fffffff9 / -7
18:22:10.578 [WARN ] [nal.handler.FloureonThermostatHandler] - Device broadlink:floureonthermostat:192-168-1-96 did not return any data. Trying to reauthenticate...
18:22:10.588 [ERROR] [com.github.mob41.blapi.BLDevice      ] - auth Received datagram decryption error. Aborting method
java.lang.NegativeArraySizeException: null
        at com.github.mob41.blapi.BLDevice.subbytes(BLDevice.java:935) ~[?:?]
        at com.github.mob41.blapi.BLDevice.getRawPayloadBytesPadded(BLDevice.java:901) ~[?:?]
        at com.github.mob41.blapi.BLDevice.decryptFromDeviceMessage(BLDevice.java:918) ~[?:?]
        at com.github.mob41.blapi.dev.hysen.BaseHysenDevice.decryptFromDeviceMessage(BaseHysenDevice.java:74) ~[?:?]
        at com.github.mob41.blapi.BLDevice.auth(BLDevice.java:406) ~[?:?]
        at com.github.mob41.blapi.BLDevice.auth(BLDevice.java:366) ~[?:?]
        at org.openhab.binding.broadlink.internal.handler.BroadlinkHandler.authenticate(BroadlinkHandler.java:64) ~[?:?]
        at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:191) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
        at java.util.concurrent.FutureTask.runAndReset(Unknown Source) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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) [?:?]
18:22:10.604 [WARN ] [.blapi.pkt.cmd.hysen.BaseHysenCommand] - GetStatusCommand received an error: fffffff9 / -7
18:22:10.610 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'broadlink:floureonthermostat:192-168-1-96' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): Device not responding.
18:22:17.652 [INFO ] [org.quartz.core.QuartzScheduler      ] - Scheduler openHAB-job-scheduler_$_NON_CLUSTERED started.
18:22:29.619 [INFO ] [l.discovery.BroadlinkDiscoveryService] - Discovery service found 1 broadlink devices.
18:23:10.609 [WARN ] [.blapi.pkt.cmd.hysen.BaseHysenCommand] - GetStatusCommand received an error: fffffff9 / -7
18:23:10.610 [WARN ] [nal.handler.FloureonThermostatHandler] - Device broadlink:floureonthermostat:192-168-1-96 did not return any data. Trying to reauthenticate...
18:23:10.616 [ERROR] [com.github.mob41.blapi.BLDevice      ] - auth Received datagram decryption error. Aborting method

Any hint on what went wrong?

no data and some errors for me too:

invalid format for the datetime

2019-12-17 21:21:06.113 [ERROR] [al.handler.FloureonThermostatHandler] - Error while retrieving data for broadlink:floureonthermostat:BroadLink-OEM-T1-eb-d2-fe

java.lang.IllegalArgumentException: 2019-12-17T22:20:4 is not in a valid format.

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:101) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.valueOf(DateTimeType.java:120) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:214) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: java.time.format.DateTimeParseException: Text '2019-12-17T00:00:00T22:20:4' could not be parsed, unparsed text found at index 19

	at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952) ~[?:?]

	at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:?]

	at java.time.LocalDateTime.parse(LocalDateTime.java:492) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.parse(DateTimeType.java:187) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:96) ~[?:?]

	... 9 more

error 34 (??)

2019-12-17 21:23:17.370 [ERROR] [al.handler.FloureonThermostatHandler] - Error while retrieving data for broadlink:floureonthermostat:BroadLink-OEM-T1-eb-d2-fe

java.lang.ArrayIndexOutOfBoundsException: 34

	at com.github.mob41.blapi.pkt.cmd.hysen.BaseHysenCommand.execute(BaseHysenCommand.java:38) ~[?:?]

	at com.github.mob41.blapi.dev.hysen.BaseHysenDevice.getAdvancedStatus(BaseHysenDevice.java:102) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:188) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Item:

DateTime bl_thermostat_whz_datetime "Mode" <time> { channel="broadlink:floureonthermostat:BroadLink-OEM-T1-XX-XX-XX:time" }

Sitemap:

Default item=bl_thermostat_whz_datetime label="Zeit"

@_tobi If found the problem for that issue. Fix is in https://github.com/flo-02-mu/openhab2-addons/releases/download/0.1.8-bl/org.openhab.binding.broadlink-2.5.0-SNAPSHOT.jar

@regissg This kind of error is new to me. It is the authentication-call that fails, but it fails in a different way like other users (with probably unsupported devices) were reporting so far.
It would be helpful if you enable debug-logging also for the broadlink-library by setting:

log:set debug com.github.mob41.blapi

(and then re-add the device to force the error to appear. If the log-setting was correct, you should see lines like:

auth Authentication method starts
auth Sending CmdPacket with AuthCmdPayload: cmd=.. len=..
auth AuthPayload initial bytes to send: [...]
auth recv encrypted data bytes ("XY") after initial req: [...]
auth Decrypting encrypted data

(and the next entry should be the above exception).

I have a logging question, a bit of background first. My power utility company sells “night time” electricity for a bit lower price than “day time” electricity. This means that there is an automatic switch that turns the underfloor heating on between 10pm to 6am. The problem is that during daytime the thermostats are offline and I get an error entry in the logs from every thermostat every minute saying its unreachable. Is this due to enhanced logging in the current binding and will it stay like this once the binding is official?

Here is the log, it only appears during day time when the thermostats are offline:

==> /var/log/openhab2/openhab.log <==
2019-12-20 15:22:38.065 [ERROR] [al.handler.FloureonThermostatHandler] - Error while retrieving data for broadlink:floureonthermostat:192-168-1-94
java.lang.ArrayIndexOutOfBoundsException: 34    	at com.github.mob41.blapi.pkt.cmd.hysen.BaseHysenCommand.execute(BaseHysenCommand.java:38)~[?:?]    	at com.github.mob41.blapi.dev.hysen.BaseHysenDevice.getAdvancedStatus(BaseHysenDevice.java:102)~[?:?]    	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:188) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

Still got some errors.
error 34 is still there
second one maybe caused because the 0 is missing here ?!
2019-12-20T23:9:19

2019-12-20 23:10:43.423 [ERROR] [al.handler.FloureonThermostatHandler] - Error while retrieving data for broadlink:floureonthermostat:BroadLink-OEM-T1-eb-ce-97

java.lang.IllegalArgumentException: 2019-12-20T23:9:19 is not in a valid format.

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:101) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.valueOf(DateTimeType.java:120) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:214) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.handleCommand(FloureonThermostatHandler.java:71) ~[?:?]

	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:233) ~[?:?]

	at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: java.time.format.DateTimeParseException: Text '2019-12-20T00:00:00T23:9:19' could not be parsed, unparsed text found at index 19

	at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952) ~[?:?]

	at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:?]

	at java.time.LocalDateTime.parse(LocalDateTime.java:492) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.parse(DateTimeType.java:187) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:96) ~[?:?]

	... 12 more

same here 2019-12-20T0:36:07

2019-12-20 23:37:12.459 [ERROR] [al.handler.FloureonThermostatHandler] - Error while retrieving data for broadlink:floureonthermostat:BroadLink-OEM-T1-eb-d2-fe

java.lang.IllegalArgumentException: 2019-12-20T0:36:07 is not in a valid format.

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:101) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.valueOf(DateTimeType.java:120) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.refreshData(FloureonThermostatHandler.java:214) ~[?:?]

	at org.openhab.binding.broadlink.internal.handler.FloureonThermostatHandler.handleCommand(FloureonThermostatHandler.java:71) ~[?:?]

	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:233) ~[?:?]

	at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: java.time.format.DateTimeParseException: Text '2019-12-20T00:00:00T0:36:07' could not be parsed, unparsed text found at index 19

	at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952) ~[?:?]

	at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:?]

	at java.time.LocalDateTime.parse(LocalDateTime.java:492) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.parse(DateTimeType.java:187) ~[?:?]

	at org.eclipse.smarthome.core.library.types.DateTimeType.<init>(DateTimeType.java:96) ~[?:?]

	... 12 more

Is not working for the RM2 and RM3 with your latest build.

Here is the log when I try to send a command on either.

2019-12-20 22:03:47.349 [ERROR] [org.quartz.core.JobRunShell         ] - Job DEFAULT.Timer 3 2019-12-20T22:03:47.347-06:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ {

  <XFeatureCallImplCustom>.sendCommand(<XStringLiteralImpl>)

  <XFeatureCallImplCustom>.sendCommand(<XStringLiteralImpl>)

  <null>.DelayTimer = <XNullLiteralImplCustom>

} ] threw an unhandled Exception: 

java.lang.IllegalArgumentException: Couldn't invoke 'assignValueTo' for feature JvmVoid:  (eProxyURI: home.rules#|::0.2.16.2.0.1.7.6.1.1.0.2::0::/1)

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValueTo(XbaseInterpreter.java:1314) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:1302) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]

	at com.sun.proxy.$Proxy299.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [bundleFile:?]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?]

==> /var/log/openhab2/events.log <==

2019-12-20 22:03:47.375 [nt.ItemStatePredictedEvent] - LivingRoomEchoDot_Speak predicted to become NULL

==> /var/log/openhab2/openhab.log <==

2019-12-20 22:03:47.374 [ERROR] [org.quartz.core.ErrorLogger         ] - Job (DEFAULT.Timer 3 2019-12-20T22:03:47.347-06:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ {

  <XFeatureCallImplCustom>.sendCommand(<XStringLiteralImpl>)

  <XFeatureCallImplCustom>.sendCommand(<XStringLiteralImpl>)

  <null>.DelayTimer = <XNullLiteralImplCustom>

} ] threw an exception.

org.quartz.SchedulerException: Job threw an unhandled exception.

	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [bundleFile:?]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?]

Caused by: java.lang.IllegalArgumentException: Couldn't invoke 'assignValueTo' for feature JvmVoid:  (eProxyURI: home.rules#|::0.2.16.2.0.1.7.6.1.1.0.2::0::/1)

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValueTo(XbaseInterpreter.java:1314) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:1302) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]

	at com.sun.proxy.$Proxy299.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?]

	... 1 more

==> /var/log/openhab2/events.log <==

2019-12-20 22:03:47.384 [nt.ItemStatePredictedEvent] - BROADLINK predicted to become AV_BOX_POWER

2019-12-20 22:03:47.390 [vent.ItemStateChangedEvent] - BROADLINK changed from SOUND_BAR_POWER to AV_BOX_POWER

==> /var/log/openhab2/openhab.log <==

2019-12-20 22:03:47.368 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.broadlink.handler.BroadlinkRemoteModel2Handler@1d817d04': bundleContext

java.lang.NoSuchFieldError: bundleContext

	at org.openhab.binding.broadlink.handler.BroadlinkRemoteHandler.lookupCode(BroadlinkRemoteHandler.java:110) ~[?:?]

	at org.openhab.binding.broadlink.handler.BroadlinkRemoteHandler.handleCommand(BroadlinkRemoteHandler.java:87) ~[?:?]

	at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) ~[?:?]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]

	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]

	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [bundleFile:?]

	at com.sun.proxy.$Proxy360.handleCommand(Unknown Source) [?:?]

	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:74) [bundleFile:?]

	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) [bundleFile:?]

	at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source) ~[?:?]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]

	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]

	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]