Git Product home page Git Product logo

camera.ui's People

Contributors

dependabot[bot] avatar nebzhb avatar seydx avatar tomzt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

camera.ui's Issues

Stream crashes while viewing live in Apple Home app

Describe the bug
Stream crashes while viewing live in Apple Home app

To Reproduce
When getting a notification that there is an activity noticed, the stream crashes after a couple of seconds

Expected behavior
The stream needs to keep going :)

Logs
I'm not sure if this is exactly what is causing the problem, but I'm seeing a lot of this logging:

birdy-two: FFmpeg prebuffer process exited with error! (SIGKILL) - [h264 @ 0x3a5f740] non-existing PPS 0 referenced -  -
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! -  -
[h264 @ 0x3a5f740] non-existing PPS 0 referenced -  - 
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! -  -
[h264 @ 0x3a5f740] non-existing PPS 0 referenced -  -  
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! -

Screenshots
If applicable, add screenshots to help explain your problem.

Environment

  • Node.js Version: v16.13.2
  • Camera UI Version: v5.0.16
  • Operating System: Raspbian GNU/Linux 10 (buster)
  • Browser: N/A

Camera.ui Error

Describe the bug

Error: EACCES: permission denied, mkdir “/var/lib/homebridge”

Please help me understand how to
Fix this error.

To Reproduce
Installed on a new Mac mini m1

Expected behavior
Error occurs when loading a camera.

Logs
If available, attach the log where the bug is vissible

Screenshots
If applicable, add screenshots to help explain your problem.

Environment

  • Node.js Version: v16.16.0
  • Camera UI Version: v5.0.27
  • Operating System: macOS Monterey 12.5
  • Browser: safari

Not getting telegram notifications

I stopped getting notifications on my telegram, irrespective of the fact that i have correctly entered my chat ID as well as my bit access code.

If fact there is no error message in notification panel of the camera UI interface.

Documentation regarding Telegram API's token

Is your feature request related to a problem? Please describe.
A Telegram Token and a ChatID are requested to send notifications, but it'd be great to know what kind of API token is requested, Telegram allows you to create different kinds of it.

Describe the solution you'd like
A clear documentation

Thank you.

How tf to install?

Hi,

dumb question, how do i install?

I cant seem to run this command on my ubuntu 22.04 machine.

Which OS is compatible with the program? is it IOS?

Can't record via API

When I visit the "start recording" endpoint, recording does not start.

Visiting http://192.168.1.4:7272/motion?Drivecam in my browser results in:

{"error":false,"message":"Handling through extern controller.."}

And attempting to end the recording a while later http://192.168.1.4:7272/reset?Drivecam gives the same result:

{"error":false,"message":"Handling through extern controller.."}

It's great that it reports no error, but it also doesn't record anything.

Is "Handing through extern controller" a clue?

Thanks

Environment

  • Node.js Version: v16.20.0
  • Camera UI Version: v1.1.17
  • Operating System: Raspian
  • Browser: Firefox

New additional cameras not discoverable in Home app

My original 3 cameras are working fine. I recently wanted to add a new rasp camera stream and I did it thru the home bridge plugin under CONFIG. the stream is showing well in the camera.ui interface but I cant add it to the home app. Its not getting discovered in the home app.

New users are not saved in the configuration

Describe the bug
When I create any new user, the user disappears after restarting the application

To Reproduce

  • open /settings/user
  • create a new user
  • restart camera.ui

Expected behavior
I would expect users to remain created.

Logs
If available, attach the log where the bug is vissible

Screenshots
image
after restart
image

Environment

  • Node.js Version: v20.1.0
  • Camera UI Version: v1.1.17
  • Operating System: MacOs Ventura 13.3
  • Browser: Google Chrome 112.0.5615.137

command line to start cameraui with the system.

Hello I couldn't find a command line to make camera.ui start with debian 12 for that reason I created a functional command I will send it below, could you put it next to the installation tutorial?

1 create notepad with name.

sudo nano /lib/systemd/system/cameraui.service

2 inside notepad

[Service]
ExecStart=/usr/local/bin/camera.ui

[Install]
WantedBy=multi-user.target

3 to update the list of debian services

sudo systemctl daemon-reload

4 to update the service table that starts with the system

sudo systemctl enable cameraui.service

5 to check if service is running

sudo systemctl list-units --type service

FAQ: Hardware Recommendations

Hi,

