twrecked / hass-aarlo

Asynchronous Arlo Component for Home Assistant
GNU Lesser General Public License v3.0
371 stars 77 forks source link

BabyCam temperature, humidity and air quality not retrieving correct value #652

Closed justinmaiuto closed 1 day ago

justinmaiuto commented 1 year ago

Every now and then I would have a problem that would resolve itself. But just of late, the problem is consistent in not being able to retrieve the value of the BabyCam temperature, humidity and air quality. It is retrieved and displayed as (for example): {'minThreshold': 0, 'maxThreshold': 650, 'alertsEnabled': True, 'recordingEnabled': True, 'value': 185, 'alertState': 'clear', 'scalingFactor': 10, 'hysteresis': 10}

{'minThreshold': 250, 'maxThreshold': 600, 'alertsEnabled': True, 'recordingEnabled': True, 'value': 646, 'alertState': 'high', 'scalingFactor': 10, 'hysteresis': 20}

{'minThreshold': 190, 'maxThreshold': 280, 'alertsEnabled': True, 'recordingEnabled': True, 'value': 206, 'alertState': 'clear', 'scalingFactor': 10, 'hysteresis': 20}

This is for air quality, humidity and temperature respectively. This is instead of an actual value, seems it's not parsing properly?

Nothing in the logs specifically. I'm on the latest version via HACS v0.7.2b11

twrecked commented 1 year ago

I guess they changed the format, it used to be a packed binary value. Can you capture and post a packet you get back from Arlo. I can modify the code to handle the new format.

You'll need to turn on logging and add verbos_debug: True to your aarlo configuration.

justinmaiuto commented 1 year ago

So it seems now it is parsing, but the values are staying the same for hours instead of updating on a regular basis? So a secondary problem which I have seen is back.

Seems the original problem might be linked to when one of the temperature/humidity/air quality goes into an alarm state and can't be parsed. And overall a secondary problem that updates are not occurring frequently so it will stay in the un-parsed value for hours until another update comes

I've turned on logging and also the packet dump, but not seeing anything actually get logged for the temperature/humidity/air quality though? Should I be looking for something specific?

twrecked commented 1 year ago

This what the old packets looked like:

test_packet = {'action': 'is',
               'from': 'XXXXXXXXXXXXXXX',
               'properties': {'format': {'accumInterval': 300,
                                         'compression': 'zlib',
                                         'count': 1978,
                                         'encoding': 'base64',
                                         'layout': {'airQuality': {'max': 2,
                                                                   'mean': 2,
                                                                   'min': 2},
                                                    'humidity': {'max': 2,
                                                                 'mean': 2,
                                                                 'min': 2},
                                                    'temperature': {'max': 2,
                                                                    'mean': 2,
                                                                    'min': 2},
                                                    'timestamp': 4},
                                         'size': 9980},
                              'payload': [
                                  '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',
                                  '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',
                                  '+gsVh3SUiksqXv1Hi0YVjzykShBAaEJKMFQiSm9VYvo6hgqgr2OopNQdqGSkoFVy+jqGSkELK5WS/JtKRdmVSkPpgUpLCyuVjhZWKj3dBlMZKLdXGSm3V5lpp6CykHpVWck7qWy0U1DZybmrHLRTULlop6ByU2qp8lBupPLSblvlo8ZGFSDfogpSX6gK0cJKBZJrVoVpYaWKUGajilFerYrTwkqVoJ2CKkltiSpFOwVVmhS0KksKWpUjBa3Kk4JWFWi3rSpSXqIq005BVaGsWFWltE5Vo4WVqk49mapBPZmqRW5R1Q4ktA5lFaou3RtX9SgpU/Upp1UNKadVQdRRqUb0dQzVmBpS1YScmmpGTk01px2pakE7UtWSUirVihJ61ZoyUtVWEdquAKHtqZ1UHagbVx3Jo6tOlBCpLrSBU10pn1R9yV+ofuQv1AA8scHkedVA8rxqEHleNZgyJjU0JaHDKOFUw4MJHUFf7VIjqd1RoylfV2No+a3GUrOtxlG+o8ZTvqMm0PJbTaJ0UU2m5beaQtm2mkrNipqGanA6qsGZqAZnoRqcjWpwDqrBuagG56MaDEE1uADV4EJUg4tQDS5GNbgU1eAyVIPLUQ2uQDW4EtXgKlSDawIIXYtqcB15XrWePK/aQJ5XbfoH+4tuJs+rcMekttK3AdQ2+jaA2h5G6E7yvGoXeV61mzyv2kOeV+0NJXQfeV61nzyvOkCeVx0kz6sOhRB6mDyvOkKeVx0jz6uO09pCnaTGUZ1C5Xia+m51hvyxOouMeJ5SQHUBNcxFPJuXKI9Sl/FtegU9wzXqu9V12jarG/iU3JxE6C1Ur7dpZavuokcPQ1a+R0mkuo866gHyw0PKxNRjfKM/oW/1qKd0M0Q9Q9/ynO53qxf4pL7C9/FrVNBvaGup3uKb4R2loeoDarmP6Fg/IUd9ps5HfaFcTn2lzkd9p62l+kFZpvqJv9tvyjLVH8oydTjidR2eeF1HIF7Xkf7B/qKRidd1FPqb6ajE6zoa8bqOTi2tjkknVseijYD2aB+lBbl8Lek2glbk8rUhl68tuXztyOVrnxpSHZtOi45D/bz+j76GoOPR1+F0fOJqnYDWIToh3UbQiWmXqQOondRJaBWsk9JtBJ2MunGdnHhSp6Rlhk5FWaZOTVmmTkNZpk5Lm0idjr75ojNQM6gzUi+tMxFH6czk8nUWcvk6O7l8nYPekDonuXydi1y+zk0uX+chl6/zkcvX+QMJLUAuXxekt5MuRC5fB5LL10XI5eui5PJ1MXL5uji5fF2CXL4uRW8GXZpcvi5DLl+XJZevy5Eu0eVJl+iKlGXqSpRl6sqUZeoqyHJVKcvU1ZDlaiDL1USWq4UsV5s0ga5DWaauS1mmrk9Zpm5AilQ3pCxTB1GWqRtRlqmbUJapm1KWqZtRlqmbU5apW5Aa1C0py9StKcvUbSgZ0W0pGdHtKBnR7SkZ0R0oGdGdSInpzpSM6C7BhHalZER3Ix+ge1AyontSMqJ7UTKie1MyovtQMqL7UjKi+1MyogeQBtfBlIzogZSM6EGUjOjBlIzooZSM6GGUjOjhlIzoEbQG0CNJ/+rRyHJjkOXGIsuNo8ZGj6fGRk9AlpuELDcZWW4KstxUummhp9E9Hz2d9kZ6Jq3d9CxyPno2bS31HPpKqZ5LS189j3y3DqHvmesF9D1zvZDWAHoRuQ69mNYAeiklI3oZJSN6OXlevYKSEb0ylNBVlIzoNfSvNui1tHnS6+hfbdDrkeU2IMttRJbbjCy3BVluazCh25DltiPL7USW24UstxtZbg+y3F7aPOl9qOXwXp0+iBx1CDnqCHLUUeSoY8hRx8mj6xOU3upTlN7q05Te6jOUEOmzlBDpc7RY0udpsaQv0mJJX6LFkr5MfYu+Qn2Lvkp9i75GfYu+QemMvkl9i75F3xzQt5Gj7iBH3UWOukfZoL5PtxH0A1RiD1GJPUIl9gSV2FNUYs/Qbz5Hv/kC/eZL9Juv0W++Qb/5Fv3mO9QE7/G8faCFoP5EC0H9mRaC+gstBPVX1ATf0Pn8',
                                  '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',
                                  'PvYmpT72Fv7V71CDZ+8GEhqG76x7+M66j++sB/jOehRA6GNq8OwTavDsU+rG7TPqxu0L6sbtS+rG7Svqxu1r6sbtG8q27VvKtu17yrbtB8q27UfKtu0nSn3sZ1oA2S+0ALLfaAFkv9MCyP6g+5D2Jy2A7C9aANnftABy4WgB5MLTDS8XgW54uYh0w8tFohteLgrd8HJRaQHkotHizkWnxZ2LQYs7F5MWd86jxZ0TtFNwknYKTpEyd5qUuTOkzJ0jZe58Wri62LRwdXFo4eri0sLVxaOFq4tPytwlIGXuEpIyd4lImbvEpMxdElq4uqS0cHXJ6Jt8Ljl9k8+loPzBpaT8waWm/MGlofzBpaX8waWj/MGlp39rwGWgf1XLZaKdgstMOwWXhbScy0pazmULIzQHaTmXk7Scy0X5g8tN+YPLE0poXtJyLj9pOVeA8gdXkL5P4ArRPVYXSPdYXWG6x+qK0j1WVwxZrjiyXAnKH1xJyh9cacofXBnKH1xZyh9cOcofXHnKH1wFyh9cJUpZXWVKWR1+YdxVpV2xq0a7YleddvyuJmk5V4u0nKtNWs7VIS3n6pKWc/WpMXcNqDF3Dakxd0G043eNaMfvGtOO3zWllNU1o5TVNaeU1bWglNW1RJZrhSzXBlmuLbJcO2S59shyHZDlOiLLdUaW64Is1xVZrhuyXPcwQnsiy/VClutNjtX1Icfq+oYS2g9ZbgCyXDA5VjeQuiQ3iByrG0yO1Q0hx+qGkWN1w8mxuhHBhI4kx+pGUWPuxpB3cmPJO7lxQYSOJ+/kJpB3chPJO7nJ5FjdFHKsbio5VjeNHKubTrtiN4N2xW4WdUluNnVJbg51SW4udUluHnVJLoS6JLeAuiS3kLokt4i6JLeYuiS3hLokt4y8k1tO3smtIO/kVpJ3cquoMXerqTF3a6kxd+uoMXfrqTF3G6gxdxupS3Kb6N9OcVtoF+S20i7IbaNdkNtOuyC3g3ZBbhc15m43NeZuD90bd3vp3rjbR/fGXSjdG3cH6N64O0j3xt0h9E6HaePtjtDG2x2lXZA7Trsgd4J2Qe4k7YLcKWo13GlqNdxZajXcOdp4u/O08XYXaOPtLqJ3uoTe6Qq1Gu4qtRruGiVE7jolRO4G5eDuJuXg7jbl4O4O5eDuLuXgLoxycHePcnB3H1XFQ1QVj1BVPEZV8QRVxdMwQp9Td+teUHfrXqJ3eoXe6XUooW+pqXDv6N6Xe0+pj/tAqY/7iKnPZ0x9vqAf+op+6BumPt8x9fmJqc8v9EO/0Q/9oWzbD0fZth+elIIfkZSCHymQ0Mh0A8mPQjeQ/KikFPxopBT8GAGExqSU1Y9FKavvUcrqC0pZfUUpq68pZfUNpay+pZTVd5Sy+j6lrH4cUgp+XFIK/n+kFPx4pBT8+KQU/ASkFPxEpBT8xJSy+gGUsvpJ6N+58pOeIzQZKQU/BSkFPyUpBT819bF+GmIuP20YoenJD/kZyA/5GckP+ZmIufzMoYRmoW2dn422dX528kN+Dmrw/Jzkh/xcpBT83KQU/LykFPx8pBT8/KQU/AK0IPYLkh/yA0kp+IVJKfhFSCn4RSll9YuRUvCLU/7gl6SU1S9FKatfmlJWvwzlD35Zyh/8cnjeKlCr4VfE81YJz1tlPG9V8LxVxfNWHc9bDTxvNUmZ+7VImfu1SZn7dUmZ+/VImfv1acvqN6Atq9+Qtqx+EJ63Lvge6orvoe7kWP0e5Fj9nuRY/V7kWP3e5Fj9vuRY/X7kWP3+5Fj9AeRY/WB4D/0PYIva3w=='],
                              'type': 'ambientSensor'},
               'resource': 'cameras/XXXXXXXXXXX/ambientSensors/history',
               'to': '3952NM-336-7759821_web',
               'transId': 'web!XXXXXXXX-632e-4479-b0b8-158c5c277bf3'}

