Home

Awesome

Hello!

This is a RTSP server for WYZE cameras of the GWELL variety.

preface

THANK YOU to Carson Loyal (carTloyal123) for the libraries to connect and get streams and pedroSG94 for RTSP related android libraries. I used the following repos:

Features

Prereqs

To use this, docker compose is easiest.

  1. copy sample.env to .env - update your details. Wyze API keys can be shared with wyze-bridge, uses the same variables:
WYZE_EMAIL=
WYZE_PASSWORD= 
API_ID=
API_KEY= 
  1. Optional: Expose the ports you mapped your cameras to in .env from the android container - I personally just share a network between frigate and this project so that I don't need to. See the example docker-compose.yml files in this repo.
  2. build and start the thing:
docker compose build
docker compose up -d

you can view the android container over adb with something like scrcpy: scrcpy -s localhost:5555 - that repo is here

Support

File an issue with as much detail as you can. I have limited time to work on this, but I'll try to help. I've replaced my wyze-gwell cameras with tapo c120's for better low-light support and native RTSP, but I will attempt to repro anything you might run into.

Development

I am using Android Studio for the android app, and just attaching to my remote docker-hosted redroid container (adb connect [arch box ip address]:5555). debugging/remote builds work, but container reboots will not persist your /data partition, so be sure to rebuild/restart with updated sources. If you need to stop the running cryze version, adb shell setprop breakloop 1 will stop the loop that ensures cryze is running. You'll need to uninstall the current version to install your local build and android studio isn't very good at figuring this out.

If you choose to build the android app locally, you can override the rtsp server and cryze_api URI.

The api solution, you can just dotnet watch run or if you don't want to do that, docker build -t cryzeapi . ; docker run --rm -it --env-file=..\.env -v=".\data.json:/data/data.json" -p="8080:8080" cryzeapi

HELP NEEDED (backlog?)

Camera configurations

The configuration is one of three ways:

  1. webui, port 8080
  2. edit the json yourself
  3. just let the app scrape your cameras
  4. set the WyzeSdkServiceConfiguration__ValidMarsDevicePrefix environment variable =device1,device2,etc in your docker-compose on the API service and restart. on reboot, it will only scrape and add devices matching whatever you set (as a prefix, which can also be the entire device name)
  5. if you do not set your own route, the default route is live/nickname - where nickname is all lowecase and spaces are underscores

Webapp

Account Settings:

a page with settings for your wyze account

Camera Editor: list of cameras and the stream subpath the streams will be sent to

Message Viewer: A view of the json structure of messages from a camera

The homepage might soon have a live view of your cameras.

License