[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.