mrlt8 / docker-wyze-bridge

WebRTC/RTSP/RTMP/LL-HLS bridge for Wyze cams in a docker container
GNU Affero General Public License v3.0
2.45k stars 151 forks source link

Stuck on syntax -- #1207

Closed awwbaker closed 1 month ago

awwbaker commented 1 month ago

Everything worked great for months and months. I discovered API changes as of 1 May. Reinstalled using webui and setting required key & Id. I can view both of the streams in VLC using the below URLs so making it that far. Inspite of showing green check mark in editor, I am getting the below error. A push in right direction would be appreciated. Gratefully Anthony

2024-05-16 19:05:16.134515651 [2024-05-16 15:05:16] frigate.app INFO : Starting Frigate (0.13.2-6476f8a) 2024-05-16 19:05:16.134657842 [2024-05-16 15:05:16] frigate.app INFO : Creating directory: /tmp/cache 2024-05-16 19:05:16.155333657 2024-05-16 19:05:16.155337274 2024-05-16 19:05:16.155341791 Your config file is not valid! 2024-05-16 19:05:16.155344322 Please check the docs at 2024-05-16 19:05:16.155345820 https://docs.frigate.video/configuration/index 2024-05-16 19:05:16.155374952 2024-05-16 19:05:16.155376506 2024-05-16 19:05:16.155378367 Config Validation Errors 2024-05-16 19:05:16.155379837 2024-05-16 19:05:16.155396901 1 validation error for FrigateConfig 2024-05-16 19:05:16.155398051 snapsots 2024-05-16 19:05:16.155399472 extra fields not permitted (type=value_error.extra) 2024-05-16 19:05:16.156446201 Traceback (most recent call last): 2024-05-16 19:05:16.156450037 File "/opt/frigate/frigate/app.py", line 645, in start 2024-05-16 19:05:16.156451615 self.init_config() 2024-05-16 19:05:16.156453414 File "/opt/frigate/frigate/app.py", line 112, in init_config 2024-05-16 19:05:16.156455166 user_config = FrigateConfig.parse_file(config_file) 2024-05-16 19:05:16.156456991 File "/opt/frigate/frigate/config.py", line 1346, in parse_file 2024-05-16 19:05:16.156458545 return cls.parse_obj(config) 2024-05-16 19:05:16.156460421 File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj 2024-05-16 19:05:16.156462284 File "pydantic/main.py", line 341, in pydantic.main.BaseModel.init 2024-05-16 19:05:16.156464244 pydantic.error_wrappers.ValidationError: 1 validation error for FrigateConfig 2024-05-16 19:05:16.156466680 snapsots 2024-05-16 19:05:16.156468461 extra fields not permitted (type=value_error.extra) 2024-05-16 19:05:16.156518741
2024-05-16 19:05:16.156520931
2024-05-16 19:05:16.156540490 End Config Validation Errors 2024-05-16 19:05:16.156542155 ***** 2024-05-16 19:05:17.394285118 [INFO] Service Frigate exited with code 1 (by signal 0) s6-rc: info: service legacy-services: stopping s6-rc: info: service legacy-services successfully stopped s6-rc: info: service nginx: stopping s6-rc: info: service go2rtc-healthcheck: stopping 2024-05-16 19:05:17.408039070 [INFO] The go2rtc-healthcheck service exited with code 256 (by signal 15) s6-rc: info: service go2rtc-healthcheck successfully stopped 2024-05-16 19:05:17.428031136 [INFO] Service NGINX exited with code 0 (by signal 0) s6-rc: info: service nginx successfully stopped s6-rc: info: service nginx-log: stopping s6-rc: info: service frigate: stopping s6-rc: info: service frigate successfully stopped s6-rc: info: service go2rtc: stopping s6-rc: info: service frigate-log: stopping s6-rc: info: service nginx-log successfully stopped 2024-05-16 19:05:17.431161569 exit with signal: terminated s6-rc: info: service frigate-log successfully stopped 2024-05-16 19:05:17.435882415 [INFO] The go2rtc service exited with code 0 (by signal 0) s6-rc: info: service go2rtc successfully stopped s6-rc: info: service go2rtc-log: stopping s6-rc: info: service go2rtc-log successfully stopped s6-rc: info: service log-prepare: stopping s6-rc: info: service s6rc-fdholder: stopping s6-rc: info: service log-prepare successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service s6rc-fdholder successfully stopped s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped

