core icon indicating copy to clipboard operation
core copied to clipboard

Daikin WIFI controller BRP084Cxx firmware update from 1.19.0 to 2.8.0 breaks local API

Open epajfl00 opened this issue 1 year ago • 79 comments

The problem

Recently, there was an update to the Daikin mobile app, when this was updated, it showed that a firmware update was available for the wifi controller which was running at 1.19.0, and all good. The update was ver 2.8.0 so that was done. The mobile app is fine and controls as expected, all good.

However, HA latest on version 2023.8.3, failed to connect, so all entities are now unavailable. Tried to communicate directly with the API commands on the host address, “page not found”, was the result for any commands. So I can no longer communicate with it directly, as before.

A firmware roll-back of the update is not possible.

BTW, for information I’ve found that my controller must be a “BRP084C44”. See below link. Daikin (daikinthai.com) 2

Any thoughts?

What version of Home Assistant Core has the issue?

2023.8.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Daikin AC

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

epajfl00 avatar Aug 29 '23 05:08 epajfl00

Hey there @fredrike, mind taking a look at this issue as it has been labeled with an integration (daikin) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of daikin can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign daikin Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


daikin documentation daikin source (message by IssueLinks)

home-assistant[bot] avatar Aug 29 '23 11:08 home-assistant[bot]