The bit to look for is 'cameras/..../ambientSensors/history' and the data is in the payload piece. It's compressed and binary and horrible to extract. When you get the errors I think Arlo is sending a new packet format, if we can capture both types of packet I can work out a way to decode them differently at run time.

justinmaiuto commented 1 year ago

Not seeing anything like this in the looks after hours of being up and running. This is my log config:

logger:
  default: info
  logs:
    custom_components.aarlo: debug
    custom_components.aarlo.binary_sensor: debug
    custom_components.aarlo.camera: debug
    custom_components.aarlo.sensor: debug
    pyaarlo: debug

aarlo:
  username: xxx
  password: xxx
  refresh_devices_every: 3
  stream_timeout: 180
  request_timeout: 120
  reconnect_every: 240
  user_agent: linux
  tfa_source: imap
  tfa_type: email
  tfa_host: imap.gmail.com
  tfa_username: xxx
  tfa_password: xxx
  backend: sse
  stream_snapshot: True
  stream_snapshot_stop: 5
  snapshot_checks: 5
  snapshot_timeout: 20
  verbose_debug: True
  packet_dump: True
twrecked commented 1 year ago

It should be coming in, you've got all the correct debug enabled. I'll double check to see if I've missed something.

justinmaiuto commented 1 year ago

This it the closest I can spot, but certainly nothing like the full response example you posted:

2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] request-end=200
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] set:ArloBase/4K4262SR10DE1/connectionState=available
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] pinging Nursery camera
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] notify+response running
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] post+response running
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] request-url=https://myapi.arlo.com/hmsweb/users/devices/notify/57K28BS27EE01
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] request-params=
{'action': 'set',
 'from': 'AC3VNA5-114-53902680_web',
 'properties': {'devices': ['57K28BS27EE01']},
 'publishResponse': False,
 'resource': 'subscriptions/AC3VNA5-114-53902680_web',
 'to': '57K28BS27EE01',
 'transId': 'web!cb6b63bc-2373-456d-b751-9eb0101b974d'}
2022-11-01 16:47:57.819 DEBUG (ArloBackgroundWorker) [pyaarlo] request-headers=
{'xcloudId': '2BTSEYP-1880-114-114780624'}
2022-11-01 16:47:58.189 DEBUG (ArloBackgroundWorker) [pyaarlo] request-body=
{'success': True}
2022-11-01 16:47:58.190 DEBUG (ArloBackgroundWorker) [pyaarlo] request-end=200
2022-11-01 16:47:58.190 DEBUG (ArloBackgroundWorker) [pyaarlo] set:ArloBase/57K28BS27EE01/connectionState=available
2022-11-01 16:47:59.471 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '4K4262SR10DE1',
  'properties': {'devices': ['4K4262SR10DE1']},
  'resource': 'subscriptions/AC3VNA5-114-53902680_web',
  'to': 'AC3VNA5-114-53902680_web',
  'transId': 'web!cc7cd17a-5fe9-4ab5-b446-f8a834ace402'}
2022-11-01 16:47:59.471 DEBUG (ArloEventStream) [pyaarlo] async ping response subscriptions/AC3VNA5-114-53902680_web
2022-11-01 16:47:59.471 DEBUG (ArloEventStream) [pyaarlo] subscriptions/AC3VNA5-114-53902680_web:4K4262SR10DE1 bounded device!
2022-11-01 16:47:59.602 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': {'devices': ['57K28BS27EE01']},
  'resource': 'subscriptions/AC3VNA5-114-53902680_web',
  'to': 'AC3VNA5-114-53902680_web',
  'transId': 'web!cb6b63bc-2373-456d-b751-9eb0101b974d'}
2022-11-01 16:47:59.603 DEBUG (ArloEventStream) [pyaarlo] async ping response subscriptions/AC3VNA5-114-53902680_web
2022-11-01 16:47:59.603 DEBUG (ArloEventStream) [pyaarlo] subscriptions/AC3VNA5-114-53902680_web:57K28BS27EE01 bounded device!
justinmaiuto commented 1 year ago

Seems the problem may be more related to actual requests/responses not being successful?

twrecked commented 1 year ago

Could be. We request a refresh every 10 minutes, and we only do it from Arlo Baby Cams - we do it here in the code.

In the logs we send it shortly after we print out slow refresh. You should see a packet go out containing this:

                    "action": "get",
                    "resource": "cameras/XXXXXXX/ambientSensors/history"

Can you see that happening? If not, can you check the model number is showing as ABC1000?

justinmaiuto commented 1 year ago

modelId is showing as "ABC1000"

Can see requests going out (though it does not seem to near a "slow refresh"), but no response that I can spot:

2022-11-02 09:28:38.851 DEBUG (ArloBackgroundWorker) [pyaarlo] request-url=https://myapi.arlo.com/hmsweb/users/devices/notify/57K28BS27EE01
2022-11-02 09:28:38.851 DEBUG (ArloBackgroundWorker) [pyaarlo] request-params=
{'action': 'get',
 'from': 'AC3VNA5-114-53902680_web',
 'publishResponse': False,
 'resource': 'cameras/57K28BS27EE01/ambientSensors/history',
 'to': '57K28BS27EE01',
 'transId': 'web!75001955-c9e2-404e-8421-b0169f0db6b5'}
2022-11-02 09:28:38.851 DEBUG (ArloBackgroundWorker) [pyaarlo] request-headers=
{'xcloudId': '2BTSEYP-1880-114-114780624'}
2022-11-02 09:28:39.208 DEBUG (ArloBackgroundWorker) [pyaarlo] request-body=
{'success': True}
2022-11-02 09:28:39.209 DEBUG (ArloBackgroundWorker) [pyaarlo] request-end=200
justinmaiuto commented 1 year ago

