kongo09 / philips-airpurifier-coap

💨 Philips AirPurifier custom component for Home Assistant. Supports local CoAP protocol.
174 stars 27 forks source link

Request support for AC0950 #158

Open lo0k0502 opened 6 days ago

lo0k0502 commented 6 days ago

According to Air+ app, this model has following functionalities:

I'm currently providing the status data of 4 modes here, if there are other information needed please let me know.

Auto

{
  "D01102": 0,
  "D01S03": "\u81e5\u5ba4",
  "D01S04": "Unicorn",
  "D01S05": "AC0950/80",
  "D01107": 0,
  "D01108": 3,
  "D01109": 3,
  "D0110A": 0,
  "D0110B": 0,
  "D0110C": 18,
  "D01S0D": "688001001382",
  "D0110F": 3,
  "D01S12": "0.3.3",
  "D01213": 0,
  "ProductId": "16967a35facd11ee9c160217247a73aa",
  "DeviceId": "807717f0855811ef99a469a5a8527d50",
  "otacheck": false,
  "Runtime": 4303584,
  "rssi": -27,
  "wifilog": false,
  "blelog": false,
  "free_memory": 153984,
  "WifiVersion": "AWS_Philips_AIR_Combo@3.0",
  "StatusType": "status",
  "ConnectType": "Online",
  "D03102": 1,
  "D03103": 0,
  "D03104": 123,
  "D03105": 123,
  "D0310A": 2,
  "D0310C": 0,
  "D0310D": 1,
  "D03110": 0,
  "D03211": 0,
  "D03120": 2,
  "D03221": 6,
  "D0312A": 1,
  "D0312B": 1,
  "D0312C": 4,
  "D03130": 100,
  "D03134": 0,
  "D03136": 0,
  "D03240": 0,
  "aqit_ext": 0,
  "D05207": 720,
  "D05408": 9600,
  "D0520D": 716,
  "D0540E": 9596
}

Sleep

{
  "D01102": 0,
  "D01S03": "\u81e5\u5ba4",
  "D01S04": "Unicorn",
  "D01S05": "AC0950/80",
  "D01107": 0,
  "D01108": 3,
  "D01109": 3,
  "D0110A": 0,
  "D0110B": 0,
  "D0110C": 18,
  "D01S0D": "688001001382",
  "D0110F": 3,
  "D01S12": "0.3.3",
  "D01213": 0,
  "ProductId": "16967a35facd11ee9c160217247a73aa",
  "DeviceId": "807717f0855811ef99a469a5a8527d50",
  "otacheck": false,
  "Runtime": 4330162,
  "rssi": -28,
  "wifilog": false,
  "blelog": false,
  "free_memory": 154144,
  "WifiVersion": "AWS_Philips_AIR_Combo@3.0",
  "StatusType": "status",
  "ConnectType": "Online",
  "D03102": 1,
  "D03103": 0,
  "D03104": 0,
  "D03105": 0,
  "D0310A": 2,
  "D0310C": 17,
  "D0310D": 1,
  "D03110": 0,
  "D03211": 0,
  "D03120": 1,
  "D03221": 1,
  "D0312A": 1,
  "D0312B": 1,
  "D0312C": 4,
  "D03130": 100,
  "D03134": 0,
  "D03136": 0,
  "D03240": 0,
  "aqit_ext": 0,
  "D05207": 720,
  "D05408": 9600,
  "D0520D": 716,
  "D0540E": 9596
}

Medium

