AirTouch4 Binding - OH3 and OH4

@mtrax I just saw your bug report on github. This actually looks to be an issue with my handling of the response message from the AirTouch5. Polyaire do made changes to their API from time to time, and my copy of the spec if a year or two old. I’ll reach out to them and get an updated spec.

Let’s continue this convo on your github issue.

thanks for your work @netwolfuk , I have installed the latest addon (5.0.3) and I can see it in the things list but when I start / activate I get “unknown” and openhab.log has the following:

java.lang.NullPointerException: Cannot invoke "airtouch.model.ControlRequest.getBytes()" because "controlRequests[i]" is null
        at airtouch.v5.handler.AbstractControlHandler.assembleRequest(AbstractControlHandler.java:26) ~[?:?]
        at airtouch.v5.handler.ZoneControlHandler.generateRequest(ZoneControlHandler.java:19) ~[?:?]
        at org.openhab.binding.airtouch.internal.handler.AirTouch5ServiceImpl.requestFullUpdate(AirTouch5ServiceImpl.java:70) ~[?:?]
        at org.openhab.binding.airtouch.internal.handler.AirTouch5Handler.lambda$0(AirTouch5Handler.java:275) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.lang.Thread.run(Thread.java:1583) [?:?]

here is my thing file

Thing airtouch:airtouch5-controller:myhvac [host="192.168.0.15"]

Hmm, I see in the console app, I don’t do that initial control request.

I wonder why I am doing that in the OH code. I’ll need to dig into it a bit more, but won’t get to look at it until tomorrow sorry.

oh, it looks like I should just be calling the status handler, rather than the control handler. Oops

Please try latest release Releases · airtouch-java/openhab-addons · GitHub

good news !! I can see all the channels , now I’m trying to create items to link .

however I see the device has a “#” instead of a “:” in the channel definition (not sure what that means??) and I see an error (below)

eg

Switch  AT_Daikin_Power  "AC Daikin Power"   (hvac)   { channel="airtouch:airtouch5-controller:myhvac:ac-unit-0#airconditioner-unit-power" }

openhab.log

2026-05-12 08:18:30.602 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading DSL model 'airtouch.items'
2026-05-12 08:20:14.710 [WARN ] [5.connector.Airtouch5ConnectorThread] - Could not handle finished message
java.lang.IllegalArgumentException: Unable to resolve ControlOrStatusMessageSubType from supplied byte. Supplied byte is: '45'
        at airtouch.v5.constant.MessageConstants$ControlOrStatusMessageSubType.getFromBytes(MessageConstants.java:160) ~[bundleFile:?]
        at airtouch.v5.handler.MessageHandler.determineSubMessageMetaData(MessageHandler.java:118) ~[bundleFile:?]
        at airtouch.v5.handler.MessageHandler.handle(MessageHandler.java:79) ~[bundleFile:?]
        at airtouch.v5.connector.Airtouch5ConnectorThread.handleFinishedMessage(Airtouch5ConnectorThread.java:126) ~[bundleFile:?]
        at airtouch.v5.connector.Airtouch5ConnectorThread.run(Airtouch5ConnectorThread.java:104) [bundleFile:?]

Looking at this page, I don’t think the # is the issue. Items can be : or # delimited.

It looks like my code is not handling that byte 45 correctly. Do you see the same behaviour in the console app?

no I couldn’t see any errors in the console app

and yes using the UID with “#” doesn’t seem to be an issue.

Could I please ask you to set the logging level to TRACE for org.openhab.binding.airtouch, and then create an issue with the details of the message? As per Logging | openHAB

It should be something like this in the karaf tool.

log:set TRACE org.openhab.binding.airtouch

log:set TRACE airtouch

log:tail

issue created Unable to resolve ControlOrStatusMessageSubType from supplied byte. Supplied byte is: '45' · Issue #1 · airtouch-java/openhab-addons · GitHub