I have 2 split systems (FTXM20WVMA and 35 one) installed today which both use BRP084C44. Both come with v1.1.30 firmware and I updated 1 of them to the latest 2.8.0 without knowing anything yet. And then I tried to configure both in Daikin Mobile Controller (I'm in Australia) and only the one with 2.8.0 can be controlled successfully. Weird thing is only in iOS can I see the "update firmware" choice. In Android I just see "adapter does not respond" error. Nothing I can do there in Android.

And now that I tried to configure them in HA, both can't be connected. When I tried to configure using Daikin AC integration and manually entered the IP, it just said Unexpected Error:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/daikin/config_flow.py", line 74, in _create_device
    device = await Appliance.factory(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pydaikin/daikin_base.py", line 86, in factory
    await appl.init()
  File "/usr/local/lib/python3.11/site-packages/pydaikin/daikin_airbase.py", line 68, in init
    raise Exception("Empty values.")
Exception: Empty values.

Not sure if this is related, but just sharing what I had.

starryalley avatar Aug 29 '23 13:08 starryalley

There is a big warning on the integration page: https://www.home-assistant.io/integrations/daikin/

bild

This is probably the same issue with your BRP084C44.

Only solution as I see it is to use https://github.com/revk/ESP32-Faikin.

fredrike avatar Aug 29 '23 14:08 fredrike

same issue with @epajfl00

hank418 avatar Sep 01 '23 00:09 hank418

Same here, have lost connection in HA, was working perfectly prior to updating the daikin wifi module from 1.19.0 to 2.8.0 Daikin mobile controller app is working. Now getting Unexpected Error when trying to add to HA.

Zepherman avatar Sep 01 '23 01:09 Zepherman

Same issue. Is it possible to downgrade the firmware version 1.9.0 of the AC ?"

DKSUSHI avatar Sep 01 '23 05:09 DKSUSHI

This is not a forum nor a support channel. Please open a discussion in the forum section of Home Assistant and file a complaint against Daikin that they have broken local integration.

fredrike avatar Sep 01 '23 06:09 fredrike

@home-assistant rename Daikin WIFI controller BRP084Cxx firmware update from 1.19.0 to 2.8.0 breaks local API

fredrike avatar Sep 01 '23 06:09 fredrike

@home-assistant close

fredrike avatar Sep 01 '23 06:09 fredrike

The local API must still work, as the app can still access the aircon locally without going to the cloud. Maybe it was changed to require encryption or some other breaking change.

chrisp250 avatar Sep 08 '23 12:09 chrisp250

Yes the local API still works over http. I captured some using mitproxy from a iOS Daikin Mobile Controller just to take a quick look:

image

Unfortunately I can't figure out anything at all about the payload. For example this PUT payload is sent to adjust temperature from 19 to 18 in heat mode:

{
    "requests": [
        {
            "op": 3,
            "pc": {
                "pch": [
                    {
                        "pch": [
                            {
                                "pch": [
                                    {
                                        "pn": "p_01",
                                        "pv": "0100"
                                    },
                                    {
                                        "pn": "p_08",
                                        "pv": "000000"
                                    },
                                    {
                                        "pn": "p_03",
                                        "pv": "24"
                                    },
                                    {
                                        "pn": "p_07",
                                        "pv": "0F0000"
                                    },
                                    {
                                        "pn": "p_0A",
                                        "pv": "0A00"
                                    }
                                ],
                                "pn": "e_3001"
                            },
                            {
                                "pch": [
                                    {
                                        "pn": "p_01",
                                        "pv": "01"
                                    }
                                ],
                                "pn": "e_A002"
                            },
                            {
                                "pch": [
                                    {
                                        "pn": "p_2D",
                                        "pv": "02"
                                    }
                                ],
                                "pn": "e_3003"
                            }
                        ],
                        "pn": "e_1002"
                    }
                ],
                "pn": "dgc_status"
            },
            "to": "/dsiot/edge/adr_0100.dgc_status"
        }
    ]
}

And adjusting air flow direction also goes to the same endpoint for example. This is from vertical to off.

{
    "requests": [
        {
            "op": 3,
            "pc": {
                "pch": [
                    {
                        "pch": [
                            {
                                "pch": [
                                    {
                                        "pn": "p_2D",
                                        "pv": "02"
                                    }
                                ],
                                "pn": "e_3003"
                            },
                            {
                                "pch": [
                                    {
                                        "pn": "p_03",
                                        "pv": "24"
                                    },
                                    {
                                        "pn": "p_01",
                                        "pv": "0100"
                                    },
                                    {
                                        "pn": "p_07",
                                        "pv": "000000"
                                    },
                                    {
                                        "pn": "p_0A",
                                        "pv": "0A00"
                                    },
                                    {
                                        "pn": "p_08",
                                        "pv": "000000"
                                    }
                                ],
                                "pn": "e_3001"
                            },
                            {
                                "pch": [
                                    {
                                        "pn": "p_01",
                                        "pv": "01"
                                    }
                                ],
                                "pn": "e_A002"
                            }
                        ],
                        "pn": "e_1002"
                    }
                ],
                "pn": "dgc_status"
            },
            "to": "/dsiot/edge/adr_0100.dgc_status"
        }
    ]
}

starryalley avatar Sep 08 '23 13:09 starryalley

Thanks for that @starryalley. I had a look but the two captures are not enough to reverse engineer the protocol. However it seems that register p_07 is where the key is. I've extracted the elements from e_3001 of the two captures, and put them in order. Only one register changed between the two commands, see below.

#Temperature from 19 to 18 in Heat mode
pn	:	p_01 #Same value as below
pv	:	0100

pn	:	p_03 #Same value as below
pv	:	24

pn	:	p_07 #This is different, I would guess this where the temperature is encoded
pv	:	0F0000

pn	:	p_08 #Same value as below
pv	:	000000

pn	:	p_0A #Same value as below
pv	:	0A00



#Direction from vertical to off
pn	:	p_01
pv	:	0100

pn	:	p_03
pv	:	24

pn	:	p_07
pv	:	000000

pn	:	p_08
pv	:	000000

pn	:	p_0A
pv	:	0A00

chrisp250 avatar Sep 09 '23 02:09 chrisp250

@home-assistant reopen

fredrike avatar Sep 10 '23 06:09 fredrike

With support for local api we might be able to make integration work again. Nice findings @starryalley!

Please send me pm in the forum so we can document the new api and implement support.

fredrike avatar Sep 10 '23 06:09 fredrike

@icovada can you help us with decipher and implement support for 2.8?

fredrike avatar Sep 10 '23 06:09 fredrike

Interesting, looks like they moved to a more correct use of APIs: POST/PUT with payload instead of GET with args to change stuff!

This of course breaks everything...

@starryalley could you provide us with a pcap/log file of the requests you saw, possibly starting from when you open the app on your phone?

Also as many commands as you can with detailed instructions of what you changed (one thing at a time, obviously)

icovada avatar Sep 10 '23 08:09 icovada

Hi, I have an M1 Mac, which allows you to run iOS apps, so I was able to install the Daikin phone app and use tcpdump. Please see my findings below:

This is the with unit in heating mode, and OFF, switching the set point to 18.5C, note the value in p_03 is 25.

{"requests":[{"op":3,"to":"\/dsiot\/edge\/adr_0100.dgc_status","pc":{"pn":"dgc_status","pch":[{"pn":"e_1002","pch":[{"pn":"e_3001","pch":[{"pn":"p_08","pv":"000000"},{"pn":"p_03","pv":"25"},{"pn":"p_0A","pv":"0500"},{"pn":"p_2D","pv":"00"},{"pn":"p_01","pv":"0100"},{"pn":"p_07","pv":"0F0000"}]},{"pn":"e_3003","pch":[{"pn":"p_2D","pv":"02"}]},{"pn":"e_A002","pch":[{"pn":"p_01","pv":"00"}]}]}]}}]}

This is in the same state, now switching the set point to 19C, now p_03 is 26.

{"requests":[{"op":3,"to":"\/dsiot\/edge\/adr_0100.dgc_status","pc":{"pn":"dgc_status","pch":[{"pn":"e_1002","pch":[{"pn":"e_3001","pch":[{"pn":"p_07","pv":"0F0000"},{"pn":"p_08","pv":"000000"},{"pn":"p_03","pv":"26"},{"pn":"p_0A","pv":"0500"},{"pn":"p_2D","pv":"00"},{"pn":"p_01","pv":"0100"}]},{"pn":"e_A002","pch":[{"pn":"p_01","pv":"00"}]},{"pn":"e_3003","pch":[{"pn":"p_2D","pv":"02"}]}]}]}}]}

Now moving up to 19.5c, now p_03 is, you guessed it, 27.

{"requests":[{"op":3,"to":"\/dsiot\/edge\/adr_0100.dgc_status","pc":{"pn":"dgc_status","pch":[{"pn":"e_1002","pch":[{"pn":"e_3001","pch":[{"pn":"p_07","pv":"0F0000"},{"pn":"p_2D","pv":"00"},{"pn":"p_08","pv":"000000"},{"pn":"p_01","pv":"0100"},{"pn":"p_03","pv":"27"},{"pn":"p_0A","pv":"0500"}]},{"pn":"e_A002","pch":[{"pn":"p_01","pv":"00"}]},{"pn":"e_3003","pch":[{"pn":"p_2D","pv":"02"}]}]}]}}]}

I need to find a better way to do these captures, tcpdump is very basic. Cheers Christian

chrisp250 avatar Sep 10 '23 11:09 chrisp250

I also captured the regular handshake of the app. This happens regularly without touching anything on the GUI. Please note: All these transactions happen as part of a single regular update Also as some of the responses consist on multiple packets, it's hard to see on tcpdump where the beginning of the payload is on subsequent packets, so I might have missed one or two characters.

{"requests":[{"op":2,"to":"\/dsiot\/edge.adp_i?filter=pv"},{"op":2,"to":"\/dsiot\/edge.adp_d?filter=pv"},{"op":2,"to":"\/dsiot\/edge.adp_f?filter=pv"},{"op":2,"to":"\/dsiot\/edge.dev_i?filter=pv"},{"op":2,"to":"\/dsiot\/edge\/adr_0100.dgc_status?filter=pv"}]}
{"responses":[{"fr":"/dsiot/edge.adp_i","pc":{"pn":"adp_i","pt":1,"pch":[{"pn":"kind","pt":3,"pv":4},{"pn":"ver","pt":3,"pv":"2_8_0"},{"pn":"rev","pt":3,"pv":"6714e2aa"},{"pn":"reg","pt":3,"pv":"th"},{"pn":"mac","pt":3,"pv":"9C50D1BD1AAE"},{"pn":"ssid","pt":3,"pv":"DaikinAP00530"},{"pn":"enlv","pt":3,"pv":"2.20"},{"pn":"edid","pt":3,"pv":"0000000002297705"},{"pn":"func","pt":1,"pch":[{"pn":"en_ipower","pt":3,"pv":1},{"pn":"en_ipw_sep","pt":3,"pv":0},{"pn":"en_scdltmr","pt":3,"pv":1},{"pn":"en_patrol","pt":3,"pv":0},{"pn":"en_demand","pt":3,"pv":0}]}]},"rsc":2000},{"fr":"/dsiot/edge.adp_d","pc":{"pn":"adp_d","pt":1,"pch":[{"pn":"timz","pt":1,"pch":[{"pn":"tmdf","pt":2,"pv":600},{"pn":"dst","pt":2,"pv":1},{"pn":"zone","pt":2,"pv":345}]},{"pn":"name","pt":2,"pv":"Studio"},{"pn":"icon","pt":2,"pv":4},{"pn":"location","pt":2,"pv":0},{"pn":"led","pt":2,"pv":1},{"pn":"holiday","pt":2,"pv":0},{"pn":"notify","pt":1,"pch":[{"pn":"auto_off_flg","pt":2,"pv":0},{"pn":"auto_off_tm","pt":2,"pv":"- -"}]},{"pn":"group","pt":1,"pch":[{"pn":"ena","pt":2,"pv":0},{"pn":"name","pt":2,"pv":null}]},{"pn":"method","pt":2,"pv":"polling"},{"pn":"lpw_flag","pt":2,"pv":0},{"pn":"adp_mode","pt":3,"pv":"ap_run"},{"pn":"disp_ssid","pt":2,"pv":0}]},"rsc":2000},{"fr":"/dsiot/edge.adp_f","pc":{"pn":"adp_f","pt":1,"pch":[{"pn":"firmware_type","pt":3,"pv":"wlan_adp_gen4"},{"pn":"auto_update","pt":2,"pv":0}]},"rsc"
{"fr":"/dsiot/edge.dev_i","pc":{"pn":"dev_i","pt":1,"pch":[{"pn":"pver","pt":3,"pv":"03.000"},{"pn":"type","pt":3,"pv":"RA"},{"pn":"n_inu","pt":3,"pv":1},{"pn":"n_oun","pt":3,"pv":1},{"pn":"n_rem","pt":3,"pv":0},{"pn":"comm_err","pt":3,"pv":0}]},"rsc":2000},{"fr":"/dsiot/edge/adr_0100.dgc_status","pc":{"pn":"dgc_status","pt":1,"pch":[{"pn":"data_model_code","pt":3,"pv":26},{"pn":"root_entity_name","pt":3,"pv":"e_1002"},{"pn":"e_1002","pt":1,"pch":[{"pn":"e_A001","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"20202020202020202020202020202020202020202020"},{"pn":"p_03","pt":3,"pv":"2300"},{"pn":"p_07","pt":3,"pv":"00"},{"pn":"p_08","pt":3,"pv":"1A000000"},{"pn":"p_09","pt":3,"pv":"3030"},{"pn":"p_0A","pt":3,"pv":"202020202020"},{"pn":"p_0B","pt":3,"pv":"202020202020202020202020202020"},{"pn":"p_0C","pt":3,"pv":"00"},{"pn":"p_0D","pt":3,"pv":"38393431"},{"pn":"p_0E","pt":3,"pv":"01"},{"pn":"p_0F","pt":2,"pv":"454141314442314430354339"},{"pn":"p_10","pt":3,"pv":"3A00"},{"pn":"p_11","pt":3,"pv":"30"},{"pn":"p_12","pt":3,"pv":"30"},{"pn":"p_13","pt":3,"pv":"3030303030303032"},{"pn":"p_14","pt":3,"pv":"303030303030303030303030"},{"pn":"p_15","pt":3,"pv":"2020"}]},{"pn":"e_A010","pt":1,"pch":[{"pn":"p_07","pt":3,"pv":"00"}]},{"pn":"e_A004","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"00002D3030"},{"pn":"p_03","pt":3,"pv":"00"},{"pn":"p_04","pt":3,"pv":"00"},{"pn":"p_05","pt":3,"pv":"00"},{"
pn":"p_09","pt":3,"pv":"00002D3048"},{"pn":"p_0A","pt":3,"pv":"00"},{"pn":"p_0B","pt":3,"pv":"00"},{"pn":"p_0C","pt":3,"pv":"00"}]},{"pn":"e_A002","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"00"}]},{"pn":"e_200B","pt":1,"pch":[]},{"pn":"e_A00B","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"14"},{"pn":"p_02","pt":3,"pv":"2D"},{"pn":"p_05","pt":3,"pv":"2800"},{"pn":"p_06","pt":3,"pv":"2800"}]},{"pn":"e_2016","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"03DA0020"}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"6011"},{"pn":"p_03","pt":3,"pv":"6011"}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"8005"},{"pn":"p_03","pt":3,"pv":"8005"}]},{"pn":"e_2025","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"400D"},{"pn":"p_03","pt":3,"pv":"400D"}]},{"pn":"e_2025","pt":1,"pch":[]},{"pn":"e_2028","pt":1,"pch":[{"pn":"p_03","pt":3,"pv":"0000"},{"pn":"p_04","pt":3,"pv":"0000"},{"pn":"e_2007","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"000000"},{"pn":"p_03","pt":3,"pv":"347E00"}]}]},{"pn":"e_2029","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"2B00"}]},{"pn":"e_3003","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"01"},{"pn":"p_02","pt":3,"pv":"00"},{"pn":"p_0C","pt":3,"pv":"2F"},{"pn":"p_1A","pt":3,"pv":"32"},{"pn":"p_1B","pt":3,"pv":"00"},{"pn":"p_1D","pt":3,"pv":"00"},{"pn":"p_20","pt":3,"pv":"01"},{"pn":"p_26","pt":3,"pv":"00"},{"pn":"p_27","pt":3,"pv":"00"},{"pn":"p_28","pt":3,"pv":"01"},{"pn":"p_29","pt":3,"pv
:"00"},{"pn":"p_2A","pt":3,"pv":"00"},{"pn":"p_2C","pt":3,"pv":"00"},{"pn":"p_2D","pt":2,"pv":"00"},{"pn":"p_2F","pt":3,"pv":"0400"},{"pn":"p_30","pt":3,"pv":"00"},{"pn":"p_36","pt":2,"pv":"00"},{"pn":"p_37","pt":3,"pv":"00"},{"pn":"p_38","pt":3,"pv":"010000"},{"pn":"p_3A","pt":3,"pv":"0000"},{"pn":"p_3B","pt":3,"pv":"0000"},{"pn":"p_41","pt":2,"pv":"000039353336323532303036313532"},{"pn":"p_4D","pt":3,"pv":"00"},{"pn":"p_31","pt":3,"pv":"00002D3030"},{"pn":"p_32","pt":3,"pv":"00"},{"pn":"p_33","pt":3,"pv":"00"},{"pn":"p_34","pt":3,"pv":"00"}]},{"pn":"e_3001","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"0100"},{"pn":"p_02","pt":2,"pv":"32"},{"pn":"p_03","pt":2,"pv":"27"},{"pn":"p_05","pt":2,"pv":"00000000"},{"pn":"p_06","pt":2,"pv":"000000"},{"pn":"p_07","pt":2,"pv":"0F000000"},{"pn":"p_08","pt":2,"pv":"000000"},{"pn":"p_09","pt":2,"pv":"0A00"},{"pn":"p_0A","pt":2,"pv":"0500"},{"pn":"p_1D","pt":2,"pv":"32"},{"pn":"p_20","pt":2,"pv":"00000000"},{"pn":"p_21","pt":2,"pv":"000000"},{"pn":"p_22","pt":2,"pv":"00000000"},{"pn":"p_23","pt":2,"pv":"000000"},{"pn":"p_24","pt":2,"pv":"00000000"},{"pn":"p_25","pt":2,"pv":"000000"},{"pn":"p_26","pt":2,"pv":"0A00"},{"pn":"p_27","pt":2,"pv":"0A00"},{"pn":"p_28","pt":2,"pv":"0A00"},{"pn":"p_34","pt":2,"pv":"00"}]},{"pn":"e_A011","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"01"},{"pn":"p_02","pt":3,"pv":"00"},{"pn":"p_03","pt":2,"pv":"00"},{"pn":"p_06",
pt":3,"pv":"0000"},{"pn":"p_07","pt":3,"pv":"0000"},{"pn":"p_08","pt":3,"pv":"0000"},{"pn":"p_09","pt":3,"pv":"0000"},{"pn":"p_0A","pt":3,"pv":"0000"},{"pn":"p_0B","pt":3,"pv":"0000"},{"pn":"p_0C","pt":3,"pv":"0000"}]},{"pn":"e_A006","pt":1,"pch":[{"pn":"p_0E","pt":3,"pv":"0000"},{"pn":"p_0F","pt":3,"pv":"00"},{"pn":"p_10","pt":3,"pv":"32303330333033303330"},{"pn":"p_11","pt":3,"pv":"0800"},{"pn":"p_13","pt":3,"pv":"08"},{"pn":"p_14","pt":3,"pv":"00"},{"pn":"p_15","pt":3,"pv":"30303030303030303030"},{"pn":"p_16","pt":3,"pv":"0000"}]}]}]},"rsc":2000}]}


{"requests":[{"op":2,"to":"\/dsiot\/edge\/adr_0100.dgc_status?filter=pv"},{"op":2,"to":"\/dsiot\/edge\/adr_0200.dgc_status?filter=pv"}]}

{"responses":[{"fr":"/dsiot/edge/adr_0100.dgc_status","pc":{"pn":"dgc_status","pt":1,"pch":[{"pn":"data_model_code","pt":3,"pv":26},{"pn":"root_entity_name","pt":3,"pv":"e_1002"},{"pn":"e_1002","pt":1,"pch":[{"pn":"e_A001","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"20202020202020202020202020202020202020202020"},{"pn":"p_03","pt":3,"pv":"2300"},{"pn":"p_07","pt":3,"pv":"00"},{"pn":"p_08","pt":3,"pv":"1A000000"},{"pn":"p_09","pt":3,"pv":"3030"},{"pn":"p_0A","pt":3,"pv":"202020202020"},{"pn":"p_0B","pt":3,"pv":"202020202020202020202020202020"},{"pn":"p_0C","pt":3,"pv":"00"},{"pn":"p_0D","pt":3,"pv":"38393431"},{"pn":"p_0E","pt":3,"pv":"01"},{"pn":"p_0F","pt":2,"pv":"454141314442314430354339"},{"pn":"p_10","pt":3,"pv":"3A00"},{"pn":"p_11","pt":3,"pv":"30"},{"pn":"p_12","pt":3,"pv":"30"},{"pn":"p_13","pt":3,"pv":"3030303030303032"},{"pn":"p_14","pt":3,"pv":"303030303030303030303030"},{"pn":"p_15","pt":3,"pv":"2020"}]},{"pn":"e_A010","pt":1,"pch":[{"pn":"p_07","pt":3,"pv":"00"}]},{"pn":"e_A004","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"00002D3030"},{"pn":"p_03","pt":3,"pv":"00"},{"pn":"p_04","pt":3,"pv":"00"},{"pn":"p_05","pt":3,"pv":"00"},{"pn":"p_09","pt":3,"pv":"00002D3048"},{"pn":"p_0A","pt":3,"pv":"00"},{"pn":"p_0B","pt":3,"pv":"00"},{"pn":"p_0C","pt":3,"pv":"00"}]},{"pn":"e_A002","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"00"}]},{"pn":"e_200B","pt":1,"pch":[]},{"pn":"e_A00B","pt":1,"pc
:[{"pn":"p_01","pt":3,"pv":"14"},{"pn":"p_02","pt":3,"pv":"2D"},{"pn":"p_05","pt":3,"pv":"2800"},{"pn":"p_06","pt":3,"pv":"2800"}]},{"pn":"e_2016","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"03DA0020"}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"6011"},{"pn":"p_03","pt":3,"pv":"6011"}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"8005"},{"pn":"p_03","pt":3,"pv":"8005"}]},{"pn":"e_2025","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"400D"},{"pn":"p_03","pt":3,"pv":"400D"}]},{"pn":"e_2025","pt":1,"pch":[]},{"pn":"e_2028","pt":1,"pch":[{"pn":"p_03","pt":3,"pv":"0000"},{"pn":"p_04","pt":3,"pv":"0000"},{"pn":"e_2007","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"000000"},{"pn":"p_03","pt":3,"pv":"347E00"}]}]},{"pn":"e_2029","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"2B00"}]},{"pn":"e_3003","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"01"},{"pn":"p_02","pt":3,"pv":"00"},{"pn":"p_0C","pt":3,"pv":"2F"},{"pn":"p_1A","pt":3,"pv":"32"},{"pn":"p_1B","pt":3,"pv":"00"},{"pn":"p_1D","pt":3,"pv":"00"},{"pn":"p_20","pt":3,"pv":"01"},{"pn":"p_26","pt":3,"pv":"00"},{"pn":"p_27","pt":3,"pv":"00"},{"pn":"p_28","pt":3,"pv":"01"},{"pn":"p_29","pt":3,"pv":"00"},{"pn":"p_2A","pt":3,"pv":"00"},{"pn":"p_2C","pt":3,"pv":"00"},{"pn":"p_2D","pt":2,"pv":"00"},{"pn":"p_2F","pt":3,"pv":"0400"},{"pn":"p_30","pt":3,"pv":"00"},{"pn":"p_36","pt":2,"pv":"00"},{"pn":"p_37","pt":3,"pv":"00"},{"pn":"p_38","pt":3,"pv"
"010000"},{"pn":"p_3A","pt":3,"pv":"0000"},{"pn":"p_3B","pt":3,"pv":"0000"},{"pn":"p_41","pt":2,"pv":"000039353336323532303036313532"},{"pn":"p_4D","pt":3,"pv":"00"},{"pn":"p_31","pt":3,"pv":"00002D3030"},{"pn":"p_32","pt":3,"pv":"00"},{"pn":"p_33","pt":3,"pv":"00"},{"pn":"p_34","pt":3,"pv":"00"}]},{"pn":"e_3001","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"0100"},{"pn":"p_02","pt":2,"pv":"32"},{"pn":"p_03","pt":2,"pv":"27"},{"pn":"p_05","pt":2,"pv":"00000000"},{"pn":"p_06","pt":2,"pv":"000000"},{"pn":"p_07","pt":2,"pv":"0F000000"},{"pn":"p_08","pt":2,"pv":"000000"},{"pn":"p_09","pt":2,"pv":"0A00"},{"pn":"p_0A","pt":2,"pv":"0500"},{"pn":"p_1D","pt":2,"pv":"32"},{"pn":"p_20","pt":2,"pv":"00000000"},{"pn":"p_21","pt":2,"pv":"000000"},{"pn":"p_22","pt":2,"pv":"00000000"},{"pn":"p_23","pt":2,"pv":"000000"},{"pn":"p_24","pt":2,"pv":"00000000"},{"pn":"p_25","pt":2,"pv":"000000"},{"pn":"p_26","pt":2,"pv":"0A00"},{"pn":"p_27","pt":2,"pv":"0A00"},{"pn":"p_28","pt":2,"pv":"0A00"},{"pn":"p_34","pt":2,"pv":"00"}]},{"pn":"e_A011","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"01"},{"pn":"p_02","pt":3,"pv":"00"},{"pn":"p_03","pt":2,"pv":"00"},{"pn":"p_06","pt":3,"pv":"0000"},{"pn":"p_07","pt":3,"pv":"0000"},{"pn":"p_08","pt":3,"pv":"0000"},{"pn":"p_09","pt":3,"pv":"0000"},{"pn":"p_0A","pt":3,"pv":"0000"},{"pn":"p_0B","pt":3,"pv":"0000"},{"pn":"p_0C","pt":3,"pv":"0000"}]},{"pn":"e_A006","pt":1,"pch":[{"
pn":"p_0E","pt":3,"pv":"0000"},{"pn":"p_0F","pt":3,"pv":"00"},{"pn":"p_10","pt":3,"pv":"32303330333033303330"},{"pn":"p_11","pt":3,"pv":"0800"},{"pn":"p_13","pt":3,"pv":"08"},{"pn":"p_14","pt":3,"pv":"00"},{"pn":"p_15","pt":3,"pv":"30303030303030303030"},{"pn":"p_16","pt":3,"pv":"0000"}]}]}]},"rsc":2000},{"fr":"/dsiot/edge/adr_0200.dgc_status","pc":{"pn":"dgc_status","pt":1,"pch":[{"pn":"data_model_code","pt":3,"pv":26},{"pn":"root_entity_name","pt":3,"pv":"e_1003"},{"pn":"e_1003","pt":1,"pch":[{"pn":"e_A001","pt":1,"pch":[{"pn":"p_09","pt":3,"pv":"2020"},{"pn":"p_11","pt":3,"pv":"20"},{"pn":"p_12","pt":3,"pv":"20"},{"pn":"p_13","pt":3,"pv":"2020202020202020"},{"pn":"p_14","pt":3,"pv":"202020202020202020202020"}]},{"pn":"e_A010","pt":1,"pch":[{"pn":"p_08","pt":3,"pv":"01"}]},{"pn":"e_A00A","pt":1,"pch":[{"pn":"p_03","pt":3,"pv":"500000"},{"pn":"p_04","pt":3,"pv":"500000"},{"pn":"p_07","pt":3,"pv":"4B0000"},{"pn":"p_08","pt":3,"pv":"4B0000"}]},{"pn":"e_A005","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"000000"},{"pn":"p_02","pt":3,"pv":"0A0000"},{"pn":"p_05","pt":3,"pv":"841300"},{"pn":"p_09","pt":3,"pv":"0000"},{"pn":"p_0A","pt":3,"pv":"0000"},{"pn":"p_0B","pt":3,"pv":"0000"},{"pn":"p_0C","pt":3,"pv":"0000"},{"pn":"p_0D","pt":3,"pv":"0000"}]},{"pn":"e_A004","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"00002D3030"},{"pn":"p_03","pt":3,"pv":"00"},{"pn":"p_04","pt":3,"pv":"00"},{"pn":"p_05"
"pt":3,"pv":"00"}]},{"pn":"e_2006","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"00"},{"pn":"p_04","pt":3,"pv":"0000"},{"pn":"p_0B","pt":3,"pv":"4600"},{"pn":"p_25","pt":3,"pv":"3200"}]},{"pn":"e_2005","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"9001"}]},{"pn":"e_2013","pt":1,"pch":[]},{"pn":"e_2008","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"0000"}]},{"pn":"e_2009","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"1400"}]},{"pn":"e_A00D","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"0F00"}]},{"pn":"e_3002","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"01"},{"pn":"p_04","pt":3,"pv":"00"},{"pn":"p_44","pt":3,"pv":"00"},{"pn":"p_5C","pt":3,"pv":"00"},{"pn":"p_5D","pt":3,"pv":"00"},{"pn":"p_5E","pt":2,"pv":"00"},{"pn":"p_5F","pt":3,"pv":"0000"},{"pn":"p_60","pt":3,"pv":"0000"},{"pn":"p_61","pt":3,"pv":"000000"},{"pn":"p_62","pt":3,"pv":"000000"},{"pn":"p_63","pt":3,"pv":"000000"},{"pn":"p_64","pt":3,"pv":"000000"},{"pn":"p_65","pt":3,"pv":"0000"},{"pn":"p_66","pt":3,"pv":"0000"},{"pn":"p_67","pt":3,"pv":"0000"},{"pn":"p_68","pt":3,"pv":"C0FF"},{"pn":"p_69","pt":3,"pv":"C0FF"}]},{"pn":"e_A00F","pt":1,"pch":[]}]}]},"rsc":2000}]}



