home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.69k stars 30.44k forks source link

Unknown error occurred for Axis camera setup after 2024.3 for M1031-W cameras #114693

Closed arrikhan closed 6 months ago

arrikhan commented 6 months ago

The problem

Since 2024.3, Axis cameras ceased to function. Currently using 2 x M1031-W cameras.

Delete/Setup actions result in unknown error.

Occasionally when one adds, PIR and some other features become available but no camera is added. Second device would not add as it said it already existed. This was only for 2024.3.1 and 2024.3.2.

2024.3.3 just gives unknown error.

What version of Home Assistant Core has the issue?

=2024.3

What was the last working version of Home Assistant Core?

2024.2

What type of installation are you running?

Home Assistant OS

Integration causing the issue

axis

Link to integration documentation on our website

https://www.home-assistant.io/integrations/axis/

Diagnostics information

home-assistant_2024-04-03T01-04-36.854Z.log

Diagnostic data for devices when added

  "integration_manifest": {
    "domain": "axis",
    "name": "Axis",
    "after_dependencies": [
      "mqtt"
    ],
    "codeowners": [
      "@Kane610"
    ],
    "config_flow": true,
    "dhcp": [
      {
        "registered_devices": true
      },
      {
        "hostname": "axis-00408c*",
        "macaddress": "00408C*"
      },
      {
        "hostname": "axis-accc8e*",
        "macaddress": "ACCC8E*"
      },
      {
        "hostname": "axis-b8a44f*",
        "macaddress": "B8A44F*"
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/axis",
    "integration_type": "device",
    "iot_class": "local_push",
    "loggers": [
      "axis"
    ],
    "quality_scale": "platinum",
    "requirements": [
      "axis==58"
    ],
    "ssdp": [
      {
        "manufacturer": "AXIS"
      }
    ],
    "zeroconf": [
      {
        "type": "_axis-video._tcp.local.",
        "properties": {
          "macaddress": "00408c*"
        }
      },
      {
        "type": "_axis-video._tcp.local.",
        "properties": {
          "macaddress": "accc8e*"
        }
      },
      {
        "type": "_axis-video._tcp.local.",
        "properties": {
          "macaddress": "b8a44f*"
        }
      }
    ],
    "is_built_in": true
  },
  "data": {
    "config": {
      "entry_id": "c551decda9661f671a00d01f5953e0a8",
      "version": 3,
      "minor_version": 1,
      "domain": "axis",
      "title": " - ",
      "data": {
        "host": "10.1.0.232",
        "port": 80,
        "username": "**REDACTED**",
        "password": "**REDACTED**",
        "model": "",
        "name": " 0"
      },
      "options": {},
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "ssdp",
      "unique_id": "",
      "disabled_by": null
    }
  }
}

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 6 months ago

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

Code owner commands Code owners of `axis` 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 axis` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


axis documentation axis source (message by IssueLinks)

Kane610 commented 6 months ago

Please share the error and preferably also a debug log see integration documentation for instructions.

arrikhan commented 6 months ago

Error is "Unknown Error" and debug logs are attached when attempting to add discovered Axis camera.

Please advise any additional info required.

debug settings updated as per documentation.

arrikhan commented 6 months ago

When filtering to "AXIS", the below is present

2024-04-03 18:21:50.917 DEBUG (MainThread) [axis.vapix.vapix] post, http://10.1.0.231:80/axis-cgi/apidiscovery.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"getApiList"}'', 'None', 'None'
2024-04-03 18:21:50.937 DEBUG (MainThread) [axis.vapix.vapix] <Response [404 Not Found]>, Client error '404 Not Found' for url 'http://10.1.0.231/axis-cgi/apidiscovery.cgi'
2024-04-03 18:21:50.938 DEBUG (MainThread) [axis.vapix.vapix] post, http://10.1.0.231:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.Properties'}', 'None'
2024-04-03 18:21:50.939 DEBUG (MainThread) [axis.vapix.vapix] post, http://10.1.0.231:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.Brand'}', 'None'
2024-04-03 18:21:50.940 DEBUG (MainThread) [axis.vapix.vapix] post, http://10.1.0.231:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.IOPort'}', 'None'
2024-04-03 18:21:50.942 DEBUG (MainThread) [axis.vapix.vapix] post, http://10.1.0.231:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.StreamProfile'}', 'None'
2024-04-03 18:21:51.825 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.231 /axis-cgi/param.cgi): b'root.IOPort.I0.Configurable=no\nroot.IOPort.I0.Direction=input\nroot.IOPort.I0.Input.Name=PIR sensor\nroot.IOPort.I0.Input.Trig=closed\n'
2024-04-03 18:21:52.331 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.231 /axis-cgi/param.cgi): b'root.StreamProfile.MaxGroups=20\nroot.StreamProfile.S0.Name=Quality\nroot.StreamProfile.S0.Description=Best image quality and full frame rate.\nroot.StreamProfile.S0.Parameters=videocodec=h264&resolution=640x480&compression=20&fps=0&videokeyframeinterval=8&videobitrate=0\nroot.StreamProfile.S0.Default.Name=Quality\nroot.StreamProfile.S0.Default.Description=Best image quality and full frame rate.\nroot.StreamProfile.S0.Default.Parameters=videocodec=h264&resolution=640x480&compression=20&fps=0&videokeyframeinterval=8&videobitrate=0\nroot.StreamProfile.S1.Name=Balanced\nroot.StreamProfile.S1.Description=Medium image quality and frame rate.\nroot.StreamProfile.S1.Parameters=videocodec=h264&resolution=640x480&compression=30&fps=15&videokeyframeinterval=15&videobitrate=0\nroot.StreamProfile.S1.Default.Name=Balanced\nroot.StreamProfile.S1.Default.Description=Medium image quality and frame rate.\nroot.StreamProfile.S1.Default.Parameters=videocodec=h264&resolution=640x480&compression=30&fps=15&videokeyframeinterval=15&videobitrate=0\nroot.StreamProfile.S2.Name=Bandwidth\nroot.StreamProfile.S2.Description=Low bandwidth with medium image quality.\nroot.StreamProfile.S2.Parameters=videocodec=h264&resolution=640x480&compression=50&fps=15&videokeyframeinterval=32&videobitrate=250&videomaxbitrate=1000&videobitratepriority=framerate\nroot.StreamProfile.S2.Default.Name=Bandwidth\nroot.StreamProfile.S2.Default.Description=Low bandwidth with medium image quality.\nroot.StreamProfile.S2.Default.Parameters=videocodec=h264&resolution=640x480&compression=50&fps=15&videokeyframeinterval=32&videobitrate=250&videomaxbitrate=1000&videobitratepriority=framerate\nroot.StreamProfile.S3.Name=Mobile\nroot.StreamProfile.S3.Description=Mobile device settings.\nroot.StreamProfile.S3.Parameters=videocodec=h264&resolution=176x144&compression=50&fps=15&videokeyframeinterval=32&videobitrate=120&videomaxbitrate=128&videobitratepriority=quality&audio=0\nroot.StreamProfile.S3.Default.Name=Mobile\nroot.StreamProfile.S3.Default.Description=Mobile device settings.\nroot.StreamProfile.S3.Default.Parameters=videocodec=h264&resolution=176x144&compression=50&fps=15&videokeyframeinterval=32&videobitrate=120&videomaxbitrate=128&videobitratepriority=quality&audio=0\n'
2024-04-03 18:21:52.394 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.231 /axis-cgi/param.cgi): b'root.Brand.Brand=AXIS\nroot.Brand.ProdFullName=AXIS M1031-W Network Camera\nroot.Brand.ProdShortName=AXIS M1031-W\nroot.Brand.ProdNbr=M1031-W\nroot.Brand.ProdType=Network Camera\nroot.Brand.WebURL=http://www.axis.com/\n'
2024-04-03 18:21:52.606 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.231 /axis-cgi/param.cgi): b'root.Properties.API.HTTP.Version=3\nroot.Properties.API.HTTP.AdminPath=/operator/basic.shtml\nroot.Properties.API.Metadata.Metadata=yes\nroot.Properties.API.Metadata.Version=1.0\nroot.Properties.API.RTSP.Version=2.01\nroot.Properties.API.RTSP.RTSPAuth=yes\nroot.Properties.API.WebService.WebService=yes\nroot.Properties.API.WebService.ONVIF.ONVIF=yes\nroot.Properties.API.WebService.ONVIF.Version=1.01\nroot.Properties.Audio.Audio=yes\nroot.Properties.Audio.Format=g711,g726,aac\nroot.Properties.Audio.DuplexMode=full,half,post,get\nroot.Properties.Audio.InputType=mic\nroot.Properties.Audio.Decoder.Format=g711,g726,axis-mulaw-128\nroot.Properties.Firmware.BuildNumber=1\nroot.Properties.Firmware.BuildDate=Sep 09 2011 09:50\nroot.Properties.Firmware.Version=5.20.3\nroot.Properties.HTTPS.HTTPS=yes\nroot.Properties.Image.Rotation=0,180\nroot.Properties.Image.Resolution=640x480,480x360,320x240,240x180,160x120,176x144\nroot.Properties.Image.Format=jpeg,mjpeg,mpeg4,h264,bitmap\nroot.Properties.Image.NbrOfViews=1\nroot.Properties.LightControl.LightControl=yes\nroot.Properties.Motion.Motion=yes\nroot.Properties.Motion.MaxNbrOfWindows=10\nroot.Properties.RemoteService.RemoteService=yes\nroot.Properties.RTC.RTC=no\nroot.Properties.System.Language=English\nroot.Properties.System.HardwareID=170\nroot.Properties.System.SerialNumber=00408CB5FEFE\nroot.Properties.System.Architecture=armv5tejl\nroot.Properties.Tampering.Tampering=yes\nroot.Properties.TemperatureSensor.TemperatureSensor=yes\nroot.Properties.TemperatureSensor.TemperatureControl=no\nroot.Properties.TemperatureSensor.Fan=no\nroot.Properties.TemperatureSensor.Heater=no\n'
File "/usr/src/homeassistant/homeassistant/components/axis/config_flow.py", line 70, in async_step_user
device = await get_axis_device(self.hass, MappingProxyType(user_input))
File "/usr/src/homeassistant/homeassistant/components/axis/device.py", line 261, in get_axis_device
File "/usr/local/lib/python3.12/site-packages/axis/vapix/vapix.py", line 145, in initialize
File "/usr/local/lib/python3.12/site-packages/axis/vapix/vapix.py", line 189, in initialize_param_cgi
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/api_handler.py", line 126, in update
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_handler.py", line 39, in _update
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_cgi.py", line 52, in request_group
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/api_handler.py", line 42, in signal_subscribers
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_handler.py", line 44, in _update_params_callback
File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/param_cgi.py", line 92, in decode_to_dict
File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/properties.py", line 191, in decode
Kane610 commented 6 months ago

Your provided log is provided without the error so I can't determine anything from the current data

arrikhan commented 6 months ago
2024-04-03 22:37:04.952 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 91, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 227, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 25, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 79, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 68, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 72, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 197, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 111, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 359, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 405, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 502, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/axis/config_flow.py", line 70, in async_step_user
device = await get_axis_device(self.hass, MappingProxyType(user_input))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/axis/device.py", line 261, in get_axis_device
await device.vapix.initialize()
File "/usr/local/lib/python3.12/site-packages/axis/vapix/vapix.py", line 145, in initialize
await self.initialize_param_cgi(preload_data=False)
File "/usr/local/lib/python3.12/site-packages/axis/vapix/vapix.py", line 189, in initialize_param_cgi
await asyncio.gather(*tasks)
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/api_handler.py", line 126, in update
obj_ids = await self._update()
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_handler.py", line 39, in _update
return await self.vapix.params.request_group(self.parameter_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_cgi.py", line 52, in request_group
self.signal_subscribers(obj_id)
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/api_handler.py", line 42, in signal_subscribers
callback(obj_id)
File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/parameters/param_handler.py", line 44, in _update_params_callback
self._items.update(self.parameter_item.decode_to_dict([data]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/param_cgi.py", line 92, in decode_to_dict
return {"0": cls.decode(data[0])}
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/properties.py", line 191, in decode
embedded_development=data["EmbeddedDevelopment"]["Version"],
~~~~^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'EmbeddedDevelopment'
2024-04-03 22:37:04.981 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.232 /axis-cgi/param.cgi): b'root.Brand.Brand=AXIS\nroot.Brand.ProdFullName=AXIS M1031-W Network Camera\nroot.Brand.ProdShortName=AXIS M1031-W\nroot.Brand.ProdNbr=M1031-W\nroot.Brand.ProdType=Network Camera\nroot.Brand.WebURL=http://www.axis.com/\n'
2024-04-03 22:37:05.075 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.232 /axis-cgi/param.cgi): b'root.IOPort.I0.Configurable=no\nroot.IOPort.I0.Direction=input\nroot.IOPort.I0.Input.Name=PIR sensor\nroot.IOPort.I0.Input.Trig=closed\n'
2024-04-03 22:37:05.367 DEBUG (MainThread) [axis.vapix.vapix] Response (from 10.1.0.232 /axis-cgi/param.cgi): b'root.StreamProfile.MaxGroups=20\nroot.StreamProfile.S0.Name=Quality\nroot.StreamProfile.S0.Description=Best image quality and full frame rate.\nroot.StreamProfile.S0.Parameters=videocodec=h264&resolution=640x480&compression=20&fps=0&videokeyframeinterval=8&videobitrate=0\nroot.StreamProfile.S0.Default.Name=Quality\nroot.StreamProfile.S0.Default.Description=Best image quality and full frame rate.\nroot.StreamProfile.S0.Default.Parameters=videocodec=h264&resolution=640x480&compression=20&fps=0&videokeyframeinterval=8&videobitrate=0\nroot.StreamProfile.S1.Name=Balanced\nroot.StreamProfile.S1.Description=Medium image quality and frame rate.\nroot.StreamProfile.S1.Parameters=videocodec=h264&resolution=640x480&compression=30&fps=15&videokeyframeinterval=15&videobitrate=0\nroot.StreamProfile.S1.Default.Name=Balanced\nroot.StreamProfile.S1.Default.Description=Medium image quality and frame rate.\nroot.StreamProfile.S1.Default.Parameters=videocodec=h264&resolution=640x480&compression=30&fps=15&videokeyframeinterval=15&videobitrate=0\nroot.StreamProfile.S2.Name=Bandwidth\nroot.StreamProfile.S2.Description=Low bandwidth with medium image quality.\nroot.StreamProfile.S2.Parameters=videocodec=h264&resolution=640x480&compression=50&fps=15&videokeyframeinterval=32&videobitrate=250&videomaxbitrate=1000&videobitratepriority=framerate\nroot.StreamProfile.S2.Default.Name=Bandwidth\nroot.StreamProfile.S2.Default.Description=Low bandwidth with medium image quality.\nroot.StreamProfile.S2.Default.Parameters=videocodec=h264&resolution=640x480&compression=50&fps=15&videokeyframeinterval=32&videobitrate=250&videomaxbitrate=1000&videobitratepriority=framerate\nroot.StreamProfile.S3.Name=Mobile\nroot.StreamProfile.S3.Description=Mobile device settings.\nroot.StreamProfile.S3.Parameters=videocodec=h264&resolution=176x144&compression=50&fps=15&videokeyframeinterval=32&videobitrate=120&videomaxbitrate=128&videobitratepriority=quality&audio=0\nroot.StreamProfile.S3.Default.Name=Mobile\nroot.StreamProfile.S3.Default.Description=Mobile device settings.\nroot.StreamProfile.S3.Default.Parameters=videocodec=h264&resolution=176x144&compression=50&fps=15&videokeyframeinterval=32&videobitrate=120&videomaxbitrate=128&videobitratepriority=quality&audio=0\n'
Kane610 commented 6 months ago

Thanks!

embedded_development=data["EmbeddedDevelopment"]["Version"],

This issue has been resolved and will be out with 2024.4.0 (https://github.com/home-assistant/core/pull/114544, https://github.com/Kane610/axis/pull/428)

arrikhan commented 6 months ago

Thanks for your persistence ...!

Kane610 commented 6 months ago

Thanks for using it