Ok, looked into it a bit further, in a 17 hour period there was only 1 response that came back for the baby camera, despite requests going out every 10 mins:


2022-11-02 17:10:53.803 DEBUG (ArloBackgroundWorker) [pyaarlo] set:ArloBase/57K28BS27EE01/connectionState=available
2022-11-02 17:10:54.133 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': { 'format': { 'accumInterval': 300,
                              'compression': 'zlib',
                              'count': 2012,
                              'encoding': True,
                              'layout': { 'airQuality': { 'max': 2,
                                                          'mean': 2,
                                                          'min': 2},
                                          'humidity': { 'max': 2,
                                                        'mean': 2,
                                                        'min': 2},
                                          'temperature': { 'max': 2,
                                                           'mean': 2,
                                                           'min': 2},
                                          'timestamp': 4},
                              'size': 32972},
                  'payload': [ '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',
                               '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',
                               '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',
                               'ya2cgCyvmp+AQu8IeDR6wFmsjj/Gev4RLJGSvKOSoQTXJUs10PYxxyUL6B1dCfW9ZW7YgO1mO5kN5qU5S94xb0Dytrlp/ZAOgz4xp8g7diqiwhtoY85z9TS7ZafCO24t9F5BjfvaAViNX3Symifk/eCG1Pi8mz8DjWE6IZPWeCDW6INY1jHk/bCe5qM4A/euuQ0an7wT+4NeBH3TDreDhSYm76Q58ByuRQC8izmPr70g70c7pLw3bBsbtHFmL+p2h7wfPwW7Z+7YZratbYFe8cScJO8n+VCHu6hbC9SuvdAj5J3SGnXgzJ7fdkaNl4LuJe/UYajxFfhDJ/uG7Yw+eBuxsvdTzkBdhld3sT1sV4wZF7m3TDuqNe4Gj+iBnnXR/EHeGQm1xr1gn97o2xfNavJ+Vhqtdk7qNsD2A91kVpB3ZgjtxhmMMCwxINJjP58o8+ZJ2weWHCAjAfr8rF/BrsCjPOCdMHr+ZiaT94uLWovm1mvbyPiLUXl2LNgd1Lge6txIRvB3yTunulqnlq1va2O+mMQR3lc91Tp1bUvbWGRBv/5M9bawHaCXZRH3fbNBc6TtUIr2oCNMZ/LOvavWiUNb+DA7jcB60zs/m1onYDvaIOgkEyDvgkZqnY6wZSfQAcZP3m/f1pGgMzytC+gojs+++1qzam/A6t1MddAgeRfu1MxpD9sbPlkCMQzm+UXPMPrySMBW72NywBL1yLs4v87+b2KU6ov4wWuqkndJG4yzxzH29YKv9pVYA1HFD8Oh4Tz6W3vwMOKS7hyBLF2CVuO6NQRvLpFNevL+eBSMfbIGeB2JjXKQd3kC7VkVwauAljBJyLuiNCRvwb7lbW1bGTSHSUjen4KqobZtbOuCljQx5P35Q1jyCr7WCB7cWGTjkfeXlSgDW7KJbWWbSQ7EknflBbHkWbRQW9tKZEF/Ta2WbIN2awea06Bnra4us94p1MGL3qL0tx6wAluyg/VZj1B8bc0MsMvQWwu8qWZcvL//hZa/hvJyLbhuhukfd8B4RCxuK9jSQKmZrssGdsfcsgVsCVskQv9sDHbP3LW5bUGbT7I+DnnXDwR7aO7bbDaPzRGR/Wse2GPzyGa02W1m0Lxcsg17zAOleWwWydnAkhufQ+8D6M1jC9n8oG0NxtTNhbQMBW1JW1SyM6jxlvawOZe3mC1ti4Om4TJsHSVtcRW1KGdLgeZhS25bCso1Zlo6QrefAOOelQN1yx/RsDMJetZ9lCGjzSkli+Va7CqPut0392w6m9mml/JCdjeBPgCNtelt2ojsnsmQfGge2JQ2rU0tsgnIu3cNJB+Zhza5TWVTCMVov+8KGNshCXiM5I2wDjiQDuyJeew8tEltIpRruGlL3oO1IfvUPLYJbDKbEP9+OPehQ31Qhsf4WgzKllooYtrDs+CnPD6ktVltRtR3EvfuI5t1pM1ic9lssOMsXpMdfSAzwxXUt4DNAw2zePV1PJeOBNltEZs3Inuiuc6xGdD2WUEnmV7kPfku2A20RVpYLR00TOJ14alvwbgPJQFPLhTjzun9aLXbaM1EqFtitPAk05u8Z16C3TW3bUJYLTH0Si3OFUH7oC2cl7BOYqkFxp3zHaDhHmQN6sx26GfakffCKPXfGJvJpoKsrA4uLkUf5JZPb/PZ7GiffqYBeS+d0FkvD7ynIOhw05S8V5JI7HnBFoY/FBXZ2uS9Wl52gs7DOiVElkw18l7rpHZIB0tmEk9F/HD9Yxk1rqO06VAGY2obzPM3fhP/vW0T2xQ2qVCss25ehuRdtFBCtGZi0NZMb6eFBm6hZLBkrMgihrlTS/03A3w1i9Bk5L3bR2uRAfXIDlqax6h7n2st0oNmEArvu79Zx+qM6J3cC3NzD3jwQHZLzoLmQGuyLPrmo5wyS1+GJTOK/+ZmDY+b6ogYT6zOFD3gySC0MccaDmoXT/o86NP5GmskQs9ILqMRvvZsr4yIl2xqtFA6oZD9+4WOiDw+ZImMGs+L6B5VNtg3Opa86KAjYk6b1+aWLDb0vhylM28e+G9e0JTQ60MUcBLfOw3f',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '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',
                               '9OgmYB3BcbfAJbqFoJXsOIW6AevClyYB1POVFihdBj8+gTNeglsIdLBmxyl6AihPBF0uHrQJit7GxK9Dhi6MthCaSMbcYoJ7mf64wvKpqdBlWnCmdo6gx3baTiFD16bIezvTxH5m40xdx8L3bqZJoyL+kAUOwvcOpsmTfe9saEd0JrR3MT0eayvW6+FC0I5memJNBE0GegZQyDvlIH4fRpOUFjI8OQio6CzRLYbORgavBfiiTx0T0WSSWxREaecTeipGadvcPFDPx++zJf4+HWd846CfOKBLg4+ZnllnaLyb7+KVFl+cZzsN/QJaS1D0A6bnfhnh6znIqyKaNtZkiFMOk/xoMS+bNRMgwwIdDdF++hKgnUDjIO98+O+84E2m57eCQydsHA/aBK3Ii9Xyt96wUDt8MhGaTFZarLcZI3zndmBZiH3Smwbr4u9ktw+ZiHPZSou4/sKbFtcz9Bsr2olhenGV3QeI5Vco+heml3ZbBF+iK0D0+zjTy/1ttSwGnqzoY0yvXGfxwVsoytvin1P0m3UYtOkuNWyhV+daB410eFSmohOYXiu0+JChXz2x8f1MM5stPmRhzXsUq2XWBYru0Z1CvqLwqH/drj2b9iOe5bhVQF8T2tnP233LMqz55UoLj3ojwbzar255eXMt05vrLSKmYLeRoujVTG+dMO0sQPRcqfciI5nevsQ0uRrxNycI9A6F3nnQcuZ+J9Zfb7no36/a92ItYl+J0l7K9K6vCLkbsW+d3g/JzQq9VwdKubFZhd1GQeB7HVJsH5vFcsT1lWH0v1fZLJYicqUqOpRpLtsuMwUz9ugQpvfn2PdtJbSTGUjFtwuZPshUrTfBEvKVFtrzmT5ssEpcBZCtSNFBTB8PsG4bfocn6ECmT663HH8ZYnV54OvW0adT7P6tAjvKSqU9l+mzuUDlq7cWu6uKQCq2DGD6vMD2njngnK8czmb64mDEfyWuC3omU9wg3bXthT8UwB+E7+lM8bfaWaRAd8W+EgwlPKff43pgpar1YUFfpvmfW1aiFLKVKe2pTAvK/asXzKxSJRsR9GNa2ObvmnUXVKG3UacxJQ4DpdgtG3iBcujFlHSvr0+rcTJTR+vJtPhFs/xqzDlf0d5MyYn+Xxy6j/KSgcOSarsBKdVvoXFY2sO/UYC0G7Aj9dX3KPXX/oQNuXy3jSiZ27JHfP8sOw/5myBaPsu/iQdlDc56Im83phVplk89eWvUnSltp3W62Aq01u58KL2f1gLdDAk8OlokWzXK8n112EHXBf6/KJQxyef7QBmuOAT9Zr4XrMd4gtZr3Rm566CsXIy2DfJWAq8K/L9DaPU+X+MZvldpFgKac67tror0JOFvgij3D/5dErD16n0jglOY8p62bFIl5rzBbjUo/xPLJoW101/mtqbUskmiia/DoxUcs+4gW3QvZ2jRMH/ng7HC2oEMa++1bGid26E3bVeJ1otfsLpU2+0WcYjIULLIqkrtjFRTAvrlZp+D/r+6SdBOWTefIwXlHqtABbT8Mn+7A8qGSAUqqpjg73FA2aA3eFHC96uZ/sYGaKPVpYJ21i3z/5IBZRiFNSu3+Xsc12j1d+RfMrShr8+nAt17Et14jaFNQJvC6KbHfG4bqK/VEyU62/zO91Clrco2dK9V8JHbKKpu8tX0I3eL8q8e2nKOz45rNaX9YT+rucnQ8I1jlESYrVN9TjdSN2mcRMTaD30mPVKrR94iUl3xD9BhTNuOGHrQOstIJTnaMdhn3cHV//9honDYeaehzUCbA/9/e9r11wh6xNDhTN8k/ADFaPUbDD1stRSjZLTdJww9Yn1sdBYNF+u/mAVttc5I4Ns4LkIbRvEVaXrFv4/VHl6CPiyj7U3x+WqgLUC7A4W8+2ojaOtJ9ECfCCo3r92DKcEVTN9eZajvGNY9mB2MYTrIEVRoLwpmyH7y0JzvobMFbc4K5EVvCX5/zLViBc0IHmA63PA9dLp8/Y8O8PdZQNsVlf9KUMsNEVT+tyJ1IbB/aP3zd2h9nX869v53aOVl9DSmtsIIKqNJ9YZ3',
                               'mdoP+by9odO1ggR1DPL3ZIbKm+I8ps4xQIsVFb5xWqOcuqYZeqxb4I7DhwYG+5hOfGGo7xMk9dd7s/wbvEi6TsNu0qetXauyR7t2QyU73qm1FwZwdPfhhh53na4jzKHHfb5vNWgFrcJoXRzd8yXft9ry677fbfQpSd9BfcWA6F7Vvm+1jSbofo4+taehvlKUzKLxf7lBNko='],
                  'type': True},
  'resource': 'cameras/57K28BS27EE01/ambientSensors/history',
  'to': 'AC3VNA5-114-53902680_web',
  'transId': 'web!7c1c1353-76a2-4064-9e0c-ec39e40b6dd8'}