I have 5 Reolink PoE cameras and am thinking to use camera.ui instead of the Reolink NVR. In combination with Homekit Secure Video and its object recognition, I think it could replace the NVR without problems.

Now I was wondering what the host system of camera.ui would have to provide in terms of CPU and RAM power.

Is there some experience around it that we could collect? Do you think an RPi 3B or 4 would be sufficient if I attached a USB drive?

Maybe we can use this issue for people interested to share their setup.

Thanks.

No recording avilable

I have added dahua camera. it is visible and working fine. i can see live stream. But there is no recording available.

Screenshot from 2023-07-18 19-02-56
Screenshot from 2023-07-18 19-03-03
Screenshot from 2023-07-18 19-03-22

  • Node.js Version: v16.20.1
  • Camera UI Version: v1.1.17
  • Operating System: ubuntu 22
  • Browser: firefox

vFilter not working?

Describe the bug
I would like to add a timestamp to the video, but using the vFilter option doesn't seem to do anything

To Reproduce
I added drawtext=text='My text starting at 640x360':x=640:y=360:fontsize=24:fontcolor=white to test this, and also tried to add -vf before drawtext=..

I also changed the videoProcessor to a local installed version of ffmpeg, does not make a difference

Expected behavior
The video should show a textstring

Logs
n/a

Screenshots
n/a

Environment

  • Node.js Version: v16.13.2
  • Camera UI Version: v5.0.16
  • Operating System: Raspbian GNU/Linux 10 (buster)
  • Browser: N/A

Use full disk - recycle. (never delete)

Is your feature request related to a problem? Please describe.
no.

Describe the solution you'd like
Using full disk with periodically checks in order to delete the oldest video to make more space than 5gb
(assuming 5gb is a safe-space for OS. updates etc)

Describe alternatives you've considered
Altering a few lines at the cleartimer.js at the line 62 and bellow? i will provide an example.

` if (recRemoveAfter) {
const recordings = Cleartimer.#recordingsDB.chain.get('recordings').cloneDeep().value();

    //will need to check free space later.
    const recPath = Cleartimer.#recordingsDB.chain.get('path').cloneDeep().value();

    //Change the (for loop) array to loop with shorting from lowest unix timestamp first to higher (oldest)  

    for (const recording of recordings.sort(({ timestamp: a }, { timestamp: b }) => a - b)) {


      //Recycle option? considering frontend hides 100days for this. (time == 100)

      if (recRemoveAfter == 100) {
        //update available disk space?
        let diskSpace = await checkDiskSpace(recPath);

        //if we left less than 5gb free space, remove that file if still less than 5gb
        if ((Math.round(diskSpace.free / 1e9) < 5)) {
          Cleartimer.#recordingsTimer.set(recording.id, false);
          await Cleartimer.#clearRecording(recording.id);
        }




      } else {
        let timestampNow = moment();.................................................................`

Additional context
Im not sure how often this is called in order to work smoothly and how these timers actually work , i would like an explenation tho.

Can't start camera.ui

Describe the bug
I cannot start camera.ui

To Reproduce
Download the newest camera.ui

Expected behavior
Start camera.ui