`mqtt: host: 192.168.4.23 user: mqtt_user password: mqtt_user

detectors: coral: type: edgetpu device: usb go2rtc: streams: breezeway:

ffmpeg: hwaccel_args: preset-vaapi

hwaccel_args: -hwaccel_output_format qsv -c:v h264_qsv

output_args:

preset-record-generic-audio-copy

record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy # -an

record: enabled: True retain: days: 1 mode: motion events: retain: default: 1 mode: active_objects cameras: front_door_main: ffmpeg: inputs:

arbigator commented 1 month ago

You need to add the username and API key generated by the new update to your frigate rtsp address. check the streams address to find it.

Your new frigate config should look something like this:

go2rtc:
    streams:
        breezeway:
            - rtsp://wb:yourapikeyhere12345@192.168.4.23:8554/breezeway
        garage:

Also, make sure your code is properly formatted, frigate is super picky about that, and it's easier to read for everyone here :)

on github you can insert a code block by wrapping it with 3 backticks ```

awwbaker commented 1 month ago

Dear Mr Arbigator I created a new set of API and ID keys, Added to the Wyze Bridge Configuration. I used https://yamlchecker.com/ to validate the format of the YAML Code. QUESTION: I only modified the rtsp url in the go2rtc/stream block. Do I need to change it throughout the entire file? Excuse my ignorance....please. Hopefully I have the code formatted correctly below. All of that said it appears I have the same exact error. Please Thought? Appreciate the help! VR Anthony Baker

