core: AXIS integration broken from last HA update

The problem

AXIS integration seems to be broken after updating to 2024.3.0. I have 4 cameras and they all stopped working

What version of Home Assistant Core has the issue?

core-2024.3.0

What was the last working version of Home Assistant Core?

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

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Logger: homeassistant.config_entries
Source: config_entries.py:504
First occurred: 6:43:21 PM (5 occurrences)
Last logged: 6:44:26 PM

Error setting up entry M1054 - 00408CB208XX for axis
Error setting up entry M1054 - 00408CB20XXX for axis
Error setting up entry M1034-W - ACCC8E201XXX for axis
Error setting up entry M1054 - 00408CB2XXXX for axis
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 504, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/axis/__init__.py", line 21, in async_setup_entry
    api = await get_axis_device(hass, config_entry.data)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  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 201, in initialize_param_cgi
    await self.params.ptz_handler.update()
  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/ptz.py", line 396, in decode
    limits=PtzLimit.from_dict(data["Limit"]),
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/ptz.py", line 211, in from_dict
    return {k[1:]: cls.decode(v) for k, v in data.items()}
                   ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/parameters/ptz.py", line 192, in decode
    max_field_angle=data["MaxFieldAngle"],
                    ~~~~^^^^^^^^^^^^^^^^^
KeyError: 'MaxFieldAngle'

Additional information

Logger: homeassistant.components.axis Source: components/axis/device.py:272 Integration: Axis (documentation, issues) First occurred: 6:43:28 PM (1 occurrences) Last logged: 6:43:28 PM

Error connecting to the Axis device at 192.168.1.34

About this issue

  • Original URL
  • State: closed
  • Created 4 months ago
  • Reactions: 3
  • Comments: 32 (14 by maintainers)

Most upvoted comments

Thanks! Fixed the issue

I am on the road. Will provide them this evening (CET).

@Kane610 WOW that was fast! I wonder when core will be updated

I was also aware that there probably was variations of features I hadn’t accounted for in the library rewrite I want to be quick getting it out to fix it when aware of them.

and your work is appreciated!

@Kane610 great thank you. Cant wait! thanks again !

As soon as I’ve gotten a log output from @DirkMu I can publish a new hot fix release for Home Assistant.

There might be a few more data points like these which will cause errors

Cant wait! Will it be updated via HAs core ? Or will we need to manually install hotfix ? Really need this 4 cams to work properly, the onvif access to them seems to be very slow compared to the API, the snapshot takes about 10-15 seconds to take, which is way past what Im using this for.

Having similar issues. Out of 7 cameras 3 is not working but other 4 is fine.

Great to hear that some devices also works 😃

@Kane610 thanks for all your work on this… I’m getting the “items” and also a “maxpan” KeyError on 2 different Q series devices. If you think you have this addressed already great, but if you need anything from me let me know and I would be happy to provide it.

That’s a new one. Please provide backtrack and debug log