Logs
`

Screenshots
If applicable, add screenshots to help explain your problem.
image

Environment

  • Node.js Version: idk
  • Camera UI Version: idk
  • Operating System: ubuntu new
  • Browser: chrome

Problem with saving the config

Describe the bug
When i try to add a camera I got 500 error from the console I get

[1/22/2022, 6:24:08 PM] [camera.ui] GET /api/config?target=config 200 1.759 ms - 192
Error: Can not save config, target cameras not found in config!
    at Function.writeToConfig (file:///usr/lib/node_modules/camera.ui/src/services/config/config.service.js:201:15)
    at Module.createCamera (file:///usr/lib/node_modules/camera.ui/src/api/components/cameras/cameras.model.js:29:19)
    at insert (file:///usr/lib/node_modules/camera.ui/src/api/components/cameras/cameras.controller.js:22:39)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

To Reproduce
Add camera

Expected behavior
Camera to be added

Environment

  • Node.js Version: v17.4.0
  • Camera UI Version: 1.1.2
  • Operating System: Ubuntu 20.04 minimal
  • Browser: Brave latest version

Motion detection not triggered

*Bug
I've set my cameras up and I enabled the motion detection feature, but it seems it does not work. How to troubleshoot the problem?

To Reproduce
Settings --> Add camera --> Enable motion detection

Expected behavior
A notification should be shown

Environment

  • Node.js Version: v18.17.1
  • Camera UI Version: v1.1.17
  • Operating System: Debian Bullseye
  • Browser: Firefox 102

Thank you

Daemon Setup - Service Mode

Describe the bug
After following instructions as per here on how to set up service mode, I get the following error. I copy and pasted with 0 edits, I also tried to edit the folders but that didn't help.

Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 188.
Sep 04 15:03:07 DebianServer systemd[1]: Stopped camera.ui.service - camera.ui.
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed with result 'resources'.
Sep 04 15:03:07 DebianServer systemd[1]: Failed to start camera.ui.service - camera.ui.

To Reproduce
Follow the service mode instructions.

Expected behavior
Expected the service mode to work, could not start with above error.

Logs
See above.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment

  • Node.js Version: latest as of September 4 2023
  • Camera UI Version: latest as of September 4 2023
  • Operating System: Debian, latest as of September 4 2023
  • Browser: Chome

Question:
Could you outline the edits necessary to the files?

Record all the available motion

Is your feature request related to a problem? Please describe.
When recording is set to videos instead of snapshop, there are two issues, 1. Orphan snapshops are created very often (jpeg with no video) making the front-end to appear a 'false' video that seems like a recording of 1hour to 2hours, (thats a different issue but i mentioning it, ffmpeg can create simmutaniously a jpeg with a video at one command line 1 proccess. instead of running two times ffmpeg to create a seperate vid and jpeg that would be really nice.

Back to the main issue, many motions go unrecorded which is bad for survillance use, as execept to know how a thing started (eg a person comes by) we also need to know what that person did the whole time was in the cameras view until the person left and there is no motion anymore.

Describe the solution you'd like
Instead of dwell timers or any timers at all plus small recordings up to 10min, i think it would be better to have 30min to 1hour segments of recordings just by starting a recording any time the movement is triggered. Example thought: store the spawn of the camera in an array to not start a reording again until there a exit-spawn

Describe alternatives you've considered
Also a 24/7 constant recordings would be nice.. eg. by ffmpeg -i -c copy -f segment -segment_time 3600 ....etc.

Additional context

Camera ID

This is not a bug more of a question..

How can i get the camera id to use it in the system on windows

Recording not working

Describe the bug

Recording is not working on a windows installation.

To Reproduce
Steps to reproduce the behavior

Installed camera.ui on Windows as described in docs.
Configured cameras, and double checked cameras built in motion detection.
Tried to use recording on 2 different paths (to make sure it wasn't a problem with the path name)

It simply doesn't start to record.
Is there any specific step to make it work?

I also tried the UI motion detection, without success.

Expected behavior
It should start recording with built in motion detection or at least with UI motion detection.

Logs
If available, attach the log where the bug is vissible

Screenshots
If applicable, add screenshots to help explain your problem.

Environment

  • Node.js Version: v18.15.0
  • Camera UI Version: v1.17 and 1.18
  • Operating System: Windows 10
  • Browser: Brave, Chrome and Edge

How to add a camera?

Sorry for using this feature to ask help, but how do I add a Camera? The UI is fantastic but a "+ Add" is missing?

NPM not installing camera.ui on Raspberry Pi

Describe the bug
When I try to install the camera.ui plugin on my Homebridge Raspberry Pi Zero 2, it always gives the following issue:
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! network Socket timeout
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_17_39_926Z-debug-0.log

To Reproduce
Just try to install camera.ui on a Raspberry Pi!

Expected behavior
Camera.ui should install!

Logs
pi@homebridge:/var/lib/homebridge $ npm i -g camera.ui@latest --unsafe-perm
npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /opt/homebridge/lib/node_modules/camera.ui
npm ERR! dest /opt/homebridge/lib/node_modules/.camera.ui-pL2N2CGP
npm ERR! errno -39
npm ERR! ENOTEMPTY: directory not empty, rename '/opt/homebridge/lib/node_modules/camera.ui' -> '/opt/homebridge/lib/node_modules/.camera.ui-pL2N2CGP'

npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_15_32_287Z-debug-0.log
pi@homebridge:/var/lib/homebridge $ rm -rf /opt/homebridge/lib/node_modules/camera.ui
pi@homebridge:/var/lib/homebridge $ npm config set fetch-retry-mintimeout 2000000
pi@homebridge:/var/lib/homebridge $ npm config set fetch-retry-maxtimeout 12000000000
pi@homebridge:/var/lib/homebridge $ npm i -g camera.ui@latest --unsafe-perm
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! network Socket timeout
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_17_39_926Z-debug-0.log

Screenshots
Terminal only - so no screenshots.

Environment

  • Node.js Version: v18.16.0
  • Camera UI Version: N/A
  • Operating System: Raspberry Pi Homebridge
  • Browser: N/A

Can not start Camera.ui

Describe the bug
I had installed a new container in proxmox for install camera.ui
To Reproduce
run the command camera.ui

Expected behavior
A clear and concise description of what you expected to happen.

Logs
`/usr/local/lib/node_modules/camera.ui/bin/camera.ui.js:5
import fs from 'fs-extra';
^^

SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)`
Screenshots
image

Environment

  • Node.js Version: v10.19.0
  • Camera UI Version: v1.1.17
  • Operating System: ubuntu 20.04
  • Browser: NA/NA

Cannot read properties of undefined (reading 'toFixed')

Describe the bug
At starting the server and/or at radom times (not sure for the last one) we may get TypeError: Cannot read properties of undefined (reading 'toFixed')

To Reproduce
Enable recording start the server.

Expected behavior
Record

Logs

Screenshots

Environment

  • Node.js Version: v16.15.0
  • Camera UI Version: v17
  • Operating System: win10
  • Browser: XXX

Seems it is caused by this piece of (Orphan?) code at the event.cotroller.js

      if (!allowRecording) {
            log.warn(
              `The available disk space is less than 1 GB (${diskSpace.available.toFixed(2)
              } GB)! Please free up disk space to be able to create new recordings!`,
              cameraName
            );

            log.info('Skip local storage of the recording..', cameraName);
          }

error with 'Request failed with status code 500'

Describe the bug
I add my camera with its rtsp stream and I get an error on the back-end informing me of a 500, unfortunately I don't know what it's due to as I don't even have the logs or the means to activate it in the configuration.

To Reproduce

  1. Add camera and set RSTP address look like this :
    image
  2. Go to Camera Dashboard

Expected behavior
This bug occurs when you add your camera and access it from the camera table, impossible for me to view it live but strangely I've noticed that it's working in a certain way even though I don't have a view when you go to the settings and then to "Video analysis" you can still see a preview.

Logs
The 500 error does not appear in the logs to my great disappointment, impossible for me to know precisely what the problem is.

Screenshots
image

However, I'm sure it's not an error or a bad configuration, because I've got the overview working in spite of everything when you go to the camera's "Video analysis" settings:
image

Environment

  • Node.js Version: v20.2.0
  • Camera UI Version: v1.1.18
  • Operating System: Ubuntu Server 22.04.2
  • Browser: Firefox 113.0.2
  • Camera used: EufyCam (Anker)

In Config whilst saving the error code as "Request failed with status code 500" in red

Describe the bug
Whilst doing the camera RTSP configuration and save, it does not allows saving and error message appeared as Request failed with status code 500.

Expected behavior
It should save and allow cameras to be added thru config.json. However, I am unable to locate the directory or check the file permission/ownership

Logs
Not visible

Screenshots
It disappear rather fast but it shows at the bottom of the monitor.

Environment

  • Node.js Version: v19.1.0
  • Camera UI Version: v1.1.17
  • Operating System: Ubuntu 20.04
  • Browser: Google Chrome, Firefox, Microsoft Edge

Telegram notifications not initiated

This issue just occurred out of nowhere and persists through a server reboot, reset of Camera-UI database and reinstall of Camera-UI. When motion is detected from the cameras, Telegram notifications are no longer sent through the app. The configuration for Telegram is confirmed to be correct and has not changed between when this was working and now. Nothing telling in Console.

Camera not available in dashboard or cam view

Hello,

I have 7 cameras configured in camera.ui (and passed through to Homebridge and HSV). Everything is working perfectly, but I'm having a strange issue with the camera.ui interface. On the cameras page, all seven cameras show up. However, only six of the seven are available on the dashboard and camview pages.

Any idea why this might be happening? Happy to share screenshots, but would rather not on a public page.

thanks!

Cams with passwords?

How to add cams which have passwords? I am using Agent DVR atm for a long time. I am want to try out camera.ui, with my EZVIZ camera's. How to add username and password to the cameras? They need to use this.

Can i do this in the RSTP stream link?

Protocol not found

[1/21/2022, 11:21:46 PM] [CameraUI] August: Restart prebuffer session..
[1/21/2022, 11:21:48 PM] [Homebridge UI] [homebridge-camera-ui] Incoming Request: /interfaceConfig
[1/21/2022, 11:21:49 PM] [CameraUI] August: Videoanalysis scheduled for restart at 4AM: 278 minutes
[1/21/2022, 11:21:49 PM] [CameraUI] August: FFmpeg videoanalysis process exited with error! (null) - rtsp://192.168.50.155:554/live/stream0: Protocol not foundDid you mean file:rtsp://192.168.50.155:554/live/stream0?
[1/21/2022, 11:21:49 PM] [CameraUI] August: FFmpeg videoanalysis process exited with error! (null) - rtsp://192.168.50.155:554/live/stream0: Protocol not foundDid you mean file:rtsp://192.168.50.155:554/live/stream0?
[1/21/2022, 11:21:49 PM] [CameraUI] August: Restart videoanalysis session..

Config:
"cameras": [
{
"name": "August",
"motion": true,
"unbridge": true,
"hsv": true,
"prebuffering": true,
"prebufferLength": 4,
"videoConfig": {
"source": "-i rtsp://192.168.50.155:554/live/stream0",
"maxStreams": 2,
"vcodec": "copy",
"acodec": "libfdk_aac",
"audio": false
},
"videoanalysis": {
"active": true
}
}
],
"platform": "CameraUI"

FFMPEG crashes on recording

Describe the bug
FFMPEG Crashes on recording after detected motion.

To Reproduce
Add Camera with below confs

        {
            "name": "CameraUI",
            "port": 8080,
            "atHomeSwitch": true,
            "logLevel": "debug",
            "mqtt": {
                "active": false,
                "tls": false,
                "port": 1883
            },
            "http": {
                "active": false,
                "port": 7272,
                "localhttp": false
            },
            "smtp": {
                "active": false,
                "port": 2727,
                "space_replace": "+"
            },
            "ftp": {
                "active": false,
                "useFile": false,
                "port": 5050
            },
            "ssl": {
                "active": false
            },
            "options": {
                "videoProcessor": "ffmpeg"
            },
            "cameras": [
                {
                    "name": "Living Room Camera",
                    "manufacturer": "TP-Link",
                    "model": "C200",
                    "privacySwitch": true,
                    "motion": true,
                    "doorbell": true,
                    "motionTimeout": 15,
                    "motionDoorbell": true,
                    "unbridge": true,
                    "hsv": true,
                    "prebuffering": false,
                    "prebufferLength": 4,
                    "hksvConfig": {
                        "source": "-i rtsp://user:pass%[email protected]:554/stream1",
                        "vcodec": "copy",
                        "audio": false
                    },
                    "videoConfig": {
                        "source": "-i rtsp://user:pass%[email protected]:554/stream1",
                        "subSource": "-i rtsp://user:pass%[email protected]:554/stream2",
                        "stillImageSource": "-i rtsp://user:pass%[email protected]:554/stream1",
                        "rtspTransport": "tcp",
                        "vcodec": "h264_videotoolbox",
                        "acodec": "libfdk_aac",
                        "audio": false,
                        "debug": true,
                        "debugReturn": false
                    },
                    "smtp": {
                        "email": "Living Room Camera"
                    },
                    "videoanalysis": {
                        "active": true
                    },
                    "mqtt": {}
                }
            ],
            "platform": "CameraUI"
        }
    ],

Expected behavior
A clear and concise description of what you expected to happen.

Logs

[5/11/2022, 5:25:32 PM] [CameraUI] VIDEOANALYSIS: New message: Data: [{"zone":"region0","percent":26.64322853088379,"sensitivity":74,"dwell":60,"forceClose":3}] - Motion: detected - Camera: Living Room Camera
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: {"error":false,"message":"Handling through extern controller.."}
[5/11/2022, 5:25:32 PM] [CameraUI] MQTT client not connected, skip MQTT (notification)..
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Motion ON
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Snapshot requested: 1280 x 720
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Snapshot command: ffmpeg -hide_banner -loglevel error -i rtsp://user:pass%[email protected]:554/stream1 -frames:v 1 -f image2 -
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Video fragments requested from HSV
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Start recording...
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Recording command: ffmpeg -hide_banner -rtsp_transport tcp -i rtsp://user:pass%[email protected]:554/stream1 -f mp4 -vcodec copy -an -movflags frag_keyframe+empty_moov+default_base_moof -max_muxing_queue_size 1024 tcp://127.0.0.1:37230
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: [rtsp @ 0x55cc436e7880] method SETUP failed: 406 Not Acceptable
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: rtsp://user:pass%[email protected]:554/stream1: Server returned 4XX Client Error, but not one of 40{0,1,3,4}
[5/11/2022, 5:25:32 PM] [CameraUI]  ERROR  Living Room Camera: FFmpeg recording process exited with error! (null)
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Fetching snapshot took 3.963 seconds.
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Sending snapshot: 1280x720
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Resize command: ffmpeg -i pipe: -frames:v 1 -filter:v scale='min(1280,iw)':'min(720,ih)':force_original_aspect_ratio=decrease -f image2 -
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: New motion detected, resetting motion in 60s..
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Motion data: [{"zone":"region0","percent":27.27777862548828,"sensitivity":74,"dwell":60,"forceClose":3}]}
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Closing recording process
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Resetting motion sensor, because HSV closed the recording process
[5/11/2022, 5:25:40 PM] [CameraUI] MQTT client not connected, skip MQTT (notification)..
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Motion OFF
[HDS ::ffff:192.168.0.61] Recording download stream 1 is still awaiting generator although stream was closed 10s ago! This is a programming mistake by the camera implementation which prevents freeing up resources.

Environment

  • Node.js Version: v16.15.0
  • Camera UI Version: homebridge-camera-ui v5.0.27
  • Operating System: Docker
  • Browser: Chrome

FFmpeg session crashes

I keep getting the following messages in the logging:

[18/01/2022, 14:03:03] [CameraUI] birdy-two: Restart videoanalysis session..
[18/01/2022, 14:03:13] [CameraUI] birdy-two: Videoanalysis scheduled for restart at 4AM: 837 minutes
[18/01/2022, 14:03:26] [CameraUI] birdy-two: Watchdog for mp4 parser timed out... killing ffmpeg session
[18/01/2022, 14:03:26] [CameraUI] birdy-two: FFmpeg videoanalysis process exited with error! (null) - tcp://127.0.0.1:35812: could not find codec parameters

The relevant (I think) config:

  "cameras": [
    {
      "name": "birdy-two",
      "motion": true,
      "unbridge": true,
      "hsv": false,
      "prebuffering": true,
      "prebufferLength": 4,
      "videoConfig": {
        "source": "-i rtsp://192.168.178.3:8554/unicast",
        "rtspTransport": "tcp",
        "maxStreams": 8,
        "maxWidth": 0,
        "maxHeight": 0,
        "maxFPS": 30,
        "vcodec": "h264",
        "acodec": "libfdk_aac",
        "stimeout": 10,
        "audio": false,
        "debug": true,
        "readRate": true
      },
      "videoanalysis": {
        "active": true
      },
      "mqtt": {},
      "smtp": {
        "email": "birdy-two"
      }
    }
  ]

Contact for collaboration

Hello @seydx,

We are a small Smart Home design house, creating Smart Home gateway.
Interested to work/collaborate with you.
Tried to contact you via email.

Just in case it was lost in spam, what is the best way to reach out to you?
Sorry for abusing the issues system on Github, I understand it's not intended like this.

Unable to configure as service mode, cant find the correct path for ExecStart

Thank you a lot for this app!

Unable to configure as service mode, what should be the correct path for ExecStart?

To Reproduce

Install and try to set as service mode

Expected behavior
Easy way to indentify which file place as ExecStart, tested with:

// DOESNT WORK
ExecStart=/usr/lib/node_modules/camera.ui/bin/camera.ui.js $CAMERA_UI_OPTS

Logs

ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:31 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 53.
ene 28 17:41:36 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:36 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 54.
ene 28 17:41:41 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:41 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 55.
ene 28 17:41:46 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:46 homebridge systemd[1]: Failed to start camera.ui.

Environment

  • Node.js Version: v16.13.0
  • Camera UI Version: 1.1.6
  • Operating System: Ubuntu

Thanks for the support!

Onvif Support

Okay, i'm getting the feeling seyxd died by covid or vax since don't see activity/replies.. here is the deal

Most cameras if not all except some old i expecting to support ONVIF, onvif is really usefull because i didn't knew what the rtsp url is to put the cameras on the app, it toke me a while to figure out what is going on. with onvif we can detect all the cameras in the network and automatically grab A. a live url for snapshot, B. stream A and low B, and C. motion detect proccessed by camera.

To do this i used two packages.

import onvif from 'node-onvif'; <- for discovery of streaming urls, camera names, etc.
import onvifEvents from 'node-onvif-events'; <- for motion detection provided by the camera it self.

Note: node-onvif-events had to be manually installed as npm produced some errors when installing.

The following two functions return an array of objects, each object has these info. ob.snapshot is the url for a live fresh snapshot jpeg image, rtsp is an array of profiles, with urls for streaming note that to pass that info on ffmpeg you will need to replace :// with ://user:password@url

eg. rtsp://192.168.7.25:8554/profile0 needs to be http://user:[email protected]:8554/profile0

[ { snapshot: 'http://192.168.7.25:6688/snapshot/PROFILE_001', rtsp: [ 'rtsp://192.168.7.25:8554/profile0', 'rtsp://192.168.7.25:8554/profile1' ], urn: 'urn:uuid:2171bb3f-aa30-aa30-3030-e062905c7634', name: 'HD%20IPC', xaddr: 'http://192.168.7.25:6688/onvif/device_service' },

`async function testme(username, password) {
return new Promise(async (resolve, reject) => {
let camojb = {};
const cameras_info = [];
console.log('Start the discovery process.');
// Find the ONVIF network cameras.
// It will take about 3 seconds.
onvif.startProbe().then(async (device_info_list) => {
for (let i=0; i<device_info_list.length; i++) {
let info = device_info_list[i];
let device = new onvif.OnvifDevice({
xaddr: info.xaddrs[0],
user : username,
pass : password
});
camojb = await getURLs(device);
//set obj
camojb.urn = info.urn;
camojb.name = info.name;
camojb .xaddr = info.xaddrs[0];
// Initialize the OnvifDevice object
cameras_info.push(camojb);
}
resolve(cameras_info)
}).catch((error) => {
console.error(error);
})
})
}