2024-05-17 16:46:55.894151547 [INFO] Preparing Frigate... 2024-05-17 16:46:55.894384029 [INFO] Starting NGINX... 2024-05-17 16:46:55.896221036 [INFO] Preparing new go2rtc config... s6-rc: info: service legacy-services successfully started 2024-05-17 16:46:55.913840613 [INFO] Starting Frigate... 2024-05-17 16:46:55.952688860 [INFO] Got IP address from supervisor: 192.168.4.23 2024-05-17 16:46:56.001121456 [INFO] Got WebRTC port from supervisor: 8555 2024-05-17 16:46:56.354173457 [INFO] Starting go2rtc... 2024-05-17 16:46:56.451931863 12:46:56.451 INF go2rtc version 1.8.4 linux/amd64 2024-05-17 16:46:56.452493665 12:46:56.452 INF [api] listen addr=:1984 2024-05-17 16:46:56.452497814 12:46:56.452 INF [rtsp] listen addr=:8554 2024-05-17 16:46:56.452812470 12:46:56.452 INF [webrtc] listen addr=:8555 2024-05-17 16:46:57.487119356 [2024-05-17 12:46:57] frigate.app INFO : Starting Frigate (0.13.2-6476f8a) 2024-05-17 16:46:57.487254191 [2024-05-17 12:46:57] frigate.app INFO : Creating directory: /tmp/cache 2024-05-17 16:46:57.506406439 2024-05-17 16:46:57.506409950 2024-05-17 16:46:57.506414142 Your config file is not valid! 2024-05-17 16:46:57.506416612 Please check the docs at 2024-05-17 16:46:57.506418086 https://docs.frigate.video/configuration/index 2024-05-17 16:46:57.506445560 2024-05-17 16:46:57.506447062 2024-05-17 16:46:57.506448921 Config Validation Errors 2024-05-17 16:46:57.506450340 2024-05-17 16:46:57.506469578 1 validation error for FrigateConfig 2024-05-17 16:46:57.506470722 snapsots 2024-05-17 16:46:57.506489053 extra fields not permitted (type=value_error.extra) 2024-05-17 16:46:57.507447961 Traceback (most recent call last): 2024-05-17 16:46:57.507451492 File "/opt/frigate/frigate/app.py", line 645, in start 2024-05-17 16:46:57.507453020 self.init_config() 2024-05-17 16:46:57.507454682 File "/opt/frigate/frigate/app.py", line 112, in init_config 2024-05-17 16:46:57.507457008 user_config = FrigateConfig.parse_file(config_file) 2024-05-17 16:46:57.507459520 File "/opt/frigate/frigate/config.py", line 1346, in parse_file 2024-05-17 16:46:57.507461494 return cls.parse_obj(config) 2024-05-17 16:46:57.507463761 File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj 2024-05-17 16:46:57.507465998 File "pydantic/main.py", line 341, in pydantic.main.BaseModel.init 2024-05-17 16:46:57.507468410 pydantic.error_wrappers.ValidationError: 1 validation error for FrigateConfig 2024-05-17 16:46:57.507471684 snapsots 2024-05-17 16:46:57.507490753 extra fields not permitted (type=value_error.extra) 2024-05-17 16:46:57.507536994 2024-05-17 16:46:57.507539132 2024-05-17 16:46:57.507540913 End Config Validation Errors 2024-05-17 16:46:57.507562528 ***** 2024-05-17 16:46:58.779275237 [INFO] Service Frigate exited with code 1 (by signal 0) s6-rc: info: service legacy-services: stopping s6-rc: info: service legacy-services successfully stopped s6-rc: info: service nginx: stopping s6-rc: info: service go2rtc-healthcheck: stopping 2024-05-17 16:46:58.790695088 [INFO] The go2rtc-healthcheck service exited with code 256 (by signal 15) s6-rc: info: service go2rtc-healthcheck successfully stopped 2024-05-17 16:46:58.808989856 [INFO] Service NGINX exited with code 0 (by signal 0) s6-rc: info: service nginx successfully stopped s6-rc: info: service nginx-log: stopping s6-rc: info: service frigate: stopping s6-rc: info: service frigate successfully stopped s6-rc: info: service go2rtc: stopping s6-rc: info: service frigate-log: stopping s6-rc: info: service nginx-log successfully stopped 2024-05-17 16:46:58.812062894 exit with signal: terminated s6-rc: info: service frigate-log successfully stopped 2024-05-17 16:46:58.816962309 [INFO] The go2rtc service exited with code 0 (by signal 0) s6-rc: info: service go2rtc successfully stopped s6-rc: info: service go2rtc-log: stopping s6-rc: info: service go2rtc-log successfully stopped s6-rc: info: service log-prepare: stopping s6-rc: info: service s6rc-fdholder: stopping s6-rc: info: service log-prepare successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service s6rc-fdholder successfully stopped s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped

mqtt:
  host: 192.168.4.23
  user: mqtt_user
  password: mqtt_user

detectors:
  coral:
    type: edgetpu
    device: usb
go2rtc:
   streams:
       breezeway:
           - rtsp://wb:5f1b0f86-5351-4db4-8166-1f33b4aa3004@192.168.4.23:554/breezeway
       garage:
           - rtsp://wb:5f1b0f86-5351-4db4-8166-1f33b4aa3004@192.168.4.23:554/garage
snapsots:
  enabled: True
  clean_copy: True
  timestamp: True
  # Optional: draw bounding box on the snapshots (default: shown below)
  bounding_box: True
  retain:
    # Required: Default retention days (default: shown below)
    default: 1
    # Optional: Per object retention days
    objects:
      cat: 1
      dog: 1
      person: 1
detect:
  enabled: True
  width: 1280
  height: 720
  fps: 5
  #objects:
  #track:
  #- person
  #- cat
  #- bird
  #- dog

ffmpeg:
  hwaccel_args: preset-vaapi
#  hwaccel_args: -hwaccel_output_format qsv -c:v h264_qsv
#    output_args: 
#      preset-record-generic-audio-copy
#  record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy # -an
record:
 enabled: True
 retain:
   days: 1
   mode: motion
 events:
   retain:
     default: 1
     mode: active_objects
