Integration : Home assistant - themactep/thingino-firmware GitHub Wiki

To configure camera in home assistant, add onvif integration. Then add a new camera and let it autodiscover. In my case autodiscovery failed but it prompted me for IP address of camera. Once entering auth details it added it correctly. (As of 1/26/25 there is a bug in thingino firmware which makes the authentication fail. to fix that, hard reset your camera, and then reconfigure everything from scratch. after reconfiguring it will authenticate fine).

The URL to get snapshot from camera is

http://thingino:thingino@[ipOfYourCamera]/image.jpg

Add white led in home assistant

For now it requires polling to get status.


light:
  - platform: template
    lights:
      z55_light:
        unique_id: "z55_light"
        turn_on:
          - action: rest_command.z55_camera_light_on
        turn_off:
          - action: rest_command.z55_camera_light_off
        #value_template: "{{ is_state('binary_sensor.z55_light_status', 'on') }}"
        value_template: "{{ states('binary_sensor.z55_light_status') }}"
template:
  - unique_id: z55_light_status_template
    trigger:
      - trigger: time_pattern
        seconds: /30
    action:
      - action: rest_command.z55_camera_light_status
        response_variable: z55_response
    binary_sensor:
      - name: z55_light_status
        unique_id: z55_light_status
        state: >
          {{ z55_response['content']['message']['white'] == 1 }}
        
      
rest_command:
  z55_camera_light_on:
    url: "http://z55.home/x/json-imp.cgi?cmd=white&val=1"
    username: root
    password: MyRootPassword
    verify_ssl: false
    method: get

  z55_camera_light_off:
    url: "http://z55.home/x/json-imp.cgi?cmd=white&val=0"
    username: root
    password: MyRootPassword
    verify_ssl: false
    method: get

  z55_camera_light_status:
    url: "http://z55.home/x/json-imp.cgi?cmd=white&val=read"
    username: root
    password: MyRootPassword
    verify_ssl: false
    method: get
    headers:
      Accept: "*/*"



Add a Picture Glance Card with PTZ Controls

The ONVIF implementation in Home Assistant does not expose PTZ controls as entities. You will need to add custom code to add the controls. The following is the full YAML for a Picture Glance Card with PTZ control. Be sure to update with the proper camera entity name.


camera_view: live
fit_mode: cover
type: picture-glance
title: [title]
image: http://[user]:[password]@[camera IP address]/image.jpg
entities:
  - entity: camera.camera_profile_0 #update to your entity name
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.camera.camera_profile_0 #update to your entity name
        pan: LEFT
        speed: 1
        distance: 0.1
        move_mode: ContinuousMove
    name: Pan Left
    show_state: false
    icon: mdi:arrow-left
    show_icon: true
  - entity: camera.camera.camera_profile_0 #update to your entity name
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.camera.camera_profile_0 #update to your entity name
        tilt: UP
        speed: 1
        distance: 0.1
        move_mode: ContinuousMove
    name: Tilt Up
    icon: mdi:arrow-up
  - entity: camera.camera.camera_profile_0 #update to your entity name
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.camera.camera_profile_0 #update to your entity name
        tilt: DOWN
        speed: 1
        distance: 0.1
        move_mode: ContinuousMove
    name: Tilt Down
    icon: mdi:arrow-down
  - entity: camera.camera.camera_profile_0 #update to your entity name
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.camera.camera_profile_0 #update to your entity name
        pan: RIGHT
        speed: 1
        distance: 0.1
        move_mode: ContinuousMove
    name: Pan Right
    icon: mdi:arrow-right
    show_icon: true
camera_image: camera.camera.camera_profile_0 #update to your entity name