async function getURLs(device) {
return new Promise(async function(resolve) {
let camojb = {};
camojb.snapshot = [];
camojb.rtsp = [];
device.init().then(() => {

let profile_list =   device.getProfileList();

for(let i=0; i<profile_list.length; i++) {
  camojb.snapshot = profile_list[i].snapshot;
  camojb.rtsp[i] = profile_list[i].stream.rtsp;
}  

}).then(() => {
resolve(camojb)

}).catch((error) => {
console.error(error);
});
});
}`

Now as for motion detection:

`const startMotion = async () => {
const detector = await onvifEvents.MotionDetector.create(options.id, options);
console.log(new Date(), '>> Motion Detection Listening!!');
detector.listen((motion) => {
if (motion) {
console.log(new Date(), '>> Motion Detected');
} else {
console.log(new Date(), '>> Motion Stopped');
}
});
}

startMotion();`

tested both packages inside camera.ui as console.prints and works wonders.. now we need to impelement those into the app.
a second feature that i find very important is to use .mkv for filenames and -copy for codecs, as almost all cameras provide already codec video and ffmpeg by default decodes video with mp4 or other extions in filename despite if you are u trying to use -codec copy, codec copy is only accepted on mkv.

ONVIF S (support)

Anyone successfully used a camera with (only) ONVIF support?

Have a D-link DCS-8300LHV2 that I would like to use.
Works fine with D-link app and QNAP NAS
Not able to stream any video/picture in Homebridge (Mac) by use of camera.ui plugin. Find and connects to the camera, but no stream or fixed picture

Security Reports

Security Reports summarizes everything that happened in a day.

  • Movement reports
  • Recordings
  • Login / Logout sessions

A specially designed subpage is also planned. In addition, the reports will be saved locally at the end of the day.

Motion is resetting 15s after firing

For starters - love this plugin. Thanks for making it! I'm new to it, so I'm probably just holding it wrong, but my motion seems to be getting canceled quickly. I'm running v5.0.16 on Homebridge v1.4.0 on a RPi4.

[25/01/2022, 15:38:50] [CameraUI] VIDEOANALYSIS: New message: Data: [{"zone":"region0","percent":9.139323234558105,"sensitivity":92,"dwell":15,"forceClose":10}] - Motion: detected - Camera: Driveway
[25/01/2022, 15:38:50] [CameraUI] Driveway: Motion ON
[25/01/2022, 15:39:05] [CameraUI] Driveway: Motion OFF - Motion handler timeout.

I dropped dwell down to 15 from default, but that made no difference. I bumped forceClose up to 10, but that made no difference either. It's a consistent 15s from motion on to motion off.

This code is amazing

@seydx I just wanted to compliment you on what a fantastic bit of code this is. I know there's a bunch of us out here wondering if you are still working on this project? Seems like there is just so much potential here for an even greater product. If you have had to stop working on this code, we understand, but we'd sure love to hear from you if there is a particular reason for that and if there is anything that we can do to help you get the next version published with some of the amazing features that have been teased.

To be honest with you, I'd even be willing to pay a small one-time fee for this software, it's that good. If that is at all motivating or encouraging. Anyways thank you and we hope to hear from you soon!

Enable Relays?

Unless I missed it, is there a way to enable relays? I have a Doorbird with an electronic lock, for example, that I would like to be able to unlock when the doorbell is pushed through HomeKit.

Thank you!

HTTP & MQTT Alarmserver

Is your feature request related to a problem? Please describe.

MQTT Alarmserver

I am using a camera that updates an MQTT topic when an alarm was triggered. The value represents different alarm triggers in from of numbers - 1, 2, etc. The value falls back to 0 after a few seconds when entering the idle state:

"mqtt": {
        "motionTopic": "cameras/120/status/alarm/triggered",
        "motionMessage": "{\"val\":\"1\"}",
        "motionResetTopic": "cameras/120/status/alarm/triggered",
        "motionResetMessage": "{\"val\":\"0\"}"
      },

When a trigger event represented by the value 1 happens it is registered. But the update to value 0 when falling back to idle seems to be skipped - seems that the reset topic cannot be identical to the motion topic?

[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"1"} - Type: string
[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"1"} - Type: string
[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"0"} - Type: string
[camera.ui]  WARNING  The incoming MQTT message ({"val":"0"}) for the topic (cameras/120/status/alarm/triggered) was not the same as set in config.json ({"val":"1"}). Skip...

And I am unable to use any other triggers with values > 1.

HTTP Alarmserver

To trigger camera.ui through it's webhook we have to attach a query to the GET request with the camera name. The camera I am using follows the convention of having queries consisting of key + value. So when I am using the alarmserver camera.ui will receive a request with the query ?my%20camera= or ?my%20camera=1:

camera-ui-docker_11

And the alarm is not triggered:

[camera.ui] HTTP: New message: URL: /motion?IN-9408%202k+%20WQHD=1
[camera.ui]  WARNING  IN-9408 2k+ WQHD=1: Camera 'IN-9408 2k+ WQHD=1' not found

Describe the solution you'd like

  1. MQTT :: Is it possible to check if the topic updates payload is not/equal to the reset_value to trigger an alert. And if equal reset the alarm state?
  2. HTTP :: Is it possible to ignore the value of the incoming query string?

Error when trying to send video to telegram

I set up telegram notifications, pictures and text are successfully sent but if switch to video or text+video, then sending does not work. Error messages appear in the log

To Reproduce
Trigger motion

Logs
[4/15/2022, 6:32:09 PM] [camera.ui] VIDEOANALYSIS: New message: Data: {"time":"2022-04-15T15:32:09.378Z","event":"dwellTime (60s)"} - Motion: resetted - Camera: Backside
[4/15/2022, 6:34:07 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:34:07 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty
[4/15/2022, 6:34:29 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:34:29 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty
[4/15/2022, 6:35:37 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:35:37 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty

Environment

  • Node.js Version: v16.14.2
  • Camera UI Version: v1.1.6
  • Operating System: Centos 7
  • Browser: Chrome

Docker Image

Is your feature request related to a problem? Please describe.
Would love to run this off of my unRAID box like the rest of my home automation software.

Describe the solution you'd like
A Docker image provided.

How Many Cameras on MacOS are possible?

I am running the Camera.ui on Homebridge on Mac mini and it is running at 80% load. I have 10 Amcrest cameras running and I got this error message when I tried to add another camera. This camera is same as rest and set up exactly the same. "2/8/2022, 9:49:45 PM] [CameraUI] Master Bedroom: FFmpeg videoanalysis process exited with error! (null) - [tcp @ 0x7f945a605d40] Connection to tcp://10.0.10.232:554?timeout=0 failed: Network is unreachable - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0: Network is unreachable "

I have 4 more cameras I would like to add, should I just set up another server and create another Homebridge session to do it and split the cameras?

Any suggestions appreciated. New to this...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.