` 2024-03-07 11:33:23.170 DEBUG (MainThread) [axis.rtsp] Received data [‘RTSP/1.0 200 OK’, ‘CSeq: 4’, 'Public:

Thanks @DevTodd , fixed in library and updated PR on HASS

@Kane610 WOW that was fast! I wonder when core will be updated

I was also aware that there probably was variations of features I hadn’t accounted for in the library rewrite I want to be quick getting it out to fix it when aware of them.

and your work is appreciated!

Thanks!

Yes, I get that response. However, I share that part from the logs.

2024-03-07 19:47:49.782 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/apidiscovery.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"getApiList"}'', 'None', 'None'
2024-03-07 19:47:49.910 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/apidiscovery.cgi): b'{"method": "getApiList", "apiVersion": "1.1", "data": {"apiList": [{"id": "temperaturecontrol", "version": "1.0", "name": "Temperature Control", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "recording-export", "version": "1.2", "name": "Export edge recording", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "analytics-metadata-config", "version": "1.0", "name": "Analytics Metadata Producer Configuration API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "recording-storage-limit", "version": "1.0", "name": "Edge Recording storage limit", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "light-control", "version": "1.3", "name": "Light Control", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "rtsp-over-websocket", "version": "1.0", "name": "RTSP Streaming over WebSocket", "docLink": "https://www.axis.com/partner_pages/vapix/#/", "status": "official"}, {"id": "image-size", "version": "1.0", "name": "Image Size", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "audio-mixer", "version": "1.0", "name": "Audio Mixer", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "mediaclip", "version": "1.0", "name": "Mediaclip", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "customhttpheader", "version": "1.1", "name": "Custom HTTP header", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "event-streaming-over-websocket", "version": "1.0", "name": "Event Streaming over WebSocket", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "ptz-control", "version": "2.1", "name": "PTZ Control", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "stream-profiles", "version": "1.0", "name": "Stream Profiles", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "upnp", "version": "1.1", "name": "UPnP", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "mdnssd", "version": "1.1", "name": "mDNS-SD", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "disk-management", "version": "1.0", "name": "Edge storage Disk management", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "audio-analytics", "version": "0.1", "name": "Audio Analytics", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "feature-flag", "version": "1.0", "name": "Feature Flag API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "api-discovery", "version": "1.1", "name": "API Discovery Service", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "oak", "version": "1.0", "name": "OAK", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "privacy-mask", "version": "2.0", "name": "Privacy Masking", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "io-port-management", "version": "1.1", "name": "IO Port Management", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "mqtt-client", "version": "1.6", "name": "MQTT Client API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "custom-firmware-certificate", "version": "1.0", "name": "Custom Firmware Certificate", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "sip", "version": "2.2", "name": "Call service API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "disk-properties", "version": "1.1", "name": "Edge storage Disk properties", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "user-management", "version": "1.1", "name": "User Management", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "recording", "version": "1.0", "name": "Edge Recording", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "media-cgi", "version": "1.0", "name": "Media stream over HTTP", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "dynamicoverlay", "version": "1.7", "name": "Dynamic Overlay", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "time-service", "version": "1.0", "name": "Time API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "packagemanager", "version": "1.4", "name": "Package Manager", "docLink": ""}, {"id": "shuttergain-cgi", "version": "2.0", "name": "Shuttergain CGI", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "view-area", "version": "1.0", "name": "View Area", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "overlayimage", "version": "1.0", "name": "Overlay image API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "remoteservice", "version": "1.0", "name": "Remote service", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "network-settings", "version": "1.27", "name": "Network Settings", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "capture-mode", "version": "1.0", "name": "Capture Mode", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "device-config", "version": "1.0", "name": "Device Config API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "ntp", "version": "1.4", "name": "NTP", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "disk-network-share", "version": "1.0", "name": "Edge storage Network share", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "remote-syslog", "version": "1.1", "name": "Remote Syslog API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "device-self-test", "version": "1.0", "name": "Device Self Test", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "event-mqtt-bridge", "version": "1.2", "name": "Event-MQTT Bridge API", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "audio-device-control", "version": "1.0", "name": "Audio Device Control", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "basic-device-info", "version": "1.3", "name": "Basic Device Information", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "zipstream", "version": "1.0", "name": "ZipStream", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "audio-streaming-capabilities", "version": "1.0", "name": "Audio Streaming Capabilities", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "supervised-io", "version": "2.0", "name": "Supervised IO", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "ssh", "version": "1.0", "name": "SSH", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "recording-group", "version": "1.0", "name": "Edge Recording group", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "guard-tour", "version": "1.0", "name": "Guard Tour", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "fwmgr", "version": "1.4", "name": "Firmware Management", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "onscreencontrols", "version": "1.6", "name": "On-Screen Controls", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "systemready", "version": "1.4", "name": "Systemready", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}, {"id": "param-cgi", "version": "1.0", "name": "Legacy Parameter Handling", "docLink": "https://www.axis.com/partner_pages/vapix_library/#/", "status": "official"}]}, "context": "Axis library"}\n'
2024-03-07 19:47:49.911 DEBUG (MainThread) [axis.vapix.models.api_discovery] Unsupported API discovery status ''
2024-03-07 19:47:49.912 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/basicdeviceinfo.cgi, 'b'{"apiVersion":"1.3","context":"Axis library","method":"getAllProperties"}'', 'None', 'None'
2024-03-07 19:47:49.913 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/io/portmanagement.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"getPorts"}'', 'None', 'None'
2024-03-07 19:47:49.915 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/lightcontrol.cgi, 'b'{"apiVersion":"1.3","context":"Axis library","method":"getLightInformation"}'', 'None', 'None'
2024-03-07 19:47:49.916 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/streamprofile.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"list","params":{"streamProfileName":[]}}'', 'None', 'None'
2024-03-07 19:47:49.917 DEBUG (MainThread) [axis.vapix.vapix] post, http://192.168.10.13:80/axis-cgi/viewarea/info.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"list"}'', 'None', 'None'
2024-03-07 19:47:50.050 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/lightcontrol.cgi): b'{"apiVersion": "1.3", "context": "Axis library", "method": "getLightInformation", "data": {"items": [{"lightID": "led0", "lightType": "IR", "enabled": true, "synchronizeDayNightMode": true, "lightState": true, "automaticIntensityMode": true, "automaticAngleOfIlluminationMode": true, "nrOfLEDs": 2, "error": false, "errorInfo": ""}]}}\r\n'
2024-03-07 19:47:50.157 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/streamprofile.cgi): b'{"method": "list", "context": "Axis library", "apiVersion": "1.0", "data": {"streamProfile": [{"name": "HA", "description": "Home Assistant", "parameters": "videocodec=h264&resolution=1280x800"}], "maxProfiles": 26}}\r\n'
2024-03-07 19:47:50.227 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/io/portmanagement.cgi): b'{\n  "apiVersion": "1.1",\n  "context": "Axis library",\n  "method": "getPorts",\n  "data": {\n    "numberOfPorts": 0\n  }\n}'
2024-03-07 19:47:50.227 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Cam-Vorgarten for axis
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 504, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/axis/__init__.py", line 21, in async_setup_entry
    api = await get_axis_device(hass, config_entry.data)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  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 144, in initialize
    await self.initialize_api_discovery()
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/vapix.py", line 162, in initialize_api_discovery
    await asyncio.gather(*[api.update() for api in apis if api.supported])
  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/api_handler.py", line 115, in _update
    objects = await self._api_request()
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/port_management.py", line 31, in _api_request
    return await self.get_ports()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/interfaces/port_management.py", line 36, in get_ports
    return GetPortsResponse.decode(bytes_data).data
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/axis/vapix/models/port_management.py", line 221, in decode
    data=Port.decode_to_dict(data["data"]["items"]),
                             ~~~~~~~~~~~~^^^^^^^^^
KeyError: 'items'
2024-03-07 19:47:50.292 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/basicdeviceinfo.cgi): b'{"apiVersion": "1.3", "data": {"propertyList": {"Architecture": "armv7hf", "ProdNbr": "P3228-LVE", "HardwareID": "72B.4", "ProdFullName": "AXIS P3228-LVE Network Camera", "Version": "11.7.61", "ProdType": "Network Camera", "SocSerialNumber": "00000000-00000000-444A090C-20C00143", "Soc": "Axis Artpec-6", "Brand": "AXIS", "WebURL": "http://www.axis.com", "ProdVariant": "", "SerialNumber": "ACCC8E8F7495", "ProdShortName": "AXIS P3228-LVE", "BuildDate": "Nov 15 2023 18:55"}}, "context": "Axis library"}\n'
2024-03-07 19:47:50.617 DEBUG (MainThread) [axis.vapix.vapix] Response (from 192.168.10.13 /axis-cgi/viewarea/info.cgi): b'{"apiVersion": "1.0", "context": "Axis library", "method": "list", "data": {"viewAreas": [{"id": 1000008, "source": 0, "camera": 8, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000001, "source": 0, "camera": 1, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000007, "source": 0, "camera": 7, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000006, "source": 0, "camera": 6, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000005, "source": 0, "camera": 5, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000004, "source": 0, "camera": 4, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000003, "source": 0, "camera": 3, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}, {"id": 1000002, "source": 0, "camera": 2, "configurable": true, "canvasSize": {"horizontal": 3840, "vertical": 2160}, "rectangularGeometry": {"horizontalOffset": 0, "horizontalSize": 3840, "verticalOffset": 0, "verticalSize": 2160}, "minSize": {"horizontal": 64, "vertical": 64}, "maxSize": {"horizontal": 3840, "vertical": 2160}, "grid": {"horizontalOffset": 0, "horizontalSize": 1, "verticalOffset": 0, "verticalSize": 1}}]}}\r\n'

@Kane610 Sorry, just noticed that! 2024-03-07 16:53:57.174 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP>/axis-cgi/lightcontrol.cgi): b'{"apiVersion": "1.1", "context": "Axis library", "method": "getLightInformation", "data": {"items": [{"lightID": "led0", "lightType": "IR", "enabled": true, "synchronizeDayNightMode": true, "lightState": true, "automaticIntensityMode": false, "automaticAngleOfIlluminationMode": false, "nrOfLEDs": 2, "error": false, "errorInfo": ""}]}}\r\n' 2024-03-07 16:53:57.180 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /axis-cgi/io/portmanagement.cgi): b'{\n "apiVersion": "1.0",\n "context": "Axis library",\n "method": "getPorts",\n "data": {\n "numberOfPorts": 0\n }\n}' 2024-03-07 16:53:57.181 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Garage for axis

same issues, ended up restoring a backup.

@DirkMu perfect

@yozh i will put it up and get it integrated with the next core release

Hi again,

After you fixed https://github.com/home-assistant/core/issues/112421 on Monday, I also still cannot get the integration set up. Now the missing key that’s reported is KeyError: 'NbrOfCameras'.

Here’s the debug log:


2024-03-07 09:36:36.150 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/apidiscovery.cgi, 'b'{"apiVersion":"1.0","context":"Axis library","method":"getApiList"}'', 'None', 'None'
2024-03-07 09:36:36.165 DEBUG (MainThread) [axis.vapix.vapix] <Response [404 Not Found]>, Client error '404 Not Found' for url 'http://<MY-IP>/axis-cgi/apidiscovery.cgi'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
2024-03-07 09:36:36.166 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.Properties'}', 'None'
2024-03-07 09:36:36.167 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.Brand'}', 'None'
2024-03-07 09:36:36.169 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.IOPort'}', 'None'
2024-03-07 09:36:36.170 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.StreamProfile'}', 'None'
2024-03-07 09:36:36.776 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /axis-cgi/param.cgi): b'root.Brand.Brand=AXIS\nroot.Brand.ProdFullName=AXIS M3024-L Network Camera\nroot.Brand.ProdShortName=AXIS M3024-L\nroot.Brand.ProdNbr=M3024-L\nroot.Brand.ProdType=Network Camera\nroot.Brand.WebURL=http://www.axis.com/\n'
2024-03-07 09:36:36.929 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /axis-cgi/param.cgi): b'root.IOPort.I0.Direction=input\nroot.IOPort.I1.Direction=output\nroot.IOPort.I1.Output.Name=Output 1\nroot.IOPort.I1.Output.Active=closed\nroot.IOPort.I1.Output.Button=none\nroot.IOPort.I1.Output.PulseTime=0\nroot.IOPort.I1.Output.Mode=bistable\nroot.IOPort.I1.Output.DelayTime=0\n'
2024-03-07 09:36:39.295 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /axis-cgi/param.cgi): b'root.Properties.AlwaysMulticast.AlwaysMulticast=yes\nroot.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.02\nroot.Properties.EmbeddedDevelopment.EmbeddedDevelopment=yes\nroot.Properties.EmbeddedDevelopment.Version=1.40\nroot.Properties.EmbeddedDevelopment.CacheSize=10485760\nroot.Properties.EmbeddedDevelopment.DefaultCacheSize=26214400\nroot.Properties.Firmware.BuildNumber=1\nroot.Properties.Firmware.BuildDate=Nov 23 2021 11:01\nroot.Properties.Firmware.Version=5.51.7.6\nroot.Properties.HTTPS.HTTPS=yes\nroot.Properties.Image.Rotation=0,90,180,270\nroot.Properties.Image.Resolution=800x600,640x480,480x360,320x240,1280x720,640x360,1280x800,1024x640,640x400,352x240\nroot.Properties.Image.Format=jpeg,mjpeg,h264\nroot.Properties.Image.NbrOfViews=1\nroot.Properties.Image.H264.Profiles=Main\nroot.Properties.ImageSource.DayNight=yes\nroot.Properties.LEDControl.LEDControl=yes\nroot.Properties.LightControl.LightControlAvailable=yes\nroot.Properties.LocalStorage.LocalStorage=yes\nroot.Properties.LocalStorage.Version=1.00\nroot.Properties.LocalStorage.ContinuousRecording=yes\nroot.Properties.LocalStorage.NbrOfContinuousRecordingProfiles=1\nroot.Properties.LocalStorage.FailOverRecording=yes\nroot.Properties.LocalStorage.SDCard=yes\nroot.Properties.Motion.Motion=yes\nroot.Properties.Motion.MaxNbrOfWindows=10\nroot.Properties.NetworkShare.NetworkShare=yes\nroot.Properties.NetworkShare.CIFS=yes\nroot.Properties.NetworkShare.IPV6=yes\nroot.Properties.PrivacyMask.PrivacyMask=no\nroot.Properties.PrivacyMask.MaxNbrOfPrivacyMasks=3\nroot.Properties.PTZ.PTZ=yes\nroot.Properties.PTZ.DigitalPTZ=yes\nroot.Properties.PTZ.DriverManagement=no\nroot.Properties.RemoteService.RemoteService=no\nroot.Properties.RTC.RTC=yes\nroot.Properties.Serial.Serial=no\nroot.Properties.System.Language=English\nroot.Properties.System.LanguageType=default\nroot.Properties.System.HardwareID=1A1\nroot.Properties.System.SerialNumber=ACCC8E3A1335\nroot.Properties.System.Architecture=armv6l\nroot.Properties.Tampering.Tampering=yes\nroot.Properties.TemperatureSensor.TemperatureSensor=no\nroot.Properties.TemperatureSensor.TemperatureControl=yes\nroot.Properties.TemperatureSensor.Fan=no\nroot.Properties.TemperatureSensor.Heater=no\nroot.Properties.VirtualInput.VirtualInput=yes\n'
2024-03-07 09:36:39.633 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /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=resolution=1280x720&compression=20&fps=25&videokeyframeinterval=100&videobitrate=0&videocodec=h264\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=1280x800&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=resolution=640x400&compression=30&textstring=Front%20Door%20640&textsize=small&textcolor=white&textbackgroundcolor=semitransparent&textposition=top&text=1&clock=1&date=1&fps=15&videokeyframeinterval=32&videobitrate=0&videocodec=h264\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=resolution=640x480&compression=50&fps=15&videokeyframeinterval=32&videobitrate=250&videobitratepriority=framerate&videocodec=h264\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. 480x360\nroot.StreamProfile.S3.Parameters=resolution=480x360&compression=50&fps=10&videokeyframeinterval=40&videobitrate=100&videobitratepriority=quality&videocodec=h264\nroot.StreamProfile.S3.Default.Name=Mobile\nroot.StreamProfile.S3.Default.Description=Mobile device settings.\nroot.StreamProfile.S3.Default.Parameters=videocodec=h264&resolution=352x240&compression=50&fps=15&videokeyframeinterval=32&videobitrate=120&videomaxbitrate=128&videobitratepriority=quality&audio=0\n'
2024-03-07 09:36:39.636 DEBUG (MainThread) [axis.vapix.vapix] post, http://<MY-IP>:80/axis-cgi/param.cgi, 'None', '{'action': 'list', 'group': 'root.PTZ'}', 'None'
2024-03-07 09:36:40.565 DEBUG (MainThread) [axis.vapix.vapix] Response (from <MY-IP> /axis-cgi/param.cgi): b'root.PTZ.NbrOfSerPorts=0\nroot.PTZ.CameraDefault=1\nroot.PTZ.BoaProtPTZOperator=password\nroot.PTZ.CamPorts.Cam1Port=1\nroot.PTZ.ImageSource.I0.PTZEnabled=false\nroot.PTZ.Limit.L1.MinPan=-180\nroot.PTZ.Limit.L1.MaxPan=180\nroot.PTZ.Limit.L1.MinTilt=-180\nroot.PTZ.Limit.L1.MaxTilt=180\nroot.PTZ.Limit.L1.MinZoom=1\nroot.PTZ.Limit.L1.MaxZoom=9999\nroot.PTZ.Preset.P0.Name=\nroot.PTZ.Preset.P0.ImageSource=0\nroot.PTZ.Preset.P0.HomePosition=1\nroot.PTZ.Preset.P0.Position.P1.Name=Home\nroot.PTZ.Preset.P0.Position.P1.Data=tilt=0.000000:pan=0.000000:zoom=1.000000\nroot.PTZ.PTZDriverStatuses.Driver1Status=3\nroot.PTZ.Support.S1.AbsolutePan=true\nroot.PTZ.Support.S1.RelativePan=true\nroot.PTZ.Support.S1.AbsoluteTilt=true\nroot.PTZ.Support.S1.RelativeTilt=true\nroot.PTZ.Support.S1.AbsoluteZoom=true\nroot.PTZ.Support.S1.RelativeZoom=true\nroot.PTZ.Support.S1.DigitalZoom=false\nroot.PTZ.Support.S1.AbsoluteFocus=false\nroot.PTZ.Support.S1.RelativeFocus=false\nroot.PTZ.Support.S1.AutoFocus=false\nroot.PTZ.Support.S1.AbsoluteIris=false\nroot.PTZ.Support.S1.RelativeIris=false\nroot.PTZ.Support.S1.AutoIris=false\nroot.PTZ.Support.S1.AbsoluteBrightness=false\nroot.PTZ.Support.S1.RelativeBrightness=false\nroot.PTZ.Support.S1.ContinuousPan=true\nroot.PTZ.Support.S1.ContinuousTilt=true\nroot.PTZ.Support.S1.ContinuousZoom=true\nroot.PTZ.Support.S1.ContinuousFocus=false\nroot.PTZ.Support.S1.ContinuousIris=false\nroot.PTZ.Support.S1.ContinuousBrightness=false\nroot.PTZ.Support.S1.Auxiliary=false\nroot.PTZ.Support.S1.ServerPreset=true\nroot.PTZ.Support.S1.DevicePreset=false\nroot.PTZ.Support.S1.SpeedCtl=true\nroot.PTZ.Support.S1.JoyStickEmulation=true\nroot.PTZ.Support.S1.IrCutFilter=false\nroot.PTZ.Support.S1.AutoIrCutFilter=false\nroot.PTZ.Support.S1.BackLight=false\nroot.PTZ.Support.S1.OSDMenu=false\nroot.PTZ.Support.S1.ActionNotification=true\nroot.PTZ.Support.S1.ProportionalSpeed=true\nroot.PTZ.Support.S1.GenericHTTP=false\nroot.PTZ.Support.S1.LensOffset=false\nroot.PTZ.Support.S1.AreaZoom=true\nroot.PTZ.UserAdv.U1.MoveSpeed=100\nroot.PTZ.Various.V1.CtlQueueing=false\nroot.PTZ.Various.V1.CtlQueueLimit=20\nroot.PTZ.Various.V1.CtlQueuePollTime=20\nroot.PTZ.Various.V1.PanEnabled=true\nroot.PTZ.Various.V1.TiltEnabled=true\nroot.PTZ.Various.V1.ZoomEnabled=true\nroot.PTZ.Various.V1.SpeedCtlEnabled=true\nroot.PTZ.Various.V1.HomePresetSet=true\nroot.PTZ.Various.V1.ProportionalSpeedEnabled=true\nroot.PTZ.Various.V1.MaxProportionalSpeed=200\nroot.PTZ.Various.V1.ReturnToOverview=30\nroot.PTZ.Various.V1.Locked=true\n'