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
71.26k stars 29.86k forks source link

[BUG] [REOLINK] Camera Firmware mismatch for RLC-422 Dome Camera #124491

Closed jared-bloomer closed 2 weeks ago

jared-bloomer commented 3 weeks ago

The problem

HASS says there is a firmware update for this camera. The camera is on the latest and greatest firmware version. What I have noticed is the Firmware for the RLC-422 is V3.0.0.136_20121105 from the Reolink website, but HASS thinks it needs to be updated to v3.0.0.136_20121106, which is not an available firmware version from Reolink at this time.

What version of Home Assistant Core has the issue?

2024.8.2

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

reolink

Link to integration documentation on our website

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

Diagnostics information

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.8.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.12.4",
    "docker": true,
    "arch": "x86_64",
    "timezone": "America/New_York",
    "os_name": "Linux",
    "os_version": "6.6.46-haos",
    "supervisor": "2024.08.0",
    "host_os": "Home Assistant OS 13.1",
    "docker_version": "26.1.4",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "documentation": "https://hacs.xyz/docs/configuration/start",
      "version": "2.0.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "hdhomerun": {
      "documentation": "https://github.com/uvjim/hass_hdhomerun",
      "version": "2024.5.1",
      "requirements": []
    },
    "frigate": {
      "documentation": "https://github.com/blakeblackshear/frigate",
      "version": "5.3.0",
      "requirements": [
        "pytz"
      ]
    },
    "nws_alerts": {
      "documentation": "https://github.com/finity69x2/nws_alerts/",
      "version": "5.0",
      "requirements": []
    },
    "pfsense": {
      "documentation": "https://github.com/travisghansen/hass-pfsense",
      "version": "0.1.0",
      "requirements": [
        "mac-vendor-lookup>=0.1.11"
      ]
    },
    "monitor_docker": {
      "documentation": "https://github.com/ualex73/monitor_docker",
      "version": "1.18",
      "requirements": [
        "aiodocker==0.22.0",
        "python-dateutil==2.9.0"
      ]
    },
    "fordpass": {
      "documentation": "https://github.com/itchannel/fordpass-ha",
      "version": "0.1.68",
      "requirements": []
    },
    "extended_openai_conversation": {
      "documentation": "https://github.com/jekalmin/extended_openai_conversation",
      "version": "1.0.3",
      "requirements": [
        "openai~=1.3.8"
      ]
    },
    "pirateweather": {
      "documentation": "https://github.com/alexander0042/pirate-weather-ha",
      "version": "1.5.8",
      "requirements": [
        "python-forecastio==1.4.0"
      ]
    }
  },
  "integration_manifest": {
    "domain": "reolink",
    "name": "Reolink IP NVR/camera",
    "codeowners": [
      "starkillerOG"
    ],
    "config_flow": true,
    "dependencies": [
      "webhook"
    ],
    "dhcp": [
      {
        "hostname": "reolink*"
      },
      {
        "macaddress": "EC71DB*"
      },
      {
        "registered_devices": true
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/reolink",
    "iot_class": "local_push",
    "loggers": [
      "reolink_aio"
    ],
    "requirements": [
      "reolink-aio==0.9.7"
    ],
    "is_built_in": true
  },
  "setup_times": {
    "null": {
      "setup": 3.723999543581158e-05
    },
    "9ed889e00e89f851bd03077bd48c34ea": {
      "wait_import_platforms": -1.4627229319885373,
      "config_entry_setup": 3.083972056003404
    },
    "c21a4540009a14af4ec48c6a4172c4a8": {
      "config_entry_setup": 33.786914906988386
    },
    "3937a136d82cd59e982bc0154e5801c4": {
      "config_entry_setup": 34.50730405199283
    },
    "66f359cfcd139a582e760d73461b07d3": {
      "config_entry_setup": 34.58853870000166
    },
    "345ceae6a2fa690dbbb862b56c9df4ef": {
      "config_entry_setup": 34.60071948400582
    },
    "348a3ce8fe4069069e79e23262805817": {
      "config_entry_setup": 35.525801607000176
    }
  },
  "data": {
    "model": "RLC-422",
    "hardware version": "IPC_51516M5M",
    "firmware version": "v3.0.0.136_20121105",
    "HTTPS": true,
    "HTTP(S) port": 443,
    "WiFi connection": false,
    "WiFi signal": null,
    "RTMP enabled": true,
    "RTSP enabled": true,
    "ONVIF enabled": true,
    "event connection": "ONVIF push",
    "stream protocol": "rtsp",
    "channels": [
      0
    ],
    "stream channels": [
      0
    ],
    "IPC cams": {
      "0": {
        "model": "RLC-422",
        "hardware version": "IPC_51516M5M",
        "firmware version": "v3.0.0.136_20121105",
        "encoding main": "h264"
      }
    },
    "capabilities": {
      "Host": [
        "ONVIF",
        "RTSP",
        "RTMP",
        "UID",
        "ftp",
        "push",
        "recording",
        "email",
        "firmware",
        "reboot"
      ],
      "0": [
        "motion_detection",
        "ftp",
        "push",
        "recording",
        "email",
        "ir_lights",
        "audio",
        "ptz",
        "zoom_basic",
        "zoom",
        "focus",
        "auto_focus",
        "md_sensitivity",
        "isp_hue",
        "isp_satruation",
        "isp_sharpen",
        "isp_contrast",
        "isp_bright",
        "dayNight",
        "backLight"
      ]
    },
    "cmd list": {
      "GetZoomFocus": {
        "null": 2,
        "0": 2
      },
      "GetMdAlarm": {
        "null": 1,
        "0": 1
      },
      "GetIsp": {
        "null": 1,
        "0": 1
      },
      "GetIrLights": {
        "null": 1,
        "0": 1
      },
      "GetEnc": {
        "null": 1,
        "0": 1
      },
      "GetAutoFocus": {
        "null": 1,
        "0": 1
      },
      "GetEmail": {
        "null": 1
      },
      "GetFtp": {
        "null": 1
      },
      "GetPush": {
        "null": 1
      },
      "GetRec": {
        "null": 1
      }
    },
    "firmware ch list": [
      null
    ],
    "api versions": {
      "GetEvents": 0,
      "GetWhiteLed": 0,
      "GetAudioCfg": 0,
      "GetPtzGuard": 0,
      "GetPtzCurPos": 0,
      "GetEmail": 0,
      "GetPush": 0,
      "GetFtp": 0,
      "GetRec": 0,
      "GetAudioAlarm": 0,
      "GetMdAlarm": 0
    },
    "abilities": {
      "3g": {
        "permit": 0,
        "ver": 0
      },
      "abilityChn": [
        {
          "alarmAudio": {
            "permit": 0,
            "ver": 0
          },
          "alarmIoIn": {
            "permit": 0,
            "ver": 0
          },
          "alarmIoOut": {
            "permit": 0,
            "ver": 0
          },
          "alarmMd": {
            "permit": 6,
            "ver": 1
          },
          "alarmRf": {
            "permit": 0,
            "ver": 0
          },
          "batAnalysis": {
            "permit": 0,
            "ver": 0
          },
          "battery": {
            "permit": 0,
            "ver": 0
          },
          "cameraMode": {
            "permit": 6,
            "ver": 0
          },
          "disableAutoFocus": {
            "permit": 6,
            "ver": 1
          },
          "enc": {
            "permit": 6,
            "ver": 1
          },
          "floodLight": {
            "permit": 6,
            "ver": 2
          },
          "ftp": {
            "permit": 6,
            "ver": 6
          },
          "image": {
            "permit": 6,
            "ver": 1
          },
          "indicatorLight": {
            "permit": 0,
            "ver": 0
          },
          "isp": {
            "permit": 6,
            "ver": 1
          },
          "isp3Dnr": {
            "permit": 6,
            "ver": 1
          },
          "ispAntiFlick": {
            "permit": 6,
            "ver": 1
          },
          "ispBackLight": {
            "permit": 6,
            "ver": 1
          },
          "ispBright": {
            "permit": 6,
            "ver": 1
          },
          "ispContrast": {
            "permit": 6,
            "ver": 1
          },
          "ispDayNight": {
            "permit": 6,
            "ver": 1
          },
          "ispExposureMode": {
            "permit": 6,
            "ver": 1
          },
          "ispFlip": {
            "permit": 6,
            "ver": 1
          },
          "ispHue": {
            "permit": 6,
            "ver": 1
          },
          "ispMirror": {
            "permit": 6,
            "ver": 1
          },
          "ispSatruation": {
            "permit": 6,
            "ver": 1
          },
          "ispSharpen": {
            "permit": 6,
            "ver": 1
          },
          "ispWhiteBalance": {
            "permit": 6,
            "ver": 0
          },
          "ledControl": {
            "permit": 5,
            "ver": 2
          },
          "live": {
            "permit": 4,
            "ver": 1
          },
          "mainEncType": {
            "permit": 1,
            "ver": 0
          },
          "mask": {
            "permit": 6,
            "ver": 1
          },
          "mdTriggerAudio": {
            "permit": 0,
            "ver": 0
          },
          "mdTriggerRecord": {
            "permit": 0,
            "ver": 0
          },
          "mdWithPir": {
            "permit": 0,
            "ver": 0
          },
          "osd": {
            "permit": 6,
            "ver": 1
          },
          "powerLed": {
            "permit": 0,
            "ver": 0
          },
          "ptzCtrl": {
            "permit": 7,
            "ver": 2
          },
          "ptzDirection": {
            "permit": 1,
            "ver": 0
          },
          "ptzPatrol": {
            "permit": 0,
            "ver": 0
          },
          "ptzPreset": {
            "permit": 0,
            "ver": 0
          },
          "ptzTattern": {
            "permit": 0,
            "ver": 0
          },
          "ptzType": {
            "permit": 0,
            "ver": 1
          },
          "recCfg": {
            "permit": 6,
            "ver": 1
          },
          "recDownload": {
            "permit": 6,
            "ver": 1
          },
          "recReplay": {
            "permit": 6,
            "ver": 1
          },
          "recSchedule": {
            "permit": 6,
            "ver": 2
          },
          "shelterCfg": {
            "permit": 6,
            "ver": 1
          },
          "snap": {
            "permit": 6,
            "ver": 1
          },
          "videoClip": {
            "permit": 6,
            "ver": 2
          },
          "waterMark": {
            "permit": 6,
            "ver": 1
          },
          "white_balance": {
            "permit": 6,
            "ver": 0
          }
        }
      ],
      "alarmAudio": {
        "permit": 0,
        "ver": 0
      },
      "alarmDisconnet": {
        "permit": 6,
        "ver": 1
      },
      "alarmHddErr": {
        "permit": 6,
        "ver": 1
      },
      "alarmHddFull": {
        "permit": 6,
        "ver": 1
      },
      "alarmIpConflict": {
        "permit": 6,
        "ver": 1
      },
      "auth": {
        "permit": 6,
        "ver": 1
      },
      "autoMaint": {
        "permit": 6,
        "ver": 1
      },
      "cloudStorage": {
        "permit": 0,
        "ver": 0
      },
      "customAudio": {
        "permit": 0,
        "ver": 0
      },
      "dateFormat": {
        "permit": 6,
        "ver": 1
      },
      "ddns": {
        "permit": 6,
        "ver": 9
      },
      "ddnsCfg": {
        "permit": 6,
        "ver": 1
      },
      "devInfo": {
        "permit": 4,
        "ver": 1
      },
      "devName": {
        "permit": 6,
        "ver": 2
      },
      "disableAutoFocus": {
        "permit": 6,
        "ver": 1
      },
      "disk": {
        "permit": 6,
        "ver": 1
      },
      "display": {
        "permit": 6,
        "ver": 1
      },
      "email": {
        "permit": 6,
        "ver": 3
      },
      "emailInterval": {
        "permit": 6,
        "ver": 1
      },
      "emailSchedule": {
        "permit": 6,
        "ver": 1
      },
      "exportCfg": {
        "permit": 4,
        "ver": 1
      },
      "ftpAutoDir": {
        "permit": 6,
        "ver": 0
      },
      "ftpExtStream": {
        "permit": 6,
        "ver": 1
      },
      "ftpPic": {
        "permit": 0,
        "ver": 0
      },
      "ftpSubStream": {
        "permit": 6,
        "ver": 1
      },
      "ftpTest": {
        "permit": 6,
        "ver": 0
      },
      "hourFmt": {
        "permit": 6,
        "ver": 2
      },
      "http": {
        "permit": 6,
        "ver": 1
      },
      "httpFlv": {
        "permit": 6,
        "ver": 1
      },
      "https": {
        "permit": 6,
        "ver": 1
      },
      "importCfg": {
        "permit": 1,
        "ver": 0
      },
      "ipcManager": {
        "permit": 6,
        "ver": 1
      },
      "ledControl": {
        "permit": 5,
        "ver": 2
      },
      "localLink": {
        "permit": 6,
        "ver": 1
      },
      "log": {
        "permit": 6,
        "ver": 1
      },
      "mediaPort": {
        "permit": 6,
        "ver": 1
      },
      "ntp": {
        "permit": 6,
        "ver": 1
      },
      "online": {
        "permit": 6,
        "ver": 1
      },
      "onvif": {
        "permit": 6,
        "ver": 1
      },
      "p2p": {
        "permit": 6,
        "ver": 1
      },
      "performance": {
        "permit": 4,
        "ver": 1
      },
      "pppoe": {
        "permit": 6,
        "ver": 0
      },
      "push": {
        "permit": 6,
        "ver": 1
      },
      "pushSchedule": {
        "permit": 6,
        "ver": 1
      },
      "reboot": {
        "permit": 1,
        "ver": 1
      },
      "recExtensionTimeList": {
        "permit": 6,
        "ver": 1
      },
      "recOverWrite": {
        "permit": 6,
        "ver": 1
      },
      "recPackDuration": {
        "permit": 6,
        "ver": 0
      },
      "recPreRecord": {
        "permit": 6,
        "ver": 1
      },
      "restore": {
        "permit": 1,
        "ver": 1
      },
      "rtmp": {
        "permit": 6,
        "ver": 1
      },
      "rtsp": {
        "permit": 6,
        "ver": 2
      },
      "scheduleVersion": {
        "permit": 6,
        "ver": 0
      },
      "sdCard": {
        "permit": 6,
        "ver": 1
      },
      "showQrCode": {
        "permit": 6,
        "ver": 0
      },
      "simMoudule": {
        "permit": 6,
        "ver": 0
      },
      "talk": {
        "permit": 4,
        "ver": 0
      },
      "time": {
        "permit": 6,
        "ver": 2
      },
      "tvSystem": {
        "permit": 6,
        "ver": 0
      },
      "upgrade": {
        "permit": 1,
        "ver": 1
      },
      "upnp": {
        "permit": 6,
        "ver": 1
      },
      "user": {
        "permit": 6,
        "ver": 1
      },
      "videoClip": {
        "permit": 6,
        "ver": 2
      },
      "wifi": {
        "permit": 0,
        "ver": 0
      },
      "wifiTest": {
        "permit": 6,
        "ver": 0
      }
    }
  }
}

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

image image

home-assistant[bot] commented 3 weeks ago

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

Code owner commands Code owners of `reolink` 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 reolink` 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)


reolink documentation reolink source (message by IssueLinks)

starkillerOG commented 3 weeks ago

Thank you for sharing the diagnostic info!

The Reolink download center has: RLC-422W - IPC_51516M5M - V3.0.0.136_20121106 RLC-422 - IPC-51516M - V3.0.0.136_20121105

And you have a camera: RLC-422 - IPC_51516M5M - v3.0.0.136_20121105

So your camera model is not listed on the reolink download center. The integration is wrongfully assuming RLC-422W with the matching hardware version.

I will imporve on this and fix this.

starkillerOG commented 2 weeks ago

Solved in PR https://github.com/home-assistant/core/pull/124763. This fix will be included in HA 2024.9.0 which will be released next week wednesday.

If you appreciate the reolink integration and want to support its development, please consider sponsering the upstream library or purchase Reolink products through this affiliate link.