twrecked commented 1 year ago

On the positive side, the packet looks good.

But I don't have an Arlo Baby so I will need you help working out if this is expected behaviour. Are you familiar with browser developer tools?

justinmaiuto commented 1 year ago

I can help for sure if i can be pointed to the right tool?

justinmaiuto commented 1 year ago

BTW, this problem is new, I've been using the baby cam with this for around 2 years with no issues like this so far...

twrecked commented 1 year ago

Did you update recently? I could well have broken something in the code but I'm sure haven't touched this area in a long time.

The other possibility is Arlo broke something, they've done it in the past.

I'll get some instructions together on how to check what packets their website sends and receives.

twrecked commented 1 year ago

I hope this makes some sense: https://github.com/twrecked/hass-aarlo#reverse-engineering

You need to access the developer tools on the web browser while on the real Arlo website. And then you need to see what that website sends out to get the latest Baby Cam environment readings.

justinmaiuto commented 1 year ago

Ok, this is what I captured from my arlo:

{"from":"AD5W-114-7503730_web","to":"57K28BS27EE01","action":"get","resource":"cameras/57K28BS27EE01/ambientSensors/history","transId":"web!f7d0fa6f.54e12!1667475385545","publishResponse":false}

twrecked commented 1 year ago

That looks almost like what I send. Now we need to see what the reply is. The problem here is the response comes back via a different route. There are two possible ways:

You're probably using SSE, most people are, which is annoying because it might not display correctly in the browser.

Look for the either of the following URLs in the Name tab.: https://myapi.arlo.com/hmsweb/client/subscribe, shown as subscribe or https://mqtt-cluster.arloxcld.com/mqtt, shown as mqtt

And click on it. For the SSE you then click on the EventStream tab and you might see responses from Arlo. It's been a while since I've used MQTT and I can't remember what tab it displays, I'm guessing it's pretty obvious, but it will show the replies from Arlo.

And then it's a case of tying the response to the request.

justinmaiuto commented 1 year ago

Sorry will need a bit more help with this one, I can't spot requests of either subscribe or mqtt in the chrome dev tool when logged into my arlo (but might be looking in the wrong spot)

twrecked commented 1 year ago

It only appears once on the Name tab and will appear shortly after you login.

justinmaiuto commented 1 year ago

Ok, I can see the subscribe event, but the eventstream tab for this is empty?

image

image

twrecked commented 1 year ago

I thought it might be empty, it's a bug/mismatch between and browser and Arlo and it's really annoying.

One thing I can do at my end is to update the URLs I use to include the event_id and time that Arlo uses and we can see if that makes a difference.

But without those SSE entries I don't even know if there is an issue to fix.

(For a while they ran a test MQTT server and it was really nice, you could see all the responses coming from Arlo.)