{"requests":[{"op":2,"to":"\/dsiot\/edge\/adr_0100.dgc_status?filter=pv,md"},{"op":2,"to":"\/dsiot\/edge\/adr_0200.dgc_status?filter=pv,md"}]}

{"responses":[{"fr":"/dsiot/edge/adr_0100.dgc_status","pc":{"pn":"dgc_status","pt":1,"pch":[{"pn":"data_model_code","pt":3,"pv":26,"md":{"pt":"i"}},{"pn":"root_entity_name","pt":3,"pv":"e_1002","md":{"pt":"s"}},{"pn":"e_1002","pt":1,"pch":[{"pn":"e_A001","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"20202020202020202020202020202020202020202020","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_03","pt":3,"pv":"2300","md":{"pt":"b","st":241,"mi":"0000","mx":"FF00"}},{"pn":"p_07","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"07"}},{"pn":"p_08","pt":3,"pv":"1A000000","md":{"pt":"b","st":1,"mi":"00000000","mx":"00000004"}},{"pn":"p_09","pt":3,"pv":"3030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_0A","pt":3,"pv":"202020202020","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_0B","pt":3,"pv":"202020202020202020202020202020","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_0C","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_0D","pt":3,"pv":"38393431","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_0E","pt":3,"pv":"01","md":{"pt":"b","st":0,"mi":null,"mx":"03"}},{"pn":"p_0F","pt":2,"pv":"454141314442314430354339","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_10","pt":3,"pv":"3A00","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_11","pt":3,"pv":"30","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_12","pt":3,"pv":"3
0","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_13","pt":3,"pv":"3030303030303032","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_14","pt":3,"pv":"303030303030303030303030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_15","pt":3,"pv":"2020","md":{"pt":"b","st":0,"mi":null,"mx":null}}]},{"pn":"e_A010","pt":1,"pch":[{"pn":"p_07","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"03"}}]},{"pn":"e_A004","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"00002D3030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_03","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"0F"}},{"pn":"p_04","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"1F"}},{"pn":"p_05","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"07"}},{"pn":"p_09","pt":3,"pv":"00002D3048","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_0A","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"0F"}},{"pn":"p_0B","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"1F"}},{"pn":"p_0C","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"07"}}]},{"pn":"e_A002","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}}]},{"pn":"e_200B","pt":1,"pch":[]},{"pn":"e_A00B","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"14","md":{"pt":"b","st":1,"mi":"F7","mx":"27"}},{"pn":"p_02","pt":3,"pv":"2D","md":{"pt":"b","st":1,"mi":"19","mx":"55"}},{"pn":"p_05","pt":3,"pv":"2800","
md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}},{"pn":"p_06","pt":3,"pv":"2800","md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}}]},{"pn":"e_2016","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"03DA0020","md":{"pt":"b","st":0,"mi":null,"mx":null}}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"6011","md":{"pt":"b","st":1,"mi":"60FF","mx":"6011"}},{"pn":"p_03","pt":3,"pv":"6011","md":{"pt":"b","st":1,"mi":"60FF","mx":"6011"}}]},{"pn":"e_2015","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"8005","md":{"pt":"b","st":1,"mi":"C8FF","mx":"8005"}},{"pn":"p_03","pt":3,"pv":"8005","md":{"pt":"b","st":1,"mi":"C8FF","mx":"8005"}}]},{"pn":"e_2025","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"400D","md":{"pt":"b","st":1,"mi":"C0FF","mx":"8012"}},{"pn":"p_03","pt":3,"pv":"400D","md":{"pt":"b","st":1,"mi":"C0FF","mx":"8012"}}]},{"pn":"e_2025","pt":1,"pch":[]},{"pn":"e_2028","pt":1,"pch":[{"pn":"p_03","pt":3,"pv":"0000","md":{"pt":"b","st":17,"mi":"0000","mx":"FF00"}},{"pn":"p_04","pt":3,"pv":"0000","md":{"pt":"b","st":17,"mi":"0000","mx":"7000"}},{"pn":"e_2007","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"000000","md":{"pt":"b","st":209,"mi":"000000","mx":"FFFF00"}},{"pn":"p_03","pt":3,"pv":"347E00","md":{"pt":"b","st":225,"mi":"000000","mx":"FFFF00"}}]}]},{"pn":"e_2029","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"2B00","md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}}]},{"pn":"e_3003","pt":1,"pch":[{"pn":"p_
01","pt":3,"pv":"01","md":{"pt":"b","st":0,"mi":null,"mx":"27"}},{"pn":"p_02","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_0C","pt":3,"pv":"2F","md":{"pt":"b","st":245,"mi":"14","mx":"42"}},{"pn":"p_1A","pt":3,"pv":"32","md":{"pt":"b","st":1,"mi":"00","mx":"64"}},{"pn":"p_1B","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_1D","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_20","pt":3,"pv":"01","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_26","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"0F"}},{"pn":"p_27","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"1F"}},{"pn":"p_28","pt":3,"pv":"01","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_29","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_2A","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"0B"}},{"pn":"p_2C","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_2D","pt":2,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"10"}},{"pn":"p_2F","pt":3,"pv":"0400","md":{"pt":"b","st":1,"mi":"0000","mx":"0A00"}},{"pn":"p_30","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_36","pt":2,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_37","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"0F"}},{"pn":"p_38","pt":3,"pv":"010000","md":{"pt":"b","st":1,"mi":"000000"
"mx":"FFFF00"}},{"pn":"p_3A","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"A005"}},{"pn":"p_3B","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"A005"}},{"pn":"p_41","pt":2,"pv":"000039353336323532303036313532","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_4D","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"03"}},{"pn":"p_31","pt":3,"pv":"00002D3030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_32","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"0F"}},{"pn":"p_33","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"1F"}},{"pn":"p_34","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"07"}}]},{"pn":"e_3001","pt":1,"pch":[{"pn":"p_01","pt":2,"pv":"0100","md":{"pt":"b","st":0,"mi":null,"mx":"2F00"}},{"pn":"p_02","pt":2,"pv":"32","md":{"pt":"b","st":245,"mi":"24","mx":"40"}},{"pn":"p_03","pt":2,"pv":"27","md":{"pt":"b","st":245,"mi":"14","mx":"3C"}},{"pn":"p_05","pt":2,"pv":"00000000","md":{"pt":"b","st":0,"mi":null,"mx":"01808000"}},{"pn":"p_06","pt":2,"pv":"000000","md":{"pt":"b","st":0,"mi":null,"mx":"018000"}},{"pn":"p_07","pt":2,"pv":"0F000000","md":{"pt":"b","st":0,"mi":null,"mx":"01808000"}},{"pn":"p_08","pt":2,"pv":"000000","md":{"pt":"b","st":0,"mi":null,"mx":"018000"}},{"pn":"p_09","pt":2,"pv":"0A00","md":{"pt":"b","st":0,"mi":null,"mx":"F80C"}},{"pn":"p_0A","pt":2,"pv":"0500","md":{"pt":"b","st":0,"mi":null,"mx"
:"F80C"}},{"pn":"p_1D","pt":2,"pv":"32","md":{"pt":"b","st":245,"mi":"24","mx":"3C"}},{"pn":"p_20","pt":2,"pv":"00000000","md":{"pt":"b","st":0,"mi":null,"mx":"01808000"}},{"pn":"p_21","pt":2,"pv":"000000","md":{"pt":"b","st":0,"mi":null,"mx":"018000"}},{"pn":"p_22","pt":2,"pv":"00000000","md":{"pt":"b","st":0,"mi":null,"mx":"01808000"}},{"pn":"p_23","pt":2,"pv":"000000","md":{"pt":"b","st":0,"mi":null,"mx":"018000"}},{"pn":"p_24","pt":2,"pv":"00000000","md":{"pt":"b","st":0,"mi":null,"mx":"01800000"}},{"pn":"p_25","pt":2,"pv":"000000","md":{"pt":"b","st":0,"mi":null,"mx":"018000"}},{"pn":"p_26","pt":2,"pv":"0A00","md":{"pt":"b","st":0,"mi":null,"mx":"F80C"}},{"pn":"p_27","pt":2,"pv":"0A00","md":{"pt":"b","st":0,"mi":null,"mx":"0004"}},{"pn":"p_28","pt":2,"pv":"0A00","md":{"pt":"b","st":0,"mi":null,"mx":"F80C"}},{"pn":"p_34","pt":2,"pv":"00","md":{"pt":"b","st":245,"mi":"FA","mx":"00"}}]},{"pn":"e_A011","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"01","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_02","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_03","pt":2,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_06","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_07","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_08","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"
09","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_0A","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_0B","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_0C","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}}]},{"pn":"e_A006","pt":1,"pch":[{"pn":"p_0E","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_0F","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"0F"}},{"pn":"p_10","pt":3,"pv":"32303330333033303330","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_11","pt":3,"pv":"0800","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_13","pt":3,"pv":"08","md":{"pt":"b","st":1,"mi":"00","mx":"0F"}},{"pn":"p_14","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"03"}},{"pn":"p_15","pt":3,"pv":"30303030303030303030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_16","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}}]}]}]},"rsc":2000},{"fr":"/dsiot/edge/adr_0200.dgc_status","pc":{"pn":"dgc_status","pt":1,"pch":[{"pn":"data_model_code","pt":3,"pv":26,"md":{"pt":"i"}},{"pn":"root_entity_name","pt":3,"pv":"e_1003","md":{"pt":"s"}},{"pn":"e_1003","pt":1,"pch":[{"pn":"e_A001","pt":1,"pch":[{"pn":"p_09","pt":3,"pv":"2020","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_11","pt":3,"pv":"20","md":{"pt":"b","st":0,"mi":null
,"mx":null}},{"pn":"p_12","pt":3,"pv":"20","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_13","pt":3,"pv":"2020202020202020","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_14","pt":3,"pv":"202020202020202020202020","md":{"pt":"b","st":0,"mi":null,"mx":null}}]},{"pn":"e_A010","pt":1,"pch":[{"pn":"p_08","pt":3,"pv":"01","md":{"pt":"b","st":1,"mi":"01","mx":"0F"}}]},{"pn":"e_A00A","pt":1,"pch":[{"pn":"p_03","pt":3,"pv":"500000","md":{"pt":"b","st":225,"mi":"000000","mx":"FFFF00"}},{"pn":"p_04","pt":3,"pv":"500000","md":{"pt":"b","st":225,"mi":"000000","mx":"FFFF00"}},{"pn":"p_07","pt":3,"pv":"4B0000","md":{"pt":"b","st":225,"mi":"000000","mx":"FFFF00"}},{"pn":"p_08","pt":3,"pv":"4B0000","md":{"pt":"b","st":225,"mi":"000000","mx":"FFFF00"}}]},{"pn":"e_A005","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"000000","md":{"pt":"b","st":17,"mi":"000000","mx":"FFFF00"}},{"pn":"p_02","pt":3,"pv":"0A0000","md":{"pt":"b","st":241,"mi":"000000","mx":"FFFF00"}},{"pn":"p_05","pt":3,"pv":"841300","md":{"pt":"b","st":241,"mi":"000000","mx":"9F8601"}},{"pn":"p_09","pt":3,"pv":"0000","md":{"pt":"b","st":2,"mi":"0000","mx":"FF00"}},{"pn":"p_0A","pt":3,"pv":"0000","md":{"pt":"b","st":2,"mi":"0000","mx":"FF00"}},{"pn":"p_0B","pt":3,"pv":"0000","md":{"pt":"b","st":2,"mi":"0000","mx":"FF00"}},{"pn":"p_0C","pt":3,"pv":"0000","md":{"pt":"b","st":245,"mi":"0000","mx":"FF00"}},{"pn":"p_0D","pt":3,"pv":
"0000","md":{"pt":"b","st":245,"mi":"0000","mx":"FF00"}}]},{"pn":"e_A004","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"00002D3030","md":{"pt":"b","st":0,"mi":null,"mx":null}},{"pn":"p_03","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"0F"}},{"pn":"p_04","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"1F"}},{"pn":"p_05","pt":3,"pv":"00","md":{"pt":"b","st":0,"mi":null,"mx":"07"}}]},{"pn":"e_2006","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_04","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_0B","pt":3,"pv":"4600","md":{"pt":"b","st":245,"mi":"0000","mx":"FF00"}},{"pn":"p_25","pt":3,"pv":"3200","md":{"pt":"b","st":245,"mi":"0000","mx":"FF00"}}]},{"pn":"e_2005","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"9001","md":{"pt":"b","st":1,"mi":"18FD","mx":"D601"}}]},{"pn":"e_2013","pt":1,"pch":[]},{"pn":"e_2008","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"0000","md":{"pt":"b","st":17,"mi":"0000","mx":"9600"}}]},{"pn":"e_2009","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"1400","md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}}]},{"pn":"e_A00D","pt":1,"pch":[{"pn":"p_01","pt":3,"pv":"0F00","md":{"pt":"b","st":245,"mi":"EEFF","mx":"4E00"}}]},{"pn":"e_3002","pt":1,"pch":[{"pn":"p_02","pt":3,"pv":"01","md":{"pt":"b","st":0,"mi":null,"mx":"27"}},{"pn":"p_04","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}}
{"pn":"p_44","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_5C","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"03"}},{"pn":"p_5D","pt":3,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_5E","pt":2,"pv":"00","md":{"pt":"b","st":1,"mi":"00","mx":"01"}},{"pn":"p_5F","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_60","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_61","pt":3,"pv":"000000","md":{"pt":"b","st":1,"mi":"000000","mx":"FFFF00"}},{"pn":"p_62","pt":3,"pv":"000000","md":{"pt":"b","st":1,"mi":"000000","mx":"FFFF00"}},{"pn":"p_63","pt":3,"pv":"000000","md":{"pt":"b","st":1,"mi":"000000","mx":"FFFF00"}},{"pn":"p_64","pt":3,"pv":"000000","md":{"pt":"b","st":1,"mi":"000000","mx":"FFFF00"}},{"pn":"p_65","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_66","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_67","pt":3,"pv":"0000","md":{"pt":"b","st":1,"mi":"0000","mx":"FF00"}},{"pn":"p_68","pt":3,"pv":"C0FF","md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}},{"pn":"p_69","pt":3,"pv":"C0FF","md":{"pt":"b","st":245,"mi":"C0FF","mx":"BF00"}}]},{"pn":"e_A00F","pt":1,"pch":[]}]}]},"rsc":2000}]}


{"requests":[{"op":2,"to":"\/dsiot\/edge\/adr_0100.scdl_t.body?filter=pv"}]}
{"responses":[{"fr":"/dsiot/edge/adr_0100.scdl_t.body","pc":{"pn":"body","pt":1,"pch":[{"pn":"mo","pt":2,"pv":[]},{"pn":"tu","pt":2,"pv":["010501228.0A-000--","011100------------"]},{"pn":"we","pt":2,"pv":["010501228.0A-000--","011100------------"]},{"pn":"th","pt":2,"pv":["010501228.0A-000--","011100------------"]},{"pn":"fr","pt":2,"pv":["010501228.0A-000--","011100------------"]},{"pn":"sa","pt":2,"pv":["010501228.0A-000--","011100------------"]},{"pn":"su","pt":2,"pv":["010501228.0A-000--","011100------------"]}]},"rsc":2000}]}

chrisp250 avatar Sep 10 '23 11:09 chrisp250

image

I'm hoping this is true, that Daikin is planning to make the cloud API opensource for DIY at the end of this year. Can anyone else confirm this?

epajfl-00 avatar Sep 11 '23 00:09 epajfl-00

image

I'm hoping this is true, that Daikin is planning to make the cloud API opensource for DIY at the end of this year. Can anyone else confirm this?

This would good as a fall back, but if we can get the direct access working again, that would be much better.

chrisp250 avatar Sep 11 '23 00:09 chrisp250

Not sure if you or others have seen this doc, it may help in the methodology to decipher. https://backend.daikincomfort.com/docs/default-source/product-documents/residential/manuals/othermanual/im-dknapi.pdf

epajfl-00 avatar Sep 11 '23 00:09 epajfl-00

Another update... I installed resty and sent the status request below and was able to get a response from the unit:

POST /dsiot/multireq '{"requests":[{"op":2,"to":"\/dsiot\/edge.adp_i?filter=pv"},{"op":2,"to":"\/dsiot\/edge.adp_d?filter=pv"},{"op":2,"to":"\/dsiot\/edge.adp_f?filter=pv"},{"op":2,"to":"\/dsiot\/edge.dev_i?filter=pv"},{"op":2,"to":"\/dsiot\/edge\/adr_0100.dgc_status?filter=pv"}]}'

I can see the temperature set point in the response too.

chrisp250 avatar Sep 12 '23 07:09 chrisp250

Chrisp250, that is get news,!! I've installed "Postman" and can send requests too. What is the message to send to turn on unit? is it a PUT or still a POST?

epajfl00 avatar Sep 13 '23 11:09 epajfl00

Chrisp250, that is get news,!! I've installed "Postman" and can send requests too. What is the message to send to turn on unit? is it a PUT or still a POST?

I think either POST or PUT works. but the app uses PUT. Put his config in your Home Assistant and when you call that service, the heater should start with a set point of 19C. Make sure you change the IP address to your unit

rest_command:
    ac_heater_on:
        url: http://192.168.10.159:/dsiot/multireq
        method: PUT
        payload: '{"requests":[{"op":3,"to":"\/dsiot\/edge\/adr_0100.dgc_status","pc":{"pn":"dgc_status","pch":[{"pn":"e_1002","pch":[{"pn":"e_3001","pch":[{"pn":"p_07","pv":"0F0000"},{"pn":"p_08","pv":"000000"},{"pn":"p_01","pv":"0100"},{"pn":"p_03","pv":"26"},{"pn":"p_0A","pv":"0500"}]},{"pn":"e_A002","pch":[{"pn":"p_01","pv":"01"}]},{"pn":"e_3003","pch":[{"pn":"p_2D","pv":"00"}]}]}]}}]}'

Let me know how you go

chrisp250 avatar Sep 13 '23 11:09 chrisp250

Let me know how you go

Thank you, now I understand why all my requests was not working for me. My payload contained \/ instead of / Originally I replaced " by " but did not notice \/ After replacing that too - all my requests work fine and return status 2004 instead of error (4041)

Funny thing - my AC does not have heating option but your request turned heater on it - at least the app says so. The AC itself is probably very confused about what to do XD

SmartFoundations avatar Sep 13 '23 13:09 SmartFoundations

Let me know how you go

Thank you, now I understand why all my requests was not working for me. My payload contained / instead of / Originally I replaced " by " but did not notice / After replacing that too - all my requests work fine and return status 2004 instead of error (4041)

Funny thing - my AC does not have heating option but your request turned heater on it - at least the app says so. The AC itself is probably very confused about what to do XD

Glad you got it working. Tomorrow I’ll try to get you the payload to start the AC. Cheers

chrisp250 avatar Sep 13 '23 19:09 chrisp250

Hi all, Please see below the payload to turn the AC on, set to 25Deg C.

{"requests":[{"op":3,"to":"\/dsiot\/edge\/adr_0100.dgc_status","pc":{"pn":"dgc_status","pch":[{"pn":"e_1002","pch":[{"pn":"e_3001","pch":[{"pn":"p_0C","pv":"00"},{"pn":"p_02","pv":"32"},{"pn":"p_05","pv":"000000"},{"pn":"p_01","pv":"0200"},{"pn":"p_06","pv":"000000"},{"pn":"p_09","pv":"0A00"}]},{"pn":"e_3003","pch":[{"pn":"p_2D","pv":"00"}]},{"pn":"e_A002","pch":[{"pn":"p_01","pv":"01"}]}]}]}}]}

Cheers

chrisp250 avatar Sep 14 '23 23:09 chrisp250

@icovada Sorry for the delay. I've managed to captured all possible operations in Daikin Mobile Controller using an M1 Mac with Wireshark. There are 8 pcap files attached in the zip. All detailed steps below for each capture.

My setup:

  • Daikin Alira X 2.0kw (sold and used in Australia)
  • Firmware 2.8.0
  • App: Daikin Mobile Controller app for iOS running on a macbook pro M1.

Start of App:

  • start-app-enter-the-AC-click-menu-back-to-AC.pcap Open the Mobile Controller App, at timestamp 18s, click on this target AC so app goes to this AC's control page. at 31s, click on menu icon, at 38s click back, to go back to the AC's control page. The AC stays off during this time. No setting change.

Mode change:

  • on-switch-to-auto-cool-heat-fanonly-dry-auto-off.pcap Already on AC control page, Turn On (currently at heat mode), switch to Auto, Cool, Heat, Fan Only, Dry, and switch back to Auto, and Off.

Temperature setting of each mode (Current setting is Fan Speed set to Auto, Swing set to Off)

  • on-switch-to-fanonly-to-dry-off.pcap Already on AC control page, Turn On, Switch to Fan Only, and Switch to Dry, and then Off
  • start-app-enter-the-AC-click-menu-back-to-AC.pcap Already on AC control page, Turn On, Switch to Heater, dial to 10C, and with 0.5C step, all the way up to 30C, and then Off
  • on-switch-to-cool-18-to-32-off.pcap Already on AC control page, Turn On, Switch to Cool, dial to 18C, and with 0.5C step, all the way up to 32C, and then Off
  • on-switch-to-auto-18-to-30-off.pcap Already on AC control page, Turn On, Switch to Auto, dial to 18C, and with 0.5C step, all the way up to 30C, and then Off

Swing:

  • on-swing-ver-hor-3d-off.pcap Already on AC control page, Turn On, (currently in Dry mode), change to swing up-down, swing left-right, swing 3D, and then Off

Fan speed:

  • on-switch-to-heat-night-1-2-3-4-5-auto-off.pcap Turn On, (currently in Dry mode), switch to heater mode (currently at 30C), change fan speed to night, and then level 1,2,3,4,5, and then back to auto, and then Off

Let me know if I miss anything that isn't in the capture.

daikin-captures-pcap.zip

starryalley avatar Sep 19 '23 05:09 starryalley

Amazing, thank you very much.

I'm a little busy now but this will definitely help a lot to create something done properly

icovada avatar Sep 19 '23 06:09 icovada

@icovada I was able to work out part of the protocol as well if that helps.

chrisp250 avatar Sep 19 '23 07:09 chrisp250

I really don't like how the Daikin's app work. There is no way to set the AC to "powerful". It is just a subset of what one can do with the AC's IR remote and it's just the basic. I even recorded the IR code for "comfort" and "powerful" which I use a lot on my 2 Dakin's in SmartIR so I can set them with HA. However there is no way to do it in the app, let alone that human sensing feature on/off etc.

starryalley avatar Sep 19 '23 07:09 starryalley

OK I'm finally having a look at it.. and I'm hating it already! It's a mashup of data and schema all together.

Example 1:

{
    "pn": "p_29",
    "pt": 3,
    "pv": "00",
    "md": {
        "pt": "b",
        "st": 1,
        "mi": "00",
        "mx": "01"
    }
},

Variable "p_29", with value "00" is of type (md->pt) boolean, and it can go from 0 to 1

But oh no wait, how about

{
    "pn": "p_38",
    "pt": 3,
    "pv": "010000",
    "md": {
        "pt": "b",
        "st": 1,
        "mi": "000000",
        "mx": "FFFF00"
    }
},

Looks like "b" isn't "boolean" but stands for "array of bytes", which of course we're going to represent as a string, makes sense

Ugh.

Luckily I have experience working with this exact same kind of data format from work. I'll see what I can do

icovada avatar Sep 23 '23 08:09 icovada

Thanks, anything you have is of great help.

icovada avatar Sep 23 '23 10:09 icovada

Awesome analysis thanks @chrisp250 and @icovada . I haven't worked on anything like that before. I gave up trying to understand it the moment I saw the payload.

Having only worked on several web Restful APIs before, just out of curiosity is it designed to be hard to understand on purpose (to avoid what we are doing here?) or is it following some pattern used in the industry?

starryalley avatar Sep 23 '23 10:09 starryalley

Having only worked on several web Restful APIs before, just out of curiosity is it designed to be hard to understand on purpose (to avoid what we are doing here?) or is it following some pattern used in the industry?

Never attribute to malice what can be attributed to incompetence.

icovada avatar Sep 23 '23 14:09 icovada

We should update doc once we have fw 2.8.0 support (see my PR above).

fredrike avatar Oct 05 '23 13:10 fredrike

At a guess, they're peeking/poking directly at register values. Someone thought that this saved them firmware code, at the expense of making the API completely meaningless to humans. May also mean that this protocol is unstable and liable to change with each firmware update, which is a great choice. I hope it isn't.

I made a Python tool to read the pcap files from @starryalley and show coloured diffs of the HTTP payloads sent to a given IP: https://gist.github.com/brianbienvenu/1cfa067b5580610cb0fc3379211053eb

I've assumed that the order of the elements isn't important and sorted them before doing any comparisons. It's more readable with colours in your terminal.

Example output

py open_pcap.py 192.168.1.14 pcap\on-switch-to-auto-18-to-30-off.pcap -v
Opening pcap\on-switch-to-auto-18-to-30-off.pcap, printing HTTP payloads for 192.168.1.14
Got 29 headers, 28 payloads and 0 leftovers
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0200'}, {'pn': 'p_02', 'pv': '40'}, {'pn': 'p_05', 'pv': '000000'}, {'pn': 'p_06', 'pv': '000000'}, {'pn': 'p_09', 'pv': '0A00'}, {'pn': 'p_0C', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '00'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '32'}, {'pn': 'p_20', 'pv': '00000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0200 => 0300
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_02 => p_1D
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 40 => 32
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_05 => p_20
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 000000 => 00000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_06 => p_21
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pn'] p_09 => p_26
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5]['pn'] p_0C => p_2F
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 00 => 02
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '24'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 32 => 24
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 00000000 => 000000
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '25'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 24 => 25
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '26'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 25 => 26
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '27'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 26 => 27
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '28'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 27 => 28
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '29'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 28 => 29
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2A'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 29 => 2A
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2B'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2A => 2B
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2C'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2B => 2C
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2D'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2C => 2D
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2E'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2D => 2E
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '2F'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2E => 2F
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '30'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 2F => 30
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '31'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 30 => 31
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '32'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 31 => 32
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '33'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 32 => 33
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '34'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 33 => 34
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '35'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 34 => 35
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '36'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 35 => 36
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '37'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 36 => 37
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '38'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 37 => 38
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '39'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 38 => 39
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3A'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 39 => 3A
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3B'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 3A => 3B
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3C'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 3B => 3C
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3C'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '01'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '00'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 02 => 01
        ['requests'][0]['pc']['pch'][0]['pch'][2]['pch'][0]['pv'] 01 => 00
