Open mr-bobdobalina opened 1 year ago
I'm looking into the native kvs.
The display on my laptop seems to have died (flexgate?) so I'm a little behind on things.
Are you referring to Amazon Kinesis Video Streams? Have you seen some indications that this is the cloud platform behind these cameras? Just want to help and look in the right direction if possible here! I am mainly interested in the video doorbell pro so I'll start poking around for how to wake the thing/initiate video streams. Thanks for staying on this! @mrlt8
Been a long time supporter of Wyze back to their first camera. Recently have been beefing up my surveillance and with the Black Friday deals got a few of the new OGs, Pan v3, and the Floodlight Pro. I'll throw my hat into the ring if any testing is needed with the new cameras! Great work as always @mrlt8 !
Thanks @mrlt8 for the updates, and for the bridge, without it I wouldn't have so many of their cameras. Hoping to get these OG and OG Telephoto's functional soon :)
@mrlt8 any update on this? I am working on an android app that uses the Tencent iotvideo sdk that tinycam and the Wyze app use to be a shim app for getting video data. This is going to be quite a bit of work it seems so wanted to see if there is progress in any other direction I should be aware of here?
EDIT: Apologies, got some feeds mixed up, OG does NOT stream
Just ran into this issue myself after getting a defective v3, I got and extra OG cam.
Is there a way to disable the audio completely in the mean time to get this working? As I'm not really concerned with recording audio.
Also @carTloyal123, an app sounds great, personally I'm using Frigate and Frigate Viewer ( no affiliation and only Android ). Basically I'm using this project to generate the streams needed.
And finally to @mrlt8 Awesome project keep up the great work!
2023-12-20 12:15:53
2023-12-20 12:15:53 [WyzeBridge] ♻️ Clearing local cache...
2023-12-20 12:15:53 [WyzeBridge] 🔍 Could not find local cache for 'auth'
2023-12-20 12:15:53 [WyzeBridge] ☁️ Fetching 'auth' from the Wyze API...
2023-12-20 12:15:53 * Serving Flask app 'frontend'
2023-12-20 12:15:53 * Debug mode: off
2023-12-20 12:15:53 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
2023-12-20 12:15:53 * Running on all addresses (0.0.0.0)
2023-12-20 12:15:53 * Running on http://127.0.0.1:5000
2023-12-20 12:15:53 * Running on http://172.18.0.5:5000
2023-12-20 12:15:53 [WyzeBridge] Press CTRL+C to quit
2023-12-20 12:15:54 [WyzeBridge] 💾 Saving 'auth' to local cache...
2023-12-20 12:15:54 [WyzeBridge] 🔍 Could not find local cache for 'user'
2023-12-20 12:15:54 [WyzeBridge] ☁️ Fetching 'user' from the Wyze API...
2023-12-20 12:15:54 [WyzeBridge] 💾 Saving 'user' to local cache...
2023-12-20 12:15:54 [WyzeBridge] 🔍 Could not find local cache for 'cameras'
2023-12-20 12:15:54 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API...
2023-12-20 12:15:55 [WyzeBridge] [API] Fetched [5] cameras
2023-12-20 12:15:55 [WyzeBridge] 💾 Saving 'cameras' to local cache...
2023-12-20 12:15:55 [WyzeBridge] [+] Adding Pet Cam [WYZE_CAKP2JFUS]
2023-12-20 12:15:55 [WyzeBridge] [+] Adding Back Yard Cam [GW_GC1]
2023-12-20 12:15:55 [WyzeBridge] [GW_GC1] Back Yard Cam not supported
2023-12-20 12:15:55 [WyzeBridge] [+] Adding Driveway Entrance [WYZE_CAKP2JFUS]
2023-12-20 12:15:55 [WyzeBridge] [+] Adding Driveway North [WYZEC1-JZ]
2023-12-20 12:15:55 [WyzeBridge] [+] Adding Front Door [WYZEC1-JZ]```
Just ran into this issue myself after getting a defective v3, I got and extra OG cam.
Testing on Windows 10 Pro 22H2 with Docker Desktop 4.26.1 (131620)
- HLS Video works in browser
- RTMP works with VLC
- RTSP works with VLC
- Snapshot works
- Thumbnail works
Is there a way to disable the audio completely in the mean time to get this working? As I'm not really concerned with recording audio.
Also @carTloyal123, an app sounds great, personally I'm using Frigate and Frigate Viewer ( no affiliation and only Android ). Basically I'm using this project to generate the streams needed.
And finally to @mrlt8 Awesome project keep up the great work!
2023-12-20 12:15:53 2023-12-20 12:15:53 [WyzeBridge] ♻️ Clearing local cache... 2023-12-20 12:15:53 [WyzeBridge] 🔍 Could not find local cache for 'auth' 2023-12-20 12:15:53 [WyzeBridge] ☁️ Fetching 'auth' from the Wyze API... 2023-12-20 12:15:53 * Serving Flask app 'frontend' 2023-12-20 12:15:53 * Debug mode: off 2023-12-20 12:15:53 [WyzeBridge] WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. 2023-12-20 12:15:53 * Running on all addresses (0.0.0.0) 2023-12-20 12:15:53 * Running on http://127.0.0.1:5000 2023-12-20 12:15:53 * Running on http://172.18.0.5:5000 2023-12-20 12:15:53 [WyzeBridge] Press CTRL+C to quit 2023-12-20 12:15:54 [WyzeBridge] 💾 Saving 'auth' to local cache... 2023-12-20 12:15:54 [WyzeBridge] 🔍 Could not find local cache for 'user' 2023-12-20 12:15:54 [WyzeBridge] ☁️ Fetching 'user' from the Wyze API... 2023-12-20 12:15:54 [WyzeBridge] 💾 Saving 'user' to local cache... 2023-12-20 12:15:54 [WyzeBridge] 🔍 Could not find local cache for 'cameras' 2023-12-20 12:15:54 [WyzeBridge] ☁️ Fetching 'cameras' from the Wyze API... 2023-12-20 12:15:55 [WyzeBridge] [API] Fetched [5] cameras 2023-12-20 12:15:55 [WyzeBridge] 💾 Saving 'cameras' to local cache... 2023-12-20 12:15:55 [WyzeBridge] [+] Adding Pet Cam [WYZE_CAKP2JFUS] 2023-12-20 12:15:55 [WyzeBridge] [+] Adding Back Yard Cam [GW_GC1] 2023-12-20 12:15:55 [WyzeBridge] [GW_GC1] Back Yard Cam not supported 2023-12-20 12:15:55 [WyzeBridge] [+] Adding Driveway Entrance [WYZE_CAKP2JFUS] 2023-12-20 12:15:55 [WyzeBridge] [+] Adding Driveway North [WYZEC1-JZ] 2023-12-20 12:15:55 [WyzeBridge] [+] Adding Front Door [WYZEC1-JZ]```
WAIT OG CAM LIVESTREAMS WORKING? THEY FIGURED IT OUT?
@Simcha-Orenbuch
Probably not:
2023-12-20 12:15:55 [WyzeBridge] [GW_GC1] Back Yard Cam not supported
So, quick update on this: I have been working on an android app bundled in a docker container that implements the native libiotvideo.so and libiotp2pav.so libraries. I have successfully completed the grunt work and given an accessId and accessToken for a corresponding deviceId I can output a YUV video stream. My next step is see how we can bring this stream into the bridge and to package my work into a docker container that simply exposes a websocket api for moving config/video data in and out of the container. I will post a repo link once I get it organized. @mrlt8 let me know what you think!
(This was all tested using my video doorbell pro but I will test with other camera models as needed)
(This was all tested using my video doorbell pro but I will test with other camera models as needed)
I have an extra OG, I can do some testing with it if needed, but you'd need to walk me through the majority of it, not as experienced as nearly anyone in this forum.
(This was all tested using my video doorbell pro but I will test with other camera models as needed)
If there's an easy way to test I can. I have doorbell pros, OGs, etc. I'm using portainer ATM for the bridge.
I will have to try to pickup a gwell cam to test things out and see if I can help!
I will have to try to pickup a gwell cam to test things out and see if I can help!
Awesome thank you. I can also get them to test and am wondering if you are interested in me integrating this work with the bridge or had any idea of how to connect the two? Right now I don't have any of the authentication implemented and generate the accessId and accessToken from the gw_user endpoint using the auth mechanisms from wyze-sdk. I then pass the auth to the new application over a simple websocket connection. Essentially I want the new docker container to be passed accessId, accessToken, and a deviceId and then it outputs raw YUV. This stream could be consumed by the bridge and passed out over rtsp or other. For the user of the bridge it could just be a matter of a config option or environment variable to run the bridge with the additional container. What do you think?
Also, thanks for everyone willing to test alpha features and I will update this thread with ways to test in the future as integration develops more.
I also have a OG that I can help test with if needed as well as 2 local v3's and 2 remote v3's. I'm not familiar with reverse engineering but have compiled and loaded custom firmware for the v2 cams.
It's a shame these are so different, the little spotlight is cool and the picture quality especially at night is pretty impressive for the price.
@carTloyal123,
I have been working on an android app bundled in a docker container that implements the native libiotvideo.so and libiotp2pav.so libraries.
What container project are/would you [be] using? docker-android, redroid?
While I realize you're just being practical (I would be doing the same, if I had time), wouldn't your proposed approach require at least 1GB (or for speed maybe even 1.5-2GB) of RAM? And the bootup speed be in the realm of at least 30 full seconds?
I guess I'm just curious what you're using to defeat the major drawbacks of using a full-blown Android solution in this context.
I will post a repo link once I get it organized.
That would be excellent. Please, the sooner the better since people often (I've done it, lol) suddenly go missing and all of their proposed work is lost, never to be heard from again. 😜
Thank you for your hard work!!!
I have not been able to run an android emulator in a docker container on my main dev machine which is an m2 macbook pro so that is slowing me down at the moment. I have tried all readily available android emulator docker solutions. As far as I can tell there is no way to avoid using a full android emulator so take it or leave it or come up with a new solution.
I will post the new repo soon, I have it in progress but its not ready for public consumption.
As far as I can tell there is no way to avoid using a full android emulator
Keep in mind you may also be able to release it on the play store, or at least give access to an APK that can be installed manually, to allow a real device to run it. I'm sure I'm not the only one that has a handful of old Android devices lying around 😂 This bridge just needs to be able to connect to the Android bridge, whether emulator or real device. I also have an Android Things dev device.
I have not been able to run an android emulator in a docker container on my main dev machine which is an m2 macbook pro so that is slowing me down at the moment.
That's your main problem: Mac M2 If you had an x86 machine you wouldn't need an emulator at all. Redroid doesn't even emulate at all as long as you have x86_64 versions of the library. That would be ideal for most.
I hate to say it, but due to Apple's extreme proprietary nature, Mac OS isn't exactly what most users on here are going to be using, ever.
As far as I can tell there is no way to avoid using a full android emulator
Keep in mind you may also be able to release it on the play store, or at least give access to an APK that can be installed manually, to allow a real device to run it. I'm sure I'm not the only one that has a handful of old Android devices lying around 😂 This bridge just needs to be able to connect to the Android bridge, whether emulator or real device. I also have an Android Things dev device.
I have no intention of releasing it to the play store. If you want to use it on a spare android device then you can load it manually.
I have not been able to run an android emulator in a docker container on my main dev machine which is an m2 macbook pro so that is slowing me down at the moment.
That's your main problem: Mac M2 If you had an x86 machine you wouldn't need an emulator at all. Redroid doesn't even emulate at all as long as you have x86_64 versions of the library. That would be ideal for most.
I hate to say it, but due to Apple's extreme proprietary nature, Mac OS isn't exactly what most users on here are going to be using, ever.
I know how platform architectures work and was not asking for a recitation of my problem but feel free to offer a solution if you wish to comment further. The problem is not apple silicone, but the lack of support from androids command line tools which enable you to automate an emulator on any ARM based device. We also do not have x86 versions for the libraries at all. They are also JNI libraries meaning you basically have to use a real device or emulator to get the JVM environment correct. Again, solutions are welcome but rather not more problems or issues already stated
Are there any updates available? I have 2 OG cams and would be happy to help with the testing.
Cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
Awesome news! Thank you!
From: carTloyal123 @.> Sent: Wednesday, February 21, 2024 3:06 PM To: mrlt8/docker-wyze-bridge @.> Cc: dinan5 @.>; Comment @.> Subject: Re: [mrlt8/docker-wyze-bridge] Wyze Cam OG not working (Issue #677)
Cryzehttps://github.com/carTloyal123/cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
- Reply to this email directly, view it on GitHubhttps://github.com/mrlt8/docker-wyze-bridge/issues/677#issuecomment-1957812758, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARAH6ECNZAQ2YENSFINDE2LYUZHSBAVCNFSM6AAAAAAT7SO4VKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJXHAYTENZVHA. You are receiving this because you commented.Message ID: @.**@.>>
Cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
Can you add some documentation on how to install this? I have docker / portainer but not super familiar on adding things on my own yet.
Are the Wyze Cam Pan v3 cameras Gwell based?
[mg]
On Wed, Feb 21, 2024 at 12:10 PM dinan5 @.***> wrote:
Awesome news! Thank you!
From: carTloyal123 @.> Sent: Wednesday, February 21, 2024 3:06 PM To: mrlt8/docker-wyze-bridge @.> Cc: dinan5 @.>; Comment @.> Subject: Re: [mrlt8/docker-wyze-bridge] Wyze Cam OG not working (Issue
677)
Cryzehttps://github.com/carTloyal123/cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
- Reply to this email directly, view it on GitHub< https://github.com/mrlt8/docker-wyze-bridge/issues/677#issuecomment-1957812758>, or unsubscribe< https://github.com/notifications/unsubscribe-auth/ARAH6ECNZAQ2YENSFINDE2LYUZHSBAVCNFSM6AAAAAAT7SO4VKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJXHAYTENZVHA
. You are receiving this because you commented.Message ID: @.**@.>>
— Reply to this email directly, view it on GitHub https://github.com/mrlt8/docker-wyze-bridge/issues/677#issuecomment-1957821185, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEIMUQNHMJ7SHPLSBDRU2DYUZID5AVCNFSM6AAAAAAT7SO4VKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJXHAZDCMJYGU . You are receiving this because you are subscribed to this thread.Message ID: @.***>
@talormanda as mentioned, I am in the process of getting the project ready for full release. Once that is done, check back to the Cryze repo for install instructions.
@quistuipater do you know the model number of the OG cam? Or have the mac address of one? I think they all start with "GW_"
Edit: yes, the OG and doorbell pro both have the GW model number so it should be safe to assume they are both Gwell Based at the very least.
@quistuipater
Are the Wyze Cam Pan v3 cameras Gwell based?
No, the Pan v3 works with this bridge, it is not Gwell
Gracias.
[mg]
On Thu, Feb 22, 2024 at 6:46 AM Joe @.***> wrote:
@quistuipater https://github.com/quistuipater
Are the Wyze Cam Pan v3 cameras Gwell based?
No, the Pan v3 works with this bridge, it is not Gwell
— Reply to this email directly, view it on GitHub https://github.com/mrlt8/docker-wyze-bridge/issues/677#issuecomment-1959604605, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEIMUSJJE3553ILDV67JBTYU5K4JAVCNFSM6AAAAAAT7SO4VKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJZGYYDINRQGU . You are receiving this because you were mentioned.Message ID: @.***>
@talormanda as mentioned, I am in the process of getting the project ready for full release. Once that is done, check back to the Cryze repo for install instructions.
@quistuipater do you know the model number of the OG cam? Or have the mac address of one? I think they all start with "GW_"
Edit: yes, the OG and doorbell pro both have the GW model number so it should be safe to assume they are both Gwell Based at the very least.
Do you still need a MAC address or you got the info you needed?
@talormanda as mentioned, I am in the process of getting the project ready for full release. Once that is done, check back to the Cryze repo for install instructions.
@quistuipater do you know the model number of the OG cam? Or have the mac address of one? I think they all start with "GW_"
Edit: yes, the OG and doorbell pro both have the GW model number so it should be safe to assume they are both Gwell Based at the very least.
Do you still need a MAC address or you got the info you needed?
I am good, I had mis-read that and I forgot about the list of devices on the home page. Thank you!
is there any update on this? is anyone working on to solve this issue?
Cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
Please read the entire thread before posting questions. I have a project that addresses the OG cam and Video Doorbell Pro V1 reference above. @imbkr
Cryze is my project for accessing Wyze Gwell based cameras like the OG Cam, Video Doorbell Pro and I am sure there are others. I have a working prototype and am currently working on a full integration with other projects like this one. Feel free to check that repo periodically as I iron out the kinks and get things release ready.
Please read the entire thread before posting questions. I have a project that addresses the OG cam and Video Doorbell Pro V1 reference above. @imbkr
In some fairness it doesn't appear the documentation really ties it all together. E.g. what to do after the APK is installed in the emulator. (Just to name one)
Correct that Cryze is not fully fleshed out as it is a hobby project and is a large undertaking (feel free to clone and make pull requests if you want progress on your own watch. The question was if there was someone/something working towards a solve for this which indeed there is and has been mentioned multiple times in this thread hence my reply. @nbetcher you should not have to worry about the APK at all. If you want clarity on setup please address it to the main Cryze repo
has there been a solution in this repo yet?
I've got a hard fork of cryze that is working. It's a bit CPU thirsty but it is actually streaming video to my NVR. I'm activly working on getting hardware acceleration working to try to reduce the footprint. github.com/xerootg/cryze_v2
That's great! thanks. Will try it.
I'm actively working on it, expect it to both change fundamentally and for there to be issues. I'm likely going to be pulling the raw h264 frames out of android into a third container to handle the RTSP side, possibly today and likely by tomorrow. The CPU consumption of Android's MediaCodec without hardware acceleration is absolutely mind boggling and I really don't feel like recompiling android for the possibility that it might be slightly more performant. I'm using just over 1 core per camera on an i7-12650H which I find totally unacceptable. I did a spike where I rendered the raw output into a MJPEG stream and that was actually worse than double encoding like it does now.
Well, we really appreciate the effort you are putting into it, thank you again!
Alright, the raw streamer in my cryze fork seems pretty solid. its been running for a couple days. I got it to stream the raw h264 packets to a tcp client, like ffmpeg, so you'll need to use an intermediary to use my fork like go2rtc (which I am using with frigate). I seriously doubt the gwell cameras will ever be supported outside of an android emulator, as tencent's library uses message queueing to a proprietary backend to get the stream contents. I'm probably going to get a different doorbell after this experience, I'm disappointed in Wyze. The whole gwell API and integration of the gwell products into the wyze platform screams outsourcing chaos.
Alright, the raw streamer in my cryze fork seems pretty solid. its been running for a couple days. I got it to stream the raw h264 packets to a tcp client, like ffmpeg, so you'll need to use an intermediary to use my fork like go2rtc (which I am using with frigate). I seriously doubt the gwell cameras will ever be supported outside of an android emulator, as tencent's library uses message queueing to a proprietary backend to get the stream contents. I'm probably going to get a different doorbell after this experience, I'm disappointed in Wyze. The whole gwell API and integration of the gwell products into the wyze platform screams outsourcing chaos.
Yeah, this is great work. And this is as far as I ever wanted to take it either for the exact same reasons that you mentioned. My whole goal was to use my video doorbell pro in HomeKit, but now that there are cheaper HomeKit secure video enabled doorbell cameras, I would much rather get one of those instead of mess with the horrendous software stack that Wyze is using. Repo is very clean and well done, great work! @xerootg
This is exactly why I started going to tapo and reolink. If I hadn't gotten my doorbell pros for free, I wouldn't be using them as the current option. As nice as wyze is as a company, I don't think their development team knows anything about what's going on.....and this is really evident because anytime you would suggest a really simple feature, it was met with strong backlash about how they can't do it. They are definitely outsourcing.
Thanks @carTloyal123 !! Maybe you'll get some use out of it anyway ;)
Well, all that said, I'm almost done stripping the gwell/iotvideosdk down to the minimum needed to maintain a stream. I've still got some little nags around stalled video streams and token renewal, but it's quite obvious the stack wyze used on these cameras was not designed for long-running stream reading. I'm not going to put effort into transcoding on the container unless someone needs it, it's quite difficult to do hardware interop into a container that doesn't even share a common libc. So all that to say, if you're using my cryze fork, let me know over in my repo and I'll keep working on stabilizing it for as long as it holds my attention. I might even try running the android stack in a stripped down android container to give me a bit more control and use less memory!
@mrlt8 I don't know if you want to keep these gwell camera support issues open. There's a solution now and your solution seems to work well for the TUTK cameras. I can confidently say nobody is going to port the tencent iotvideo API to python anytime soon.
@mrlt8 I am fine to close this. People can follow instructions at the Cryze V2 repo for setting up there gwell based VDP, OG, and any others
Not seeing the Wyze Cam OG showing up on the bridge. Running docker compose up (without the -d) I don't even see it listed in the initial "Connecting to..." section.
I also did FRESH_DATA=true on my yml.