cameras:
 front_door_main: 
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/front_door_main
          roles:
            - record
            - rtmp
 front_door_sub: 
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/front_door_sub
          roles:
            - detect
    objects:
      track:
        - cat
        - dog
        - person
    zones:
      alienzone:
        coordinates: 462,720,972,720,738,535,455,552
 breezeway: 
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/breezeway
          roles:
            - record
            - rtmp
            - detect
    objects:
      track:
        - cat
        - dog
        - person
    zones:
      deerzone:
        coordinates: 407,720,0,720,0,468,412,193,476,191
 garage: 
  ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/garage
          roles:
            - record
            - rtmp
            - detect
objects:
      track:
        - cat
        - dog
        - person
arbigator commented 1 month ago
2024-05-17 16:46:57.506448921 *** Config Validation Errors ***
2024-05-17 16:46:57.506450340 *************************************************************
2024-05-17 16:46:57.506469578 1 validation error for FrigateConfig
2024-05-17 16:46:57.506470722 snapsots

Looks like you have a typo in your config Should be snapshots :)

snapsots:
  enabled: True
  clean_copy: True
  timestamp: True
  # Optional: draw bounding box on the snapshots (default: shown below)
  bounding_box: True
  retain:
    # Required: Default retention days (default: shown below)
    default: 1
    # Optional: Per object retention days
    objects:
      cat: 1
      dog: 1
      person: 1

And to answer your question, no, you should only have to change the address in the go2rtc section, as the ffmpeg stream is coming from frigate's built in go2rtc server.

awwbaker commented 1 month ago

Dear Mr Arbigator, Thank you!!!!!!!

mrlt8 commented 1 month ago

@awwbaker please try not to include your API key/id as those are part of your wyze credentials.

I know it's a little confusing, but you need to use the random API Key from the bridge if you have WB_AUTH enabled, which you can find on the bottom of your bridge WebUI like this:

random key

and use that key instead of the api key from wyze:

breezeway:     
      - rtsp://wb:<wb_api key>@192.168.4.23:554/breezeway
awwbaker commented 1 month ago

Still getting the connection refused error. I changed rtsp credentials to match the WB Api key. Any thoughts would be appreciated. Thank you, Anthony