py open_pcap.py 192.168.1.14 pcap\on-swing-ver-hor-3d-off.pcap -v
Opening pcap\on-swing-ver-hor-3d-off.pcap, printing HTTP payloads for 192.168.1.14
Got 5 headers, 5 payloads and 0 leftovers
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '000000'}, {'pn': 'p_23', 'pv': '000000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '00'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '0F0000'}, {'pn': 'p_23', 'pv': '000000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 000000 => 0F0000
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 00 => 02
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '000000'}, {'pn': 'p_23', 'pv': '0F0000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 0F0000 => 000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 000000 => 0F0000
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '0F0000'}, {'pn': 'p_23', 'pv': '0F0000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 000000 => 0F0000
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '0F0000'}, {'pn': 'p_23', 'pv': '0F0000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '01'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '00'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 02 => 01
        ['requests'][0]['pc']['pch'][0]['pch'][2]['pch'][0]['pv'] 01 => 00
py open_pcap.py 192.168.1.14 pcap\on-switch-to-auto-cool-heat-fanonly-dry-auto-off.pcap -v
Opening pcap\on-switch-to-auto-cool-heat-fanonly-dry-auto-off.pcap, printing HTTP payloads for 192.168.1.14
Got 9 headers, 8 payloads and 0 leftovers
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0100'}, {'pn': 'p_03', 'pv': '3C'}, {'pn': 'p_07', 'pv': '000000'}, {'pn': 'p_08', 'pv': '000000'}, {'pn': 'p_0A', 'pv': '0A00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '00'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3C'}, {'pn': 'p_20', 'pv': '00000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsio
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0100 => 0300
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_03 => p_1D
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_07 => p_20
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 000000 => 00000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_08 => p_21
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pn'] p_0A => p_26
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 00 => 02
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5] Added {'pn': 'p_2F', 'pv': '00'}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0200'}, {'pn': 'p_02', 'pv': '40'}, {'pn': 'p_05', 'pv': '00000000'}, {'pn': 'p_06', 'pv': '000000'}, {'pn': 'p_09', 'pv': '0A00'}, {'pn': 'p_0C', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0300 => 0200
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_1D => p_02
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 3C => 40
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_20 => p_05
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_21 => p_06
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pn'] p_26 => p_09
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5]['pn'] p_2F => p_0C
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0100'}, {'pn': 'p_03', 'pv': '3C'}, {'pn': 'p_07', 'pv': '000000'}, {'pn': 'p_08', 'pv': '000000'}, {'pn': 'p_0A', 'pv': '0A00'}, {'pn': 'p_2D', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0200 => 0100
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_02 => p_03
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 40 => 3C
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_05 => p_07
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 00000000 => 000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_06 => p_08
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pn'] p_09 => p_0A
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5]['pn'] p_0C => p_2D
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0000'}, {'pn': 'p_24', 'pv': '00000000'}, {'pn': 'p_25', 'pv': '000000'}, {'pn': 'p_28', 'pv': '0A00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0100 => 0000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_03 => p_24
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 3C => 00000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_07 => p_25
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_08 => p_28
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pv'] 000000 => 0A00
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4] Removed {'pn': 'p_0A', 'pv': '0A00'}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5] Removed {'pn': 'p_2D', 'pv': '00'}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0500'}, {'pn': 'p_22', 'pv': '0F000000'}, {'pn': 'p_23', 'pv': '0F0000'}, {'pn': 'p_27', 'pv': '0A00'}, {'pn': 'p_31', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0000 => 0500
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_24 => p_22
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 00000000 => 0F000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_25 => p_23
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 000000 => 0F0000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_28 => p_27
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4] Added {'pn': 'p_31', 'pv': '00'}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3C'}, {'pn': 'p_20', 'pv': '00000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '02'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '01'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][0]['pv'] 0500 => 0300
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pn'] p_22 => p_1D
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][1]['pv'] 0F000000 => 3C
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pn'] p_23 => p_20
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 0F0000 => 00000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pn'] p_27 => p_21
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][3]['pv'] 0A00 => 000000
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pn'] p_31 => p_26
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][4]['pv'] 00 => 0A00
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][5] Added {'pn': 'p_2F', 'pv': '00'}
{'requests': [{'op': 3, 'pc': {'pch': [{'pch': [{'pch': [{'pn': 'p_01', 'pv': '0300'}, {'pn': 'p_1D', 'pv': '3C'}, {'pn': 'p_20', 'pv': '000000'}, {'pn': 'p_21', 'pv': '000000'}, {'pn': 'p_26', 'pv': '0A00'}, {'pn': 'p_2F', 'pv': '00'}], 'pn': 'e_3001'}, {'pch': [{'pn': 'p_2D', 'pv': '01'}], 'pn': 'e_3003'}, {'pch': [{'pn': 'p_01', 'pv': '00'}], 'pn': 'e_A002'}], 'pn': 'e_1002'}], 'pn': 'dgc_status'}, 'to': '/dsiot/edge/adr_0100.dgc_status'}]}
        ['requests'][0]['pc']['pch'][0]['pch'][0]['pch'][2]['pv'] 00000000 => 000000
        ['requests'][0]['pc']['pch'][0]['pch'][1]['pch'][0]['pv'] 02 => 01
        ['requests'][0]['pc']['pch'][0]['pch'][2]['pch'][0]['pv'] 01 => 00

