greghesp / ha-bambulab

A Home Assistant Integration for Bambu Lab Printers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug] HomeKit video not working

moebis opened this issue · comments

Describe the bug

I'm using the ha-bambulab plugin and HomeKit bridge. When I enable the camera (to expose to Apple HomeKit), it asks if the feed is H.264 or not. I've tried it both on an off (transcode), but the camera feed never shows up on my Apple Home app. There has to be a way to feed the X1C camera to HomeKit, I can see the feed in my Home Assistant dashboard, so the ha-bambulab plugin is pulling in feed, but it can't relay it to HomeKit.

To Reproduce

Turn on Camera in HomeKit bridge, select the X1C camera, try with or without re-encoding H.264, neither work or ever show up on the Home apps for apple devices. It does show up in Home Assistant panels though.

Expected Behaviour

Camera feed to HomeKit devices works.

What device are you using?

X1C

Diagnostic Output

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.2.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.12.1",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/Bratislava",
    "os_name": "Linux",
    "os_version": "6.1.63-haos-raspi",
    "supervisor": "2024.01.1",
    "host_os": "Home Assistant OS 11.5",
    "docker_version": "24.0.7",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "meross_cloud": {
      "version": "1.2.13",
      "requirements": [
        "meross_iot==0.4.6.1"
      ]
    },
    "smartthinq_sensors": {
      "version": "0.38.1",
      "requirements": [
        "pycountry<23.0.0,>=22.1.10",
        "xmltodict>=0.13.0",
        "charset_normalizer>=3.2.0"
      ]
    },
    "hacs": {
      "version": "1.34.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "watchman": {
      "version": "0.5.1",
      "requirements": [
        "prettytable==3.0.0"
      ]
    },
    "bambu_lab": {
      "version": "2.0.14",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "bambu_lab",
    "name": "Bambu Lab",
    "codeowners": [
      "@greghesp",
      "@AdrianGarside"
    ],
    "config_flow": true,
    "dependencies": [
      "device_automation",
      "ffmpeg",
      "mqtt"
    ],
    "documentation": "https://github.com/greghesp/ha-bambulab",
    "iot_class": "local_push",
    "issue_tracker": "https://github.com/greghesp/ha-bambulab/issues",
    "ssdp": [
      {
        "st": "urn:bambulab-com:device:3dprinter:1"
      }
    ],
    "version": "2.0.14",
    "is_built_in": false
  },
  "data": {
    "config_entry": {
      "entry_id": "42972c354604891b14607626d9d5e7de",
      "version": 2,
      "minor_version": 1,
      "domain": "bambu_lab",
      "title": "**REDACTED**",
      "data": {
        "device_type": "X1C",
        "serial": "**REDACTED**"
      },
      "options": {
        "region": "Europe",
        "email": "**REDACTED**",
        "username": "**REDACTED**",
        "name": "Moebis-X1C",
        "host": "192.168.100.7",
        "local_mqtt": false,
        "auth_token": "**REDACTED**",
        "access_code": "**REDACTED**",
        "usage_hours": 1473.1400000000003
      },
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "user",
      "unique_id": null,
      "disabled_by": null
    },
    "push_all": {
      "ams": {
        "ams": [
          {
            "humidity": "5",
            "id": "0",
            "temp": "33.9",
            "tray": [
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "FFFFFFFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "0",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 14,
                "tag_uid": "40C3BB2F00000100",
                "tray_color": "FFFFFFFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-W2",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "8B29D2E70D354DC3A67182CA5B3B197A",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E8030000803F"
              },
              {
                "bed_temp": "80",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "FFFFFFFF"
                ],
                "ctype": 0,
                "drying_temp": "80",
                "drying_time": "8",
                "id": "1",
                "nozzle_temp_max": "250",
                "nozzle_temp_min": "245",
                "remain": 71,
                "tag_uid": "655B2C0500000100",
                "tray_color": "FFFFFFFF",
                "tray_diameter": "1.75",
                "tray_id_name": "B00-W0",
                "tray_info_idx": "GFB00",
                "tray_sub_brands": "ABS",
                "tray_type": "ABS",
                "tray_uuid": "1171DEE258FD4B5CB9736D57B3724D5D",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E803CDCC4C3F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "FF9D5BFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "2",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 100,
                "tag_uid": "7D15F3F200000100",
                "tray_color": "FF9D5BFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A12-A0",
                "tray_info_idx": "GFA12",
                "tray_sub_brands": "PLA Glow",
                "tray_type": "PLA",
                "tray_uuid": "FFD59357809A4D0C92F3249D6EF4A2EC",
                "tray_weight": "1000",
                "xcam_info": "881388138403E8033333333F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "F99963FF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "3",
                "nozzle_temp_max": "215",
                "nozzle_temp_min": "210",
                "remain": 14,
                "tag_uid": "F5F19A1B00000100",
                "tray_color": "F99963FF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-A2",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "E340323DD5374B80B30A1F645F85B6D2",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E8030000003F"
              }
            ]
          },
          {
            "humidity": "3",
            "id": "1",
            "temp": "29.5",
            "tray": [
              {
                "bed_temp": "45",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "FFFFFFFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "0",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 100,
                "tag_uid": "F7050DBA00000100",
                "tray_color": "FFFFFFFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A00-W1",
                "tray_info_idx": "GFA00",
                "tray_sub_brands": "PLA Basic",
                "tray_type": "PLA",
                "tray_uuid": "138893AD41A84A3AB0E990E8B04838EE",
                "tray_weight": "1000",
                "xcam_info": "34218813F401E8030000003F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "9B9EA0FF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "1",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 61,
                "tag_uid": "CD598D9400000100",
                "tray_color": "9B9EA0FF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-D3",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "FB881D7FDB2444419C74D666A8DE012D",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E8030000803F"
              },
              {
                "bed_temp": "45",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "951E23FF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "2",
                "nozzle_temp_max": "240",
                "nozzle_temp_min": "200",
                "remain": 100,
                "tag_uid": "20E5F12F00000100",
                "tray_color": "951E23FF",
                "tray_diameter": "1.75",
                "tray_id_name": "A50-R4",
                "tray_info_idx": "GFA50",
                "tray_sub_brands": "PLA-CF",
                "tray_type": "PLA-CF",
                "tray_uuid": "486B2B2DE5D748DCA4A479E615A29C20",
                "tray_weight": "1000",
                "xcam_info": "D00788138403E8039A99593F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "FFE17FFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "3",
                "nozzle_temp_max": "215",
                "nozzle_temp_min": "210",
                "remain": 49,
                "tag_uid": "A5150C1C00000100",
                "tray_color": "FFE17FFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-Y2",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "1979ECE30BCF4541AFD1316546F987A8",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E8039A99193F"
              }
            ]
          },
          {
            "humidity": "5",
            "id": "2",
            "temp": "28.6",
            "tray": [
              {
                "bed_temp": "45",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "9D432CFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "0",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 56,
                "tag_uid": "973B5DC100000100",
                "tray_color": "9D432CFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A00-N0",
                "tray_info_idx": "GFA00",
                "tray_sub_brands": "PLA Basic",
                "tray_type": "PLA",
                "tray_uuid": "7F5C3B60D5A34E5F896852152CAFCC70",
                "tray_weight": "1000",
                "xcam_info": "3421100EE803E803CDCC4C3F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "0078BFFF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "1",
                "nozzle_temp_max": "215",
                "nozzle_temp_min": "210",
                "remain": 20,
                "tag_uid": "25EA0DA300000100",
                "tray_color": "0078BFFF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-B3",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "3A9B8845CE6C4AFE903034116DB6C0DC",
                "tray_weight": "1000",
                "xcam_info": "D007D007E803E8033333333F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "DE4343FF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "2",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 84,
                "tag_uid": "6DFE172100000100",
                "tray_color": "DE4343FF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-R1",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "82DB95BBCBFB4E2DA0FECDA6E9FA3FF8",
                "tray_weight": "1000",
                "xcam_info": "8813D007E803E8039A99193F"
              },
              {
                "bed_temp": "35",
                "bed_temp_type": "1",
                "cali_idx": -1,
                "cols": [
                  "000000FF"
                ],
                "ctype": 0,
                "drying_temp": "55",
                "drying_time": "8",
                "id": "3",
                "nozzle_temp_max": "230",
                "nozzle_temp_min": "190",
                "remain": 92,
                "tag_uid": "F2ACC57400000100",
                "tray_color": "000000FF",
                "tray_diameter": "1.75",
                "tray_id_name": "A01-K1",
                "tray_info_idx": "GFA01",
                "tray_sub_brands": "PLA Matte",
                "tray_type": "PLA",
                "tray_uuid": "A90DDCB39A7D4E83B097F35A2883AE04",
                "tray_weight": "1000",
                "xcam_info": "A4388813E803E803CDCC4C3F"
              }
            ]
          }
        ],
        "ams_exist_bits": "7",
        "insert_flag": true,
        "power_on_flag": false,
        "tray_exist_bits": "fff",
        "tray_is_bbl_bits": "fff",
        "tray_now": "0",
        "tray_pre": "0",
        "tray_read_done_bits": "fff",
        "tray_reading_bits": "0",
        "tray_tar": "0",
        "version": 631
      },
      "ams_rfid_status": 2,
      "ams_status": 768,
      "aux_part_fan": true,
      "bed_target_temper": 55.0,
      "bed_temper": 55.0,
      "big_fan1_speed": "10",
      "big_fan2_speed": "8",
      "cali_version": 0,
      "chamber_temper": 39.0,
      "command": "push_status",
      "cooling_fan_speed": "15",
      "ctt": 0,
      "fail_reason": "0",
      "fan_gear": 9876223,
      "filam_bak": [],
      "force_upgrade": false,
      "gcode_file": "/data/Metadata/plate_1.gcode",
      "gcode_file_prepare_percent": "100",
      "gcode_start_time": "1708157572",
      "gcode_state": "RUNNING",
      "heatbreak_fan_speed": "15",
      "hms": [],
      "home_flag": 14800351,
      "hw_switch_state": 1,
      "ipcam": {
        "ipcam_dev": "1",
        "ipcam_record": "disable",
        "mode_bits": 2,
        "resolution": "1080p",
        "rtsp_url": "**REDACTED**",
        "timelapse": "enable",
        "tutk_server": "enable"
      },
      "job_id": "51922308",
      "layer_num": 237,
      "lifecycle": "product",
      "lights_report": [
        {
          "mode": "on",
          "node": "chamber_light"
        },
        {
          "mode": "flashing",
          "node": "work_light"
        }
      ],
      "maintain": 3,
      "mc_percent": 51,
      "mc_print_error_code": "0",
      "mc_print_stage": "2",
      "mc_print_sub_stage": 0,
      "mc_remaining_time": 174,
      "mess_production_state": "active",
      "msg": 0,
      "net": {
        "conf": 16,
        "info": [
          {
            "ip": 124037312,
            "mask": 16777215
          },
          {
            "ip": 0,
            "mask": 0
          }
        ]
      },
      "nozzle_diameter": "0.4",
      "nozzle_target_temper": 220.0,
      "nozzle_temper": 220.0,
      "nozzle_type": "hardened_steel",
      "online": {
        "ahb": true,
        "ext": false,
        "version": 13
      },
      "print_error": 0,
      "print_gcode_action": 0,
      "print_real_action": 0,
      "print_type": "cloud",
      "profile_id": "50979108",
      "project_id": "51849251",
      "queue_est": 0,
      "queue_number": 0,
      "queue_sts": 0,
      "queue_total": 0,
      "s_obj": [],
      "sdcard": true,
      "sequence_id": "1548",
      "spd_lvl": 2,
      "spd_mag": 100,
      "stg": [
        2,
        14,
        1,
        8
      ],
      "stg_cur": 0,
      "subtask_id": "101568675",
      "subtask_name": "moon_lamp_175mm",
      "t_utc": 1708168313761,
      "task_id": "101568674",
      "total_layer_num": 483,
      "upgrade_state": {
        "ahb_new_version_number": "",
        "ams_new_version_number": "",
        "consistency_request": false,
        "dis_state": 0,
        "err_code": 0,
        "ext_new_version_number": "",
        "force_upgrade": false,
        "idx": 13,
        "message": "",
        "module": "null",
        "new_version_state": 2,
        "ota_new_version_number": "",
        "progress": "0",
        "sequence_id": 0,
        "sn": "**REDACTED**",
        "status": "IDLE"
      },
      "upload": {
        "file_size": 0,
        "finish_size": 0,
        "message": "Good",
        "oss_url": "",
        "progress": 0,
        "sequence_id": "0903",
        "speed": 0,
        "status": "idle",
        "task_id": "",
        "time_remaining": 0,
        "trouble_id": ""
      },
      "vt_tray": {
        "bed_temp": "0",
        "bed_temp_type": "0",
        "cali_idx": -1,
        "cols": [
          "FFFFFFFF"
        ],
        "ctype": 0,
        "drying_temp": "0",
        "drying_time": "0",
        "id": "254",
        "nozzle_temp_max": "250",
        "nozzle_temp_min": "200",
        "remain": 0,
        "tag_uid": "0000000000000000",
        "tray_color": "FFFFFFFF",
        "tray_diameter": "0.00",
        "tray_id_name": "",
        "tray_info_idx": "GFU01",
        "tray_sub_brands": "",
        "tray_type": "TPU",
        "tray_uuid": "00000000000000000000000000000000",
        "tray_weight": "0",
        "xcam_info": "000000000000000000000000"
      },
      "wifi_signal": "-46dBm",
      "xcam": {
        "allow_skip_parts": false,
        "buildplate_marker_detector": true,
        "first_layer_inspector": false,
        "halt_print_sensitivity": "medium",
        "print_halt": true,
        "printing_monitor": true,
        "spaghetti_detector": true
      },
      "xcam_status": "0"
    },
    "get_version": {
      "command": "get_version",
      "module": [
        {
          "hw_ver": "",
          "name": "ota",
          "sn": "",
          "sw_ver": "01.07.02.00"
        },
        {
          "hw_ver": "AP05",
          "name": "rv1126",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.28.55"
        },
        {
          "hw_ver": "TH07",
          "name": "th",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.07.12"
        },
        {
          "hw_ver": "MC07",
          "name": "mc",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.22.37/00.00.22.37"
        },
        {
          "hw_ver": "",
          "name": "xm",
          "sn": "",
          "sw_ver": "00.01.02.02"
        },
        {
          "hw_ver": "AMS08",
          "name": "ams/0",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.06.40"
        },
        {
          "hw_ver": "AMS08",
          "name": "ams/1",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.06.40"
        },
        {
          "hw_ver": "AMS08",
          "name": "ams/2",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.06.40"
        },
        {
          "hw_ver": "AHB01",
          "name": "ahb",
          "sn": "**REDACTED**",
          "sw_ver": "00.00.00.42"
        }
      ],
      "sequence_id": "0"
    }
  }
}

Log Extracts

No response

Other Information

No response

The X1 camera feed is no h264. It's mjpeg.

Since there is nothing the integration can do (all we're doing is exposing the existing feed as-is), please move this to the discussion area to see if anyone can provide more advice on how to make the X1 video feed. My recommendation would be to set up go2rtc (as I describe in another discussion) and see if that can be set up to transcode for you if you must have h264.