2024-05-20 14:38:32.166506617 [INFO] Starting Frigate... 2024-05-20 14:38:32.202435457 [INFO] Got IP address from supervisor: 192.168.4.23 2024-05-20 14:38:32.250977625 [INFO] Got WebRTC port from supervisor: 8555 2024-05-20 14:38:32.568039561 [INFO] Starting go2rtc... 2024-05-20 14:38:32.666725319 10:38:32.666 INF go2rtc version 1.8.4 linux/amd64 2024-05-20 14:38:32.667354634 10:38:32.667 INF [rtsp] listen addr=:8554 2024-05-20 14:38:32.667359350 10:38:32.667 INF [api] listen addr=:1984 2024-05-20 14:38:32.667599634 10:38:32.667 INF [webrtc] listen addr=:8555 2024-05-20 14:38:33.720927584 [2024-05-20 10:38:33] frigate.app INFO : Starting Frigate (0.13.2-6476f8a) 2024-05-20 14:38:33.721048598 [2024-05-20 10:38:33] frigate.app INFO : Creating directory: /tmp/cache 2024-05-20 14:38:33.762044762 [2024-05-20 10:38:33] peewee_migrate.logs INFO : Starting migrations 2024-05-20 14:38:33.767614390 [2024-05-20 10:38:33] peewee_migrate.logs INFO : There is nothing to migrate 2024-05-20 14:38:33.861352205 [2024-05-20 10:38:33] frigate.app INFO : Recording process started: 307 2024-05-20 14:38:33.869118647 [2024-05-20 10:38:33] frigate.app INFO : go2rtc process pid: 88 2024-05-20 14:38:33.911369939 [2024-05-20 10:38:33] frigate.app INFO : Output process started: 319 2024-05-20 14:38:33.932765355 [2024-05-20 10:38:33] frigate.app INFO : Camera processor started for doorbell: 326 2024-05-20 14:38:33.963505046 [2024-05-20 10:38:33] frigate.app INFO : Camera processor started for breezeway: 328 2024-05-20 14:38:33.963511404 [2024-05-20 10:38:33] frigate.app INFO : Capture process started for doorbell: 330 2024-05-20 14:38:33.963518360 [2024-05-20 10:38:33] frigate.app INFO : Capture process started for breezeway: 332 2024-05-20 14:38:33.996790397 10:38:33.996 WRN [rtsp] error="streams: dial tcp 192.168.4.23:554: connect: connection refused" stream=breezeway 2024-05-20 14:38:33.999985914 [2024-05-20 10:38:33] frigate.video ERROR : breezeway: Unable to read frames from ffmpeg process. 2024-05-20 14:38:34.000239285 [2024-05-20 10:38:33] frigate.video ERROR : breezeway: ffmpeg process is not running. exiting capture thread... 2024-05-20 14:38:37.065566995 [2024-05-20 10:38:33] detector.coral INFO : Starting detection process: 317 2024-05-20 14:38:37.081651553 [2024-05-20 10:38:33] frigate.detectors.plugins.edgetpu_tfl INFO : Attempting to load TPU as usb 2024-05-20 14:38:37.082809308 [2024-05-20 10:38:37] frigate.detectors.plugins.edgetpu_tfl INFO : TPU found 2024-05-20 14:38:42.145232165 [INFO] Starting go2rtc healthcheck service... 2024-05-20 14:38:53.998643904 [2024-05-20 10:38:53] watchdog.breezeway ERROR : Ffmpeg process crashed unexpectedly for breezeway. 2024-05-20 14:38:53.998957734 [2024-05-20 10:38:53] watchdog.breezeway ERROR : The following ffmpeg logs include the last 100 lines prior to exit. 2024-05-20 14:38:53.999191392 [2024-05-20 10:38:53] ffmpeg.breezeway.detect ERROR : [rtsp @ 0x561aa0de8c40] method DESCRIBE failed: 404 Not Found 2024-05-20 14:38:53.999391076 [2024-05-20 10:38:53] ffmpeg.breezeway.detect ERROR : rtsp://127.0.0.1:8554/breezeway: Server returned 404 Not Found 2024-05-20 14:38:54.036004214 10:38:54.035 WRN [rtsp] error="streams: dial tcp 192.168.4.23:554: connect: connection refused" stream=breezeway 2024-05-20 14:38:54.039226126 [2024-05-20 10:38:54] frigate.video ERROR : breezeway: Unable to read frames from ffmpeg process. 2024-05-20 14:38:54.040026752 [2024-05-20 10:38:54] frigate.video ERROR : breezeway: ffmpeg process is not running. exiting capture thread...

Bridge Snap


mqtt:
  host: 192.168.4.23
  user: mqtt_user
  password: mqtt_user

detectors:
  coral:
    type: edgetpu
    device: usb
go2rtc:
  streams:
    doorbell: 
      - rtsp://admin:Stella62@192.168.4.158:554/h264Preview_01_main
      - "ffmpeg:doorbell#audio=opus"
    breezeway:     
      - rtsp://wb:_thFRXyCCxgXKJZoTEwGkHt00H52lfpVKoEpiGI8@192.168.4.23:554/breezeway

cameras:
  doorbell:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/doorbell
          input_args: preset-rtsp-restream
          roles:
            - detect
            - record
    detect:
      width: 640
      height: 480
    objects:
      track:
        - person
        - cat
        - dog
        - bear
  breezeway:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/breezeway
          input_args: preset-rtsp-restream
          roles:
            - detect
            - record
    detect:
      width: 640
      height: 480
    objects:
      track:
        - person
        - cat
        - dog
        - bear
mrlt8 commented 1 month ago

The bridge uses port 8544 by default, but I think you have it set to 554:

192.168.4.23:554/breezeway

Should be

192.168.4.23:8554/breezeway
awwbaker commented 1 month ago

Mr mrlt8 the 8554 port number was the problem. Thank you for your help and patience, very much apptreciated. VR Anthony image

mrlt8 commented 1 month ago

Awesome! I'll go ahead and mark this issue as resolved, but feel free to open a new issue if you need any additional help.