oh. thank you. I did port forward but still no respond.
anyway thank you very much for your help.
I gave up.
im using esp32 cam with home assistant.
thank you again
oh. thank you. I did port forward but still no respond.
anyway thank you very much for your help.
I gave up.
im using esp32 cam with home assistant.
thank you again
Finally with success over v380 camera. now im running on zoneminder.
thank you
Thanks! It helps me. I have another cam:
I configure it only after port scanning. Rtsp works on 554 port so default link is rtsp://admin:123456@ipaddress:554/live/ch00_1
Link to image like http://ipaddress/jpg/image.jpg
does not works. 80 port is closed…
Reporting here the status of my V380 Pro Outdoor ONVIF 2-way sound camera for anyone’s benefit - i will update this post as i discover new things.
Managed to configure it with the standard ONVIF
integration from UI; the trick was to set in its configuration dialog (apart from its IP):
port: 8899
Stream_0 was ok (HD), but the auto-detected stream_1 cam up as disabled; after manually enabling it from the “entities” configuration page, it worked flawlessly, with reduced resolution, as it should (hence, lower latency).
The latency is significant, ~7sec, while in my mobile-app it’s close to ~2 sec, so i guess the later is using WebRTC (instead of ffmpg
used by hass, i guess).
With latest hass-containerd 2021.6.4, ONVIF has been improved not to throw any warnings.
(maybe PTZ had been recognized with previous version 2021.5.5, but didn’t know how to install it - absence of warnings made my bolder).
For the PT-controls (no Zoom, my camera probably doesn’t have it), i adapted the picture-elements
card found at the bottom of amcrest-camera, pasted below.
Note that only move_mode: ContinuousMove
is supported, both RelativeMove
& AbsoluteMove
issue unsupported warning-logs - have no idea how to setup GotoPreset
mode.
type: picture-elements
entity: camera.v380_1_stream0_0
camera_image: camera.v380_1_stream0_0
camera_view: live
elements:
- type: icon
icon: mdi:arrow-up
style:
background: rgba(255, 255, 255, 0.35)
right: 25px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: UP
- type: icon
icon: mdi:arrow-down
style:
background: rgba(255, 255, 255, 0.35)
right: 25px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: DOWN
- type: icon
icon: mdi:arrow-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 25px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
pan: LEFT
- type: icon
icon: mdi:arrow-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 25px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
pan: RIGHT
- type: icon
icon: mdi:arrow-top-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: UP
pan: LEFT
- type: icon
icon: mdi:arrow-top-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: UP
pan: RIGHT
- type: icon
icon: mdi:arrow-bottom-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: DOWN
pan: LEFT
- type: icon
icon: mdi:arrow-bottom-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
service_data:
device_id: 7138caad78f448c6678e1029c2992983
move_mode: ContinuousMove
tilt: DOWN
pan: RIGHT
- type: icon
icon: mdi:camera
title: 'TODO: snapshot (in SD?)'
style:
background: rgba(255, 255, 255, 0.35)
bottom: 25px
right: 25px
tap_action:
action: call-service
service: camera.record
service_data:
device_id: 7138caad78f448c6678e1029c2992983
Not configured yet (yet ), therefore the middle-button, above, does not work.
I would love to record through WebRTC (see below), for lower latency.
My V380 has 2-way sound capability, but VLC cannot play the received sound-stream
Have no idea how to send sound to camera’s loudspeaker.
For receiving the sound, i’m experimenting with WebRTC HACS integration…
Pasting below my debug logs (from 2021.5.5, with 2021.6.4 warnings have gone!), for future reference.
Note that no user/pswd was needed (tried also with username: admin
, nothing changed).
homeassistant | 2021-05-25 10:37:13 DEBUG (MainThread) [homeassistant.components.onvif] Starting ONVIF discovery
homeassistant | 2021-05-25 10:37:16 DEBUG (MainThread) [homeassistant.components.onvif] Discovered ONVIF devices []
homeassistant | 2021-05-25 10:38:21 DEBUG (MainThread) [homeassistant.components.onvif] Fetching profiles from ONVIF device {'host': '192.168.1.123',
homeassistant | 'name': 'V380-1',
homeassistant | 'password': '',
homeassistant | 'port': 8899,
homeassistant | 'username': ''}
homeassistant | 2021-05-25 10:38:23 DEBUG (MainThread) [homeassistant.components.onvif] Couldn't get network interfaces from ONVIF deivice 'V380-1'. Error: Method 'ns0:GetNetworkInterfaces' not implemented: method name or namespace not recognized
homeassistant | 2021-05-25 10:38:25 DEBUG (MainThread) [homeassistant.components.onvif] Setting up the ONVIF device management service
homeassistant | 2021-05-25 10:38:25 DEBUG (MainThread) [homeassistant.components.onvif] Retrieving current device date/time
homeassistant | 2021-05-25 10:38:25 DEBUG (MainThread) [homeassistant.components.onvif] Device date/time: 2021-05-25 07:03:26+00:00 | System date/time: 2021-05-25 08:38:25.571230+00:00
homeassistant | 2021-05-25 10:38:25 DEBUG (MainThread) [homeassistant.components.onvif] Couldn't get network interfaces from ONVIF device 'V380-1'. Error: Method 'ns0:GetNetworkInterfaces' not implemented: method name or namespace not recognized
homeassistant | 2021-05-25 10:38:27 INFO (MainThread) [homeassistant.components.camera] Setting up camera.onvif
homeassistant | 2021-05-25 10:38:27 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new camera.onvif entity: camera.v380_1_stream0_0
homeassistant | 2021-05-25 10:38:27 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new camera.onvif entity: camera.v380_1_stream0_1
homeassistant | 2021-05-25 10:38:27 INFO (MainThread) [homeassistant.components.camera] Not adding entity V380-1 - stream0_1 because it's disabled
homeassistant | 2021-05-25 10:39:08 INFO (MainThread) [homeassistant.components.stream] Started stream: rtsp://****:****@192.168.1.123/live/ch00_1
Great post! I could see the stream by rtsp, but not with ONVIF, using the port you refered changed all! Finally can pan and tilt the cam with your code!
Any more progress on other features? Thanks, @ankostis !
Could you please specify if you did any changes to the settings in the camera app (V380 Pro) compared to factory settings?
Also, how did you obtain the device_id? I guess this is just the entity_id
Actually getting the device-id was the hardest part. If i remember correctly, i fished itoutr of the logs, but please do post here how you did it, when you find out.
I setup the device integration according to your instructions, entering name, IP, port. then from Configuration → Devices I selected the newly added camera and copied the name (name of the stream entity, without the ‘_stream0_0’ part).
Your example for a picture elements card works for me just by replacing the entity, but my camera is a bit different - a light-bulb type with 360 view, so I don’t actually need the arrow keys and commands.
What I’d like to do is find a way to turn the LED light in the camera. I think I remember reading somewhere I how to get telnet/root access… once I do that I’ll probably expose the light as a command_line switch in HA.
Do you have any progress with the WebRTC integration for audio and/or recording?
Unfortunately not in my case.
But i applied my instructions to a friends camera and recording also just worked. In that case, we used the authenticated url (user/paswwd) we had discovered through some Windows driver/utility.
I can successfully record video to a file using the Dev tools (calling the service camera: record with one of the stream entities as a target and a file path in i.e. media)
I’ll test for audio in the evening.
For anyone have difficulties or problems with this i tried for 3 days and it didn’t work. I got the camera from Aliexpress the bullet one peephole camera with v380 pro software. I asked the seller but he wasn’t helpfull. So i just asked a different seller, and he helpt me like in couple minutes. He send me the file and it works like a charm. I did’t open any ports or anything. The seller of the ZSCAM Official Store, shout out to him he helpt me, the Small angle Store seller didn’t help a bit. But the solution is like this:
Make a ceshi.ini file with notepad with this inside:
[CONST_PARAM]
rtsp=1 ; 1是开启,0是关闭
save and after this put this file on the root of your sdcard. Put it in the camera while it’s on. After you put in the card, turn off the camera, i just pulled the power cord and waited for 30 seconds, ( it is wat i did, it is not in the instructions) after that i gave the camera power again. And some camera’s you should here a chinese voice, mine has no speaker built in, so i waited the regular booting time, it’s one minute for mines, but to be safe i waited 3 minutes or so. Then when still on pulled the sd card out again. and formated it on my laptop, so if you want to keep the images make a backup, you can just delete the ceshi file but i wanted to be safe so formated it. After this put it back in the camera, and in the whole proces i didn’t open up the app, to be safe again. Now open up vlc or any other player and fill in the network path for the substream: rtsp://xxx.xxx.xxx.xxx/live/ch00_0 and for main stream: rtsp://xxx.xxx.xxx.xxx/live/ch00_1
THE XXX.XXX.XXX.XXX is the ipadres of your camera, you should put it in instead of the XXX’s. And voila, it works like a charm. Shout out again to ZSCAM Official Store, i am not related or something to them, but they helped me figuring this out in a couple minutes, where i was struggling for F$%^#$% 3 days. I hope this cleares some out for others, i was missing the chinese part of the ceshi file every where i look up on the net.
Reporting here thanks to the above I managed to get PTZ working: v380 pro, Indoor 8MP
Firmware versionHwV380E12_WF3_AKPTZ_Q6_20180628
unlocked with ceshi.ini
as explained here above
new Android v380 Pro app > Advanced settings > Onvif setting > ON
HA Integration : Onvif
Configuration: UDP, port: 8899, fixed IP
live mainstream lag: ~10 sec
PTZ via Picture Elements Card Configuration:
type: picture-elements
camera_view: live
camera_image: camera.backcam_mainstream
title: v380 PTZ
elements:
- type: icon
icon: mdi:arrow-up
style:
background: rgba(255, 255, 255, 0.35)
right: 25px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: UP
- type: icon
icon: mdi:arrow-down
style:
background: rgba(255, 255, 255, 0.35)
right: 25px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: DOWN
- type: icon
icon: mdi:arrow-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 25px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
pan: LEFT
- type: icon
icon: mdi:arrow-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 25px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
pan: RIGHT
- type: icon
icon: mdi:arrow-top-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: UP
pan: LEFT
- type: icon
icon: mdi:arrow-top-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 50px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: UP
pan: RIGHT
- type: icon
icon: mdi:arrow-bottom-left
style:
background: rgba(255, 255, 255, 0.35)
right: 50px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: DOWN
pan: LEFT
- type: icon
icon: mdi:arrow-bottom-right
style:
background: rgba(255, 255, 255, 0.35)
right: 0px
bottom: 0px
tap_action:
action: call-service
service: onvif.ptz
target:
entity_id:
- camera.backcam_mainstream
data:
move_mode: ContinuousMove
speed: 0.1
distance: 0.1
tilt: DOWN
pan: RIGHT
Thanks! Got it to work with the code provided. Audio and Recording not happening thou.
I recently got these bunch of IP Cams for free…
These are cheap camera with false advertisement on it.
Has anybody found a good way to switch the ligth on/off? Assuming the v380-in-a-light-bulb option…
…cheap and all…they work…in my case 3 years already with hard cold winters, all inside although, but still, very reliable, …with HA 2023 is easier than ever with the onvif integration (port 8899) and that’s it, even ptz control works fine…I manage to have all my cameras into HA though zoneminder wich in my case works better in terms of realtime than onvif integration…I do use ptz control from onvif integration for this type of cameras…the only downside is the file thing you have to do to enable rtsp on the cameras, but is only 1 time…
i would like to thank you very much, i could connect to my v380 ptz camera by vlc player now, unfortunately i couldn’t add it to HA
once again thank you
Did you try to use the onvif integration to scan your network for it? You need to use the right password and username
hi, i have a firmware dump of a v380 blub e27 IoT WiFI smart camera.
this camera uses a T25S80
flash chip, with a XF16 P9141EA6AD1
SoC.
some part of UART shell:
wlan information ===================================================
firmware:
version : R-XR_C10.08.52.64_01.80 Jul 6 2019 20:05:10-P01.46-R
buffer : 12
driver:
version : XR_V02.05
====================================================================
PMA: wlan mode:a
platform information ===============================================
XRADIO Skylark SDK 1.2.0 Jun 7 2023 11:32:54
sram heap space [0x21e4c0, 0x25fc00), total size 268096 Bytes
cpu clock 240000000 Hz
HF clock 40000000 Hz
sdk option:
XIP : enable
INT LF OSC : enable
mac address:
efuse : a0:17:f1:98:84:e2
in use : 34:bc:87:f3:00:0d
====================================================================
im sure someone would need it here.
name: v380-blub-IoT-camera-firmware.bin
sha256: 28c1bd4fa632d7ba30148c0c51acd15a7844b90bb06db83e254c8be7c434cdb8
download link: Google Drive