Binding request: Philips air purifier

Hi,

I added the binding to Openhab 3 and it works pretty good, but I get a lot of warnings messages in the log. I have two AC1214 model. Any ideas how to solve this?

Blockquote
2021-03-17 13:45:48.205 [WARN ] [l.connection.PhilipsAirAPIConnection] - Cipher not initialized

2021-03-17 13:45:48.218 [WARN ] [l.connection.PhilipsAirAPIConnection] - An exception occured

org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIException: java.net.ConnectException: Verbindungsaufbau abgelehnt

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.getResponse(PhilipsAirAPIConnection.java:202) ~[bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.exchangeKeys(PhilipsAirAPIConnection.java:221) ~[bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.initCipher(PhilipsAirAPIConnection.java:91) [bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.getResponse(PhilipsAirAPIConnection.java:152) [bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.lambda$0(PhilipsAirAPIConnection.java:143) [bundleFile:?]

at org.openhab.core.cache.ExpiringCache.refreshValue(ExpiringCache.java:101) [bundleFile:?]

at org.openhab.core.cache.ExpiringCache.getValue(ExpiringCache.java:72) [bundleFile:?]

at org.openhab.core.cache.ExpiringCacheMap.get(ExpiringCacheMap.java:198) [bundleFile:?]

at org.openhab.core.cache.ExpiringCacheMap.putIfAbsentAndGet(ExpiringCacheMap.java:127) [bundleFile:?]

at org.openhab.core.cache.ExpiringCacheMap.putIfAbsentAndGet(ExpiringCacheMap.java:112) [bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.getResponseFromCache(PhilipsAirAPIConnection.java:143) [bundleFile:?]

at org.openhab.binding.philipsair.internal.connection.PhilipsAirAPIConnection.getAirPurifierDevice(PhilipsAirAPIConnection.java:124) [bundleFile:?]

at org.openhab.binding.philipsair.internal.PhilipsAirHandler.requestData(PhilipsAirHandler.java:251) [bundleFile:?]

at org.openhab.binding.philipsair.internal.PhilipsAirHandler.updateData(PhilipsAirHandler.java:236) [bundleFile:?]

at org.openhab.binding.philipsair.internal.PhilipsAirHandler.updateThing(PhilipsAirHandler.java:224) [bundleFile:?]

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

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

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

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) [?:?]

Hi,

I recently got an AC2889/10 and now tried this binding (org.openhab.binding.philipsair-3.1.0-SNAPSHOT.jar
But the thing stays OFFLINE and the log lists connection problems.

Also I just donā€™t know enough what else is needed and how to get it and would appreciate any help here.
What is required in the setup? Thing configuration shows:

  • IP address. Ok, done.
    Where to get these two?
  • Key : Air Purifier device token for communication ?
  • Device ID (UDN) : Device ID number for communication (in UUID) ?

Can the binding work at all or will there still be a problem anyway because of encrypted communication?

Many thanks

Last week I received my purifier AC5659/10 and did not have luck getting the binding to work.
My device is using a newer communication protocol ā€˜coapā€™ which is not supported by the current binding.
In my case it also ment that the purifier was not discovered. I think it is a good indication that it is not supportedā€¦

In the mean time I wrote the necessary code to be able to communicate with the device and decrypt / encrypt the traffic. After my short holiday the coming days Iā€™ll need to see how different the new responses are from the ones expected by the binding (if I can re-use parts or not)

Thatā€™s odd. I have AC5659/10 and it works almost perfectly with the binding youā€™ve provided. I think the binding supports coap.

ehh, that would be very odd.
What I can imagine that different (firmware) versions of the AC5659/10 would support different protocols. (meaning that maybe your version also supports the http protocol the current binding is supporting)

My coap version works more or lessā€¦ if it connects it works fine, also the sending commands work. However, sometimes it does not ā€˜syncā€™ and it gives an unexpected element in the response. The coap library used in openhab than rejects the response and the binding canā€™t get it.

Anyway, great it works for you

@marcel_verpaalen Philips apparently switched the protocol on newer model revisions, my 3829/10 should be supported by the binding, but does not work due to COAP. Regarding the dropped responses: I had a similar problem, and with some debugging found that it was caused by the deduplicator. Changing DEDUPLICATOR to NO_DEDUPLICATOR in Californium.properties fixed it for me.

Unfortunatly I do not have time to maintain a binding, but the information I sent to @michalboronski might help you as well. Hereā€™s a proof-of-concept to demonstrate communication with the device using COAP, and a ticket where I documented my findings:

In case anyone wants to pick it up, I have also added experimental COAP support to the OH2-binding made by @michalboronski, which has been running smoothly with my device for a while now:

Edit: To use the binding in OH2 you have to change Californium.properties (see above) and manually install the necessary transports via console:

feature:install openhab-transport-coap
feature:install openhab-transport-upnp
1 Like

I have a version for a few months now that indeed worksā€¦ IF the messages donā€™t get rejected.

Iā€™ll definitely try your suggestion Changing DEDUPLICATOR to NO_DEDUPLICATOR in Californium.properties fixed it for me. as indeed that may very well do the trickā€¦ (strange the maintainers of the coap lib could not come up with that suggestion :woozy_face: )
EDIT: seems indeed in my quick check to fix the connection issueā€¦

If someone wants to try (only compatible with 3.1 though)
https://verpaalen.com/openhab2/org.openhab.binding.philipsairC2-3.1.0-SNAPSHOT.jar

and use indeed

feature:install openhab-transport-coap
feature:install openhab-transport-upnp

Good morning,
I am using the 3.1 binding, works fine with my 2 AC1214 and AC3033, but I receive tons of warning messages in the log:


021-07-27 09:15:57.815 [WARN ] [.eclipse.californium.core.CoapClient] - exception while handling response

java.lang.NullPointerException: null

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery.discovered(PhilipsAirCoapDiscovery.java:142) ~[?:?]

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery$MultiCoapHandler.onLoad(PhilipsAirCoapDiscovery.java:211) ~[?:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.deliver(CoapClient.java:1466) ~[bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl$1.run(CoapClient.java:1448) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient.execute(CoapClient.java:1289) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.succeeded(CoapClient.java:1444) [bundleFile:?]

Second finding, the AC3033 doesnā€™t use pre/carbon/hepa filters any more, I figured out that it uses the
filters#fltsts0 as the cleaning idicator and the filters#fltsts2 (carbon filter in AC1214) as the timer for the filter replacement. filters#fltsts1 delivers 65535 as its value so seems to be not in use.
Question, where do I find a description which model uses which datapoints? The existing ones seem to be only applicable for the former 1000, 2000 series but not the the new 3000 series.

br Leo

Yes that seems like some sort of bug in the discoveryā€¦ It seems not getting the expected response and is not very happily, smoothly handling that.

Iā€™ll take at that to see if I can improve that.

Dunnoā€¦ Most of these devices come without any description/spec of the interface and just by experiment/logging traffic you find that out

I was able to find out the supported modes of my model with this:


openhabian@openhabian:~ $ airctrl --ipaddr 192.168.178.67 --protocol coap --mode
usage: airctrl [-h] [--ipaddr IPADDR] [--protocol {http,coap,plain_coap}] [-d]
               [--om {1,2,3,s,t,a}] [--pwr {0,1}]
               [--mode {P,A,AG,F,S,M,B,N,T}] [--rhset {40,50,60,70}]
               [--func {P,PH}] [--aqil {0,25,50,75,100}] [--uil {0,1}]
               [--ddp {0,1,2,3}] [--dt {0,1,2,3,4,5,6,7,8,9,10,11,12}]
               [--cl {True,False}] [--wifi] [--wifi-ssid WIFI_SSID]
               [--wifi-pwd WIFI_PWD] [--firmware] [--filters]
airctrl: error: argument --mode: expected one argument

Now I can send the mode via command options and it works perfectly.

Hi,
thanks, interesting, I also get errors on both coap devices (AC3033) with airctrl, but I can send commands to them. The old AC1214 responds with the actual configuration.

br Leo

@lobermeier

I think this build fixes the NPE error you encounter. (it is build for v3.2, but I expect works with 3.1 as well)
https://verpaalen.com/openhab2/org.openhab.binding.philipsair-3.2.0-SNAPSHOT.jar
as before it needs:

feature:install openhab-transport-coap
feature:install openhab-transport-upnp

Iā€™m not sure I understand the problem very wellā€¦ Those channels are included, right?
Is your device responsive to the commands? (e.g. changing modes etc)

Many thanks,

will install and check.

What I meant is that at the Series 1000 and 3000 seem to have different features (like filters) and expect different parameters for the Mode command. Series 3000 got a firmewareupdate where the modes where extended from 3 to 6, I have one with old firmware and one with the new firmware running.

br

Leo

Hi, installed and rebooted, but still expetions take place every 10 min.

021-08-09 16:24:20.167 [WARN ] [.eclipse.californium.core.CoapClient] - exception while handling response

java.lang.NullPointerException: null

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery.discovered(PhilipsAirCoapDiscovery.java:141) ~[?:?]

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery$MultiCoapHandler.onLoad(PhilipsAirCoapDiscovery.java:218) ~[?:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.deliver(CoapClient.java:1466) ~[bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl$1.run(CoapClient.java:1448) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient.execute(CoapClient.java:1289) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.succeeded(CoapClient.java:1444) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.onResponse(CoapClient.java:1434) [bundleFile:?]

	at org.eclipse.californium.core.coap.Request.setResponse(Request.java:711) [bundleFile:?]

	at org.eclipse.californium.core.network.EndpointManager$ClientMessageDeliverer.deliverResponse(EndpointManager.java:272) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BaseCoapStack$StackTopAdapter.receiveResponse(BaseCoapStack.java:210) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:89) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ExchangeCleanupLayer.receiveResponse(ExchangeCleanupLayer.java:93) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ObserveLayer.receiveResponse(ObserveLayer.java:150) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BlockwiseLayer.receiveResponse(BlockwiseLayer.java:691) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ReliabilityLayer.receiveResponse(ReliabilityLayer.java:305) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:89) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BaseCoapStack.receiveResponse(BaseCoapStack.java:139) [bundleFile:?]

	at org.eclipse.californium.core.network.CoapEndpoint$1.receiveResponse(CoapEndpoint.java:277) [bundleFile:?]

	at org.eclipse.californium.core.network.UdpMatcher$4.run(UdpMatcher.java:399) [bundleFile:?]

	at org.eclipse.californium.elements.util.SerialExecutor$1.run(SerialExecutor.java:276) [bundleFile:?]

	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:829) [?:?]

I also checked all four purifires are online in OH and response to pings.

br Leo

@lobermeier can you share bit more of the (debug) log, to better understand what is happening

I fixed the most obvious issue, but in your case it seems different. So maybe it is something special in the response. This is example of how it is expected to work.

15:32:11.935 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Broadcast to 2 addresses
15:32:11.935 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Send discovery request: coap://192.168.100.255:5683/sys/dev/info
15:32:16.948 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Send discovery request: coap://224.0.1.187:5683/sys/dev/info
15:32:17.474 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Received coap response from '/192.168.100.172:5683' - ==[ CoAP Response ]============================================
MID    : 65408
Token  : 428E1CE07FFC6657
Type   : NON
Status : 2.05 - CONTENT
Options: {"Content-Format":"application/json"}
RTT    : 520 ms
Payload: 189 Bytes
---------------------------------------------------------------
{"product_id":"be10acb2e62411XXXXXXXXXX","device_id":"9fb00330aa9911ebaaXXXXXXXXXXXX","name":"Air Purifier","type":"AC2889","modelid":"AC2889/10","swversion":"1.0.7","option":"1"}
===============================================================
15:32:17.475 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Creating Philips Air Purifier (COAP protocol) discovery result for: IP=192.168.100.172, {"product_id":"be10acb2e62411XXXXXXXXXXXX,"device_id":"9fb00330aa99XXXXXXXXX","name":"Air Purifier","type":"AC2889","modelid":"AC2889/10","swversion":"1.0.7","option":"1"}
15:32:17.475 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - DiscoveryResult with uid philipsair:coap:9fb00330aa9911eXXXXXXXX label : Philips AirPurifier Air Purifier AC2889/10 
15:32:17.526 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'philipsair:coap:9fb00330aa9911ebXXXXXX' to inbox.

Hi, here we go:

2021-08-10 10:12:59.046 [WARN ] [.eclipse.californium.core.CoapClient] - exception while handling response

java.lang.NullPointerException: null

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery.discovered(PhilipsAirCoapDiscovery.java:141) ~[?:?]

	at org.openhab.binding.philipsair.internal.discovery.PhilipsAirCoapDiscovery$MultiCoapHandler.onLoad(PhilipsAirCoapDiscovery.java:218) ~[?:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.deliver(CoapClient.java:1466) ~[bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl$1.run(CoapClient.java:1448) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient.execute(CoapClient.java:1289) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.succeeded(CoapClient.java:1444) [bundleFile:?]

	at org.eclipse.californium.core.CoapClient$MessageObserverImpl.onResponse(CoapClient.java:1434) [bundleFile:?]

	at org.eclipse.californium.core.coap.Request.setResponse(Request.java:711) [bundleFile:?]

	at org.eclipse.californium.core.network.EndpointManager$ClientMessageDeliverer.deliverResponse(EndpointManager.java:272) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BaseCoapStack$StackTopAdapter.receiveResponse(BaseCoapStack.java:210) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:89) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ExchangeCleanupLayer.receiveResponse(ExchangeCleanupLayer.java:93) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ObserveLayer.receiveResponse(ObserveLayer.java:150) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BlockwiseLayer.receiveResponse(BlockwiseLayer.java:691) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.ReliabilityLayer.receiveResponse(ReliabilityLayer.java:305) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.AbstractLayer.receiveResponse(AbstractLayer.java:89) [bundleFile:?]

	at org.eclipse.californium.core.network.stack.BaseCoapStack.receiveResponse(BaseCoapStack.java:139) [bundleFile:?]

	at org.eclipse.californium.core.network.CoapEndpoint$1.receiveResponse(CoapEndpoint.java:277) [bundleFile:?]

	at org.eclipse.californium.core.network.UdpMatcher$4.run(UdpMatcher.java:399) [bundleFile:?]

	at org.eclipse.californium.elements.util.SerialExecutor$1.run(SerialExecutor.java:276) [bundleFile:?]

	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:829) [?:?]

2021-08-10 10:12:59.956 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Received coap response from '/192.168.0.254:5683' - ==[ CoAP Response ]============================================

MID    : 65129

Token  : E673B78A1A59E55D

Type   : NON

Status : 2.05 - CONTENT

Options: {"Content-Format":"application/json"}

RTT    : 916 ms

Payload: 188 Bytes

---------------------------------------------------------------

{"product_id":"xxxxxxxxx,"device_id":"xxxxxxxxxx","name":"Wohnzimmer","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3305","option":"1"}

===============================================================

2021-08-10 10:12:59.959 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Creating Philips Air Purifier (COAP protocol) discovery result for: IP=192.168.0.254, {"product_id":"xxxxxxxxx","device_id":"xxxxxxxxxx","name":"Wohnzimmer","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3305","option":"1"}

2021-08-10 10:12:59.961 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - DiscoveryResult with uid philipsair:coap:b6271a0415e811eb8c3c8e082e61e7db label : Philips AirPurifier Wohnzimmer AC3033/10 

2021-08-10 10:12:59.979 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Received coap response from '/192.168.0.211:5683' - ==[ CoAP Response ]============================================

MID    : 65129

Token  : E673B78A1A59E55D

Type   : NON

Status : 2.05 - CONTENT

Options: {"Content-Format":"application/json"}

RTT    : 939 ms

Payload: 184 Bytes

---------------------------------------------------------------

{"product_id":"xxxxxxxxxx","device_id":"xxxxxxxx","name":"Kļæ½che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","option":"1"}

===============================================================

2021-08-10 10:12:59.981 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Creating Philips Air Purifier (COAP protocol) discovery result for: IP=192.168.0.211, {"product_id":"xxxxxxxxx","device_id":"xxxxxxxxxx","name":"Kļæ½che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","option":"1"}

2021-08-10 10:12:59.983 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - DiscoveryResult with uid philipsair:coap:xxxxxxxxxx label : Philips AirPurifier Kļæ½che AC3033/10 

2021-08-10 10:13:00.200 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.211:5683/sys/dev/status.

2021-08-10 10:13:00.203 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.211:5683/sys/dev/status

2021-08-10 10:13:32.315 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:13:32.358 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.254:5683/sys/dev/sync -> Response: 32D0F52C

2021-08-10 10:13:32.386 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.254:5683/sys/dev/status:true

2021-08-10 10:13:37.389 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.254:5683/sys/dev/status.

2021-08-10 10:13:37.391 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.254:5683/sys/dev/status

2021-08-10 10:14:00.207 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:14:00.238 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.211:5683/sys/dev/sync -> Response: 1B4C949D

2021-08-10 10:14:00.278 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.211:5683/sys/dev/status:true

2021-08-10 10:14:00.395 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.211:5683/sys/dev/status: {"state":{"reported":{"name":"KĆ¼che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","language":"EN","DeviceVersion":"1.0.5","range":"MarsME","Runtime":167118855,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"3efb514ae71911eba9fada4bb1fa45b2","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":7,"iaql":2,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":328,"fltsts1":4704,"fltsts2":65535,"filna":"0","filid":"0"}}}

2021-08-10 10:14:37.393 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:14:37.459 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.254:5683/sys/dev/sync -> Response: 5EB963A4

2021-08-10 10:14:37.487 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.254:5683/sys/dev/status:true

2021-08-10 10:14:42.489 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.254:5683/sys/dev/status.

2021-08-10 10:14:42.490 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.254:5683/sys/dev/status

2021-08-10 10:14:55.293 [DEBUG] [nnection.PhilipsAirHttpAPIConnection] - Philips Air Purifier device response: status = 200, content = '{"name":"Schlafzimmer","type":"AC1214","modelid":"AC1214/10","swversion":"1.0.0"}'

2021-08-10 10:14:55.325 [DEBUG] [nnection.PhilipsAirHttpAPIConnection] - Philips Air Purifier device response: status = 200, content = '{"om":"2","pwr":"1","cl":false,"aqil":25,"uil":"1","dt":0,"dtrs":0,"mode":"A","pm25":1,"iaql":1,"aqit":7,"ddp":"0","err":0}'

2021-08-10 10:14:55.359 [DEBUG] [nnection.PhilipsAirHttpAPIConnection] - Philips Air Purifier device response: status = 200, content = '{"fltt1":"A3","fltt2":"C7","fltsts0":250,"fltsts1":2794,"fltsts2":308}'

2021-08-10 10:15:00.404 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:15:01.077 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.211:5683/sys/dev/status: {"state":{"reported":{"name":"KĆ¼che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","language":"EN","DeviceVersion":"1.0.5","range":"MarsME","Runtime":167180992,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"3efb514ae71911eba9fada4bb1fa45b2","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":2,"iaql":1,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":328,"fltsts1":4704,"fltsts2":65535,"filna":"0","filid":"0"}}}

2021-08-10 10:15:42.493 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:15:42.539 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.254:5683/sys/dev/sync -> Response: 5AC5AC48

2021-08-10 10:15:42.563 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.254:5683/sys/dev/status:true

2021-08-10 10:15:44.802 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.254:5683/sys/dev/status: {"state":{"reported":{"name":"Wohnzimmer","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3305","language":"EN","DeviceVersion":"3.0.5","range":"MarsME","Runtime":65463832,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"b6271a0415e811eb8c3c8e082e61e7db","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":3,"iaql":1,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":26,"fltsts1":3408,"fltsts2":65535,"filna":"0","filid":"0","flttotal0":360,"flttotal1":4800,"flttotal2":65535}}}

2021-08-10 10:16:01.086 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:16:06.091 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.211:5683/sys/dev/status.

2021-08-10 10:16:06.095 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.211:5683/sys/dev/status

2021-08-10 10:16:44.811 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:16:49.815 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.254:5683/sys/dev/status.

2021-08-10 10:16:49.818 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.254:5683/sys/dev/status

2021-08-10 10:17:06.099 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:17:06.144 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.211:5683/sys/dev/sync -> Response: 63DCA967

2021-08-10 10:17:06.181 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.211:5683/sys/dev/status:true

2021-08-10 10:17:11.198 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.211:5683/sys/dev/status.

2021-08-10 10:17:11.202 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.211:5683/sys/dev/status

2021-08-10 10:17:49.822 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:17:49.881 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.254:5683/sys/dev/sync -> Response: 53A5CB4A

2021-08-10 10:17:49.902 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.254:5683/sys/dev/status:true

2021-08-10 10:17:54.906 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.254:5683/sys/dev/status.

2021-08-10 10:17:54.908 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.254:5683/sys/dev/status

2021-08-10 10:18:11.206 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:18:11.240 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.211:5683/sys/dev/sync -> Response: 25A501D9

2021-08-10 10:18:11.255 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.211:5683/sys/dev/status:true

2021-08-10 10:18:13.032 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.211:5683/sys/dev/status: {"state":{"reported":{"name":"KĆ¼che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","language":"EN","DeviceVersion":"1.0.5","range":"MarsME","Runtime":167377554,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"3efb514ae71911eba9fada4bb1fa45b2","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":2,"iaql":1,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":328,"fltsts1":4704,"fltsts2":65535,"filna":"0","filid":"0"}}}

2021-08-10 10:18:54.911 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:18:54.971 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - POST coap://192.168.0.254:5683/sys/dev/sync -> Response: 0189BB90

2021-08-10 10:18:54.996 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Send COAP ping to coap://192.168.0.254:5683/sys/dev/status:true

2021-08-10 10:18:56.120 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.254:5683/sys/dev/status: {"state":{"reported":{"name":"Wohnzimmer","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3305","language":"EN","DeviceVersion":"3.0.5","range":"MarsME","Runtime":65659742,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"b6271a0415e811eb8c3c8e082e61e7db","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":4,"iaql":1,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":26,"fltsts1":3408,"fltsts2":65535,"filna":"0","filid":"0","flttotal0":360,"flttotal1":4800,"flttotal2":65535}}}

2021-08-10 10:19:13.041 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:19:14.671 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Response from coap://192.168.0.211:5683/sys/dev/status: {"state":{"reported":{"name":"KĆ¼che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","language":"EN","DeviceVersion":"1.0.5","range":"MarsME","Runtime":167440671,"WifiVersion":"AWS_Philips_AIR@64.3","ProductId":"9efe665a13c111e9bc6802024953075e","DeviceId":"3efb514ae71911eba9fada4bb1fa45b2","StatusType":"status","ConnectType":"Online","om":"1","pwr":"1","cl":false,"aqil":100,"uil":"1","uaset":"A","mode":"AG","pm25":5,"iaql":2,"aqit":4,"tvoc":1,"ddp":"0","rddp":"0","err":0,"fltt1":"A3","fltt2":"none","fltsts0":328,"fltsts1":4704,"fltsts2":65535,"filna":"0","filid":"0"}}}

2021-08-10 10:19:56.128 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.254

2021-08-10 10:20:01.131 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.254:5683/sys/dev/status.

2021-08-10 10:20:01.134 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.254:5683/sys/dev/status

2021-08-10 10:20:14.679 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - Refreshing data for 192.168.0.211

2021-08-10 10:20:19.683 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response received for coap://192.168.0.211:5683/sys/dev/status.

2021-08-10 10:20:19.686 [DEBUG] [nnection.PhilipsAirCoapAPIConnection] - No response for coap://192.168.0.211:5683/sys/dev/status

Many thanks in advance

br Leo

Strange indeed. I did a new attept to avoid the NPE.
Pls try it and let me know what you see in the log (I think youā€™ll see a Philips Air Purifier (COAP protocol) discovery result could not parse response from but can also be a Error while processing discovery result from IP={}, {})

The download url is the same

Hi, got the message

===============================================================

2021-08-10 11:06:29.432 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Philips Air Purifier (COAP protocol) discovery result could not parse response from IP=192.168.0.217, 

2021-08-10 11:06:29.667 [DEBUG] [al.discovery.PhilipsAirCoapDiscovery] - Received coap response from '/192.168.0.211:5683' - ==[ CoAP Response ]============================================

MID    : 65283

Token  : F65BA51FF110D81A

Type   : NON

Status : 2.05 - CONTENT

Options: {"Content-Format":"application/json"}

RTT    : 239 ms

Payload: 184 Bytes

---------------------------------------------------------------

{"product_id":"xxxxxxx","device_id":"xxxxxxxx","name":"Kļæ½che","type":"AC3033","modelid":"AC3033/10","swversion":"Ms3105","option":"1"}

I am just wondering, 192.168.0.217 is my OH, why should that respond to a CoAP discovery?

br Leo

That is odd indeedā€¦ it seems to be responding with some blank.
Maybe another OH binding that implements some coap server? (there are a few bindings I think using coap)

I made one more tiny change to fully ignore an empty response. so you wouldnt see the message in that case.