{
  "D01102": 0,
  "D01S03": "\u81e5\u5ba4",
  "D01S04": "Unicorn",
  "D01S05": "AC0950/80",
  "D01107": 0,
  "D01108": 3,
  "D01109": 3,
  "D0110A": 0,
  "D0110B": 0,
  "D0110C": 18,
  "D01S0D": "688001001382",
  "D0110F": 3,
  "D01S12": "0.3.3",
  "D01213": 0,
  "ProductId": "16967a35facd11ee9c160217247a73aa",
  "DeviceId": "807717f0855811ef99a469a5a8527d50",
  "otacheck": false,
  "Runtime": 4384052,
  "rssi": -26,
  "wifilog": false,
  "blelog": false,
  "free_memory": 154144,
  "WifiVersion": "AWS_Philips_AIR_Combo@3.0",
  "StatusType": "status",
  "ConnectType": "Online",
  "D03102": 1,
  "D03103": 0,
  "D03104": 123,
  "D03105": 123,
  "D0310A": 2,
  "D0310C": 19,
  "D0310D": 2,
  "D03110": 0,
  "D03211": 0,
  "D03120": 2,
  "D03221": 5,
  "D0312A": 1,
  "D0312B": 1,
  "D0312C": 4,
  "D03130": 100,
  "D03134": 0,
  "D03136": 0,
  "D03240": 0,
  "aqit_ext": 0,
  "D05207": 720,
  "D05408": 9600,
  "D0520D": 716,
  "D0540E": 9596
}

Turbo

{
  "D01102": 0,
  "D01S03": "\u81e5\u5ba4",
  "D01S04": "Unicorn",
  "D01S05": "AC0950/80",
  "D01107": 0,
  "D01108": 3,
  "D01109": 3,
  "D0110A": 0,
  "D0110B": 0,
  "D0110C": 18,
  "D01S0D": "688001001382",
  "D0110F": 3,
  "D01S12": "0.3.3",
  "D01213": 0,
  "ProductId": "16967a35facd11ee9c160217247a73aa",
  "DeviceId": "807717f0855811ef99a469a5a8527d50",
  "otacheck": false,
  "Runtime": 4444114,
  "rssi": -27,
  "wifilog": false,
  "blelog": false,
  "free_memory": 153952,
  "WifiVersion": "AWS_Philips_AIR_Combo@3.0",
  "StatusType": "status",
  "ConnectType": "Online",
  "D03102": 1,
  "D03103": 0,
  "D03104": 123,
  "D03105": 123,
  "D0310A": 2,
  "D0310C": 18,
  "D0310D": 18,
  "D03110": 0,
  "D03211": 0,
  "D03120": 1,
  "D03221": 3,
  "D0312A": 1,
  "D0312B": 1,
  "D0312C": 4,
  "D03130": 100,
  "D03134": 0,
  "D03136": 0,
  "D03240": 0,
  "aqit_ext": 0,
  "D05207": 720,
  "D05408": 9600,
  "D0520D": 716,
  "D0540E": 9596
}
kongo09 commented 6 days ago

Thanks for the data, that should help integrating the device

kongo09 commented 2 days ago

I've just published a beta. Can you please try if your device works? If not, please enable debug logging and post the errors here.

lo0k0502 commented 19 hours ago

Thanks for the work! I've just tried v0.18.10-beta.5 and have identified several issues.

Missing features

  1. Modes: This is what I mentioned in the first comment, it would be the top priority for me so if this can be supported I would really appreciate it.
  2. Brightness control: This would be a select option with three modes: Bright, Low, and Off. It would control the brightness of the panel on the physical device. While not crucial, it would be a nice addition if available.
  3. Scheduler: This feature would allow setting a schedule to power on or off at specific times. I understand this might be complex to implement, so it can be considered an optional feature.

Bugs

Switch

The switches are behaving erratically. For instance, when I press power off, the UI reverts to the previous state after a few seconds, even though the machine's state correctly changes to off. Due to this UI reversion, turning it back on is challenging unless I quickly press the switch before it reverts. This seems to be a data synchronization issue.

Logs during testing: test-log.txt

Video demonstration:

https://github.com/user-attachments/assets/3d0477fb-ab96-4bc4-9f3e-a2b6c197cb59

Select

I've tested the Timer feature, since I don't know what Preferred Index feature is. I can set a 1-12 hours timer, and the Air+ app recognizes it's working. However, after refreshing the page, it still displays "Off," even though the timer is correctly set on Air+. Additionally, when I try to turn off a set timer, selecting "Off" doesn't work; the Timer in the Air+ app doesn't deactivate.

Logs during testing: test-log2.txt

Video demonstration:

https://github.com/user-attachments/assets/c89e8a3c-cd8f-4c34-bf81-dfb30f36870b

Additional Info

I've also recorded a segment of logs when the machine is on in Auto mode without any user controls. I hope this information is helpful. idle-log.txt