justinmaiuto commented 1 year ago

ok, I'll wait for a new release?

twrecked commented 1 year ago

Yes.

I just tried Firefox and there were no traces coming out there.

edit: I'll try to get one out tomorrow.

justinmaiuto commented 1 year ago

Cheers!

justinmaiuto commented 1 year ago

Haven't spotted an update as yet in HACS, but I did managed to get a few logs of the packet in when the humidty is in a alert state and is not parsed correctly in HA:

2022-11-07 04:43:57.312 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': { 'humidity': { 'alertState': 'high',
                                'scalingFactor': 10,
                                'value': 601}},
  'resource': 'cameras/57K28BS27EE01/ambientSensors/alerts',
  'transId': '57K28BS27EE01!83f01540!591544285'}

Looks like there is another packet in to clear the alert, which also does not get parsed properly in the UI, it is shown as: "{'value': 580, 'alertState': 'clear', 'scalingFactor': 10}%"

2022-11-07 06:58:17.341 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': { 'humidity': { 'alertState': 'clear',
                                'scalingFactor': 10,
                                'value': 580}},
  'resource': 'cameras/57K28BS27EE01/ambientSensors/alerts',
  'transId': '57K28BS27EE01!bca38bb7!599604307'}
twrecked commented 1 year ago

I just pushed the release, let me know how it goes. I was busy else where this weekend.

And thanks for those packets, I can work them into the code now.

justinmaiuto commented 1 year ago

Just checked the logs after upgrading to latest version, I can only see these three styles of response:

2022-11-08 19:07:53.483 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': {'devices': ['57K28BS27EE01']},
  'resource': 'subscriptions/AC3VNA5-114-53902680_web',
  'to': 'AC3VNA5-114-53902680_web',
  'transId': 'web!189f1416-c98b-42ce-9083-98bc99156ebd'}

and

2022-11-08 19:05:41.094 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': { 'humidity': { 'alertState': 'high',
                                'scalingFactor': 10,
                                'value': 601}},
  'resource': 'cameras/57K28BS27EE01/ambientSensors/alerts',
  'transId': '57K28BS27EE01!ec782b3e!729648052'}

and

2022-11-08 07:52:32.076 DEBUG (ArloEventStream) [pyaarlo] packet-in=
{ 'action': 'is',
  'from': '57K28BS27EE01',
  'properties': { 'humidity': { 'alertState': 'clear',
                                'scalingFactor': 10,
                                'value': 566}},
  'resource': 'cameras/57K28BS27EE01/ambientSensors/alerts',
  'transId': '57K28BS27EE01!22e9adc6!689258965'}
justinmaiuto commented 1 year ago

Interestingly, the timing of updates seems to have increased today, albeit still not very frequently. Seems to suggest it is more server side perhaps? On the Arlo mobile app itself, the data updates is much more frequent/smooth

image

image

justinmaiuto commented 1 year ago

Hi just checking back in to see if there has been any progress on this issue?

Also, complete side topic, is there a way to have the Arlo camera feeds auto-start when as dashboard is loaded? I'm using the "aarlo-glance" card and the following config, but I have to click on the card to start the feed.

entity: camera.aarlo_front_door_camera
image_view: start-stream
image_click: play
name: Front outdoor camera
play_direct: true
show:
  - motion
  - sound
  - snapshot
  - battery_level
  - signal_strength
  - captured_today
  - image_date
top_date: false
top_status: false
top_title: false
type: custom:aarlo-glance
justinmaiuto commented 1 year ago

Hi, just bumping this one up and it seems to have gone stale?

justinmaiuto commented 1 year ago

Just an update, I added api_mode: v2 and I now get regular update of temperature and humidity values. The parsing of the alert state value for both humidity and temp is still not right though

github-actions[bot] commented 4 weeks ago

This issue is stale because it has been open for 365 days with no activity. This issue will be automatically closed within 28 days if there is no further activity.

github-actions[bot] commented 1 day ago

This issue was closed because it has been inactive for 28 days since being marked as stale.