Some of the register map is reasonably apparent, and a fair bit isn't. I don't have time to take this further today.

brianbienvenu avatar Oct 14 '23 13:10 brianbienvenu

Thank you to everyone who has FAR more technical knowledge in this area than I do. I miss having my Daikin unit working natively in HA I don't even know how my unit was switched to auto update but it did and I was already aware of this issue being a breaking change so when I reliased that was what had happened I was GUTTED as it had been really quite reliable up until that point.

I hope you wizzards are able to figure this out at some point and I am TRUELY grateful from the bottom of my heart to everyone who is working so dilligently on it

Gtwizzy avatar Oct 30 '23 05:10 Gtwizzy

Thank you to everyone who has FAR more technical knowledge in this area than I do. I miss having my Daikin unit working natively in HA I don't even know how my unit was switched to auto update but it did and I was already aware of this issue being a breaking change so when I reliased that was what had happened I was GUTTED as it had been really quite reliable up until that point.

I hope you wizzards are able to figure this out at some point and I am TRUELY grateful from the bottom of my heart to everyone who is working so dilligently on it

Now I feel bad for not having been able to work on this any sooner, I'll try to get at least a little bit of progress in the coming days

icovada avatar Oct 30 '23 17:10 icovada

@icovada You should absolutely not feel that way 😀 We are all very thankfull for your, and everyone elses efforts when and if you chose to offer your time. So thank you! ♥️

werkstrom avatar Oct 31 '23 08:10 werkstrom