Community Hass.io Add-on: Shinobi Pro

This add-on is provided by the Community Hass.io Add-ons project.

GitHub Release GitLab CI Project Stage Project Maintenance

Supports armhf Architecture Supports aarch64 Architecture Supports amd64 Architecture Supports i386 Architecture

Beautiful and feature-rich CCTV/NVR for your camera’s

:warning: This add-on is deprecated


This add-on has been deprecated and got removed.
For more information, read this post:

About


Shinobi is Open Source, written in Node.js, and real easy to use. It is the future of CCTV and NVR for developers and end-users alike. It is catered to by professionals and most importantly by the one who created it.

Shinobi can be used as a Baby Monitor, Construction Site Montage Viewer, Store Camera DVR, and much more.

You can use Shinobi Pro for personal use without a license in non-commercial locations, for educational, or simple testing. Schools, Colleges, and Universities do not require a subscription.

Read more about Shinobi on their website

Installation


The installation of this add-on is pretty straightforward and not different in comparison to installing any other Hass.io add-on.

  1. Add our Hass.io add-ons repository to your Hass.io instance.
    Add the following URL: https://github.com/hassio-addons/repository
  2. Install the “Shinobi Pro” add-on.
  3. Start the “Shinobi Pro” add-on
  4. Check the logs of the “Shinobi Pro” add-on to see if everything went well.
  5. Surf to the superuser admin panel: http://hassio.local:5000/super
  6. Log in with the superuser credentials as specified in the add-on configuration.
  7. Create a Shinobi user account.
  8. Logout from the superuser panel.

You are now ready to use Shinobi, use the freshly created login from now on.

:books: Please read the documentation for more information about the use and configuration of this add-on.

Support


You can always get support here at the Home Assistant community forums, join the conversation!

You have several options to get them answered:

You could also open an issue on GitHub, in case you ran into a bug, or maybe you have an idea on improving the addon:

We will do our best to help you out!

Repository on GitHub


Looking for more add-ons?


The primary goal of our add-ons project is to provide you (as an Hassio / Home Assistant user) with additional, high quality, add-ons that allow you to take your automated home to the next level.

Check out some of our other add-ons in our Community Hass.io Add-ons project.

6 Likes

About the author of this add-on

Hi there!

I am Franck Nijhof, and I have 30 years of programming experience, in many languages. I am using this experience to work on the Home Assistant project by giving back my knowledge and time to the open source community.

The add-on you are currently looking at right now was developed/packaged by me. It is not the only add-on I have created; there are many many more :wink:

However, I have a problem… I am an addict. A :coffee: addict that is. Lucky for you, I turn that C8H10N4O2 (caffeine molecule) into code (and add-ons)!

If you want to show your appreciation, consider supporting me for buying a cup of high octane wakey juice via one of the platforms below! :heart:

Sponsor Frenck via GitHub Sponsors

Support Frenck on Patreon

Enjoy your add-on, while I enjoy the brain juice. :coffee:

Thanks for all the :two_hearts:

…/Frenck

Join our Discord server Follow me on Twitter Flollow me on Instragram Follow me on GitHub Follow me on YouTube Follow me on Twitch patreon-icon

P.S.: In case you want to ask me a question: AMA (Ask Me Anything). Most of the time I am online at the Discord chat. (I go by @Frenck in there as well).

:tada: Release v0.1.0

First release!

This add-on is pretty complex and is released in an experimental state.
Please let me know if you encounter technical issues (by creating a GitHub issue) and I’ll get them fixed!

2 Likes

OMG, the timing could not have been better… Just migrated my estate over to Hassio and doing a tidyup…

Nice work!

Looking forward to using this. However, it will not start. Tried using default config and using MariaDB. But both failed. No logs populated in hassio. Any suggestions?

I haven’t installed this yet. How is the performance like on a RPi3?

I want to try but performances @ RPi3?

Super user login is invalid, what is the reason?

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing... 
-----------------------------------------------------------
 Hass.io Add-on: Shinobi Pro v0.1.0
 Beautiful and feature-rich CCTV/NVR for your cameras
 From: Community Hass.io Add-ons
 By: Franck Nijhof <[email protected]>
-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing... 
Log level is set to INFO
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] 02-updates.sh: executing... 
INFO: You are running the latest version of this add-on
[cont-init.d] 02-updates.sh: exited 0.
[cont-init.d] 03-version-requirements.sh: executing... 
[cont-init.d] 03-version-requirements.sh: exited 0.
[cont-init.d] 10-requirements.sh: executing... 
[cont-init.d] 10-requirements.sh: exited 0.
[cont-init.d] 20-init-configuration.sh: executing... 
[cont-init.d] 20-init-configuration.sh: exited 0.
[cont-init.d] 21-symlink-configuration.sh: executing... 
[cont-init.d] 21-symlink-configuration.sh: exited 0.
[cont-init.d] 30-superuser.sh: executing... 
[cont-init.d] 30-superuser.sh: exited 0.
[cont-init.d] 31-mail.sh: executing... 
[cont-init.d] 31-mail.sh: exited 0.
[cont-init.d] 32-db.sh: executing... 
[cont-init.d] 32-db.sh: exited 0.
[cont-init.d] 33-ssl.sh: executing... 
[cont-init.d] 33-ssl.sh: exited 0.
[cont-init.d] 40-mysql.sh: executing... 
[cont-init.d] 40-mysql.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
starting version 3.2.4
[services.d] done.
No Static FFmpeg. Continuing.
NODE.JS version : v8.9.3
FFMPEG version : 3.4
Shinobi - PORT : 80
2018-04-09T16:30:00+08:00 Shinobi is ready.  
2018-04-09T16:30:01+08:00 { f: 'start', time: moment("2018-04-09T16:30:01.011") }  
Shinobi : cron started

Has anyone got this addon to start? Mine refuses too start with the correct config.

Thanks

I installed and started with the default config. I can get the login page to come up but can’t log in. But I don’t have both ports forwarded so that could be blocking me until I get back home.

Same problem here. I can’t log in trying to run behind a reverse proxy.

Got it working add /super to url

3 Likes

Thank you all for the replies, sorry to hear some of you are having issues with the add-on. I will address each of your posts in the upcoming replies in order to pinpoint the actual problem(s).

What just happened?

Let me start off by saying, that for the first time ever, I’ve actually moderated and deleted posts in a topic EVER!. I’m kinda disappointed this happened and will not tolerate any form of flaming or depleting criticism of any kind, in any of my topics ever again.

Let’s not forget I work my freaking ass off, and am donating more than 20 hours a week to this open source project. I do have a life, wife, kids, and a full-time job as well and am still doing this for freaking free. I don’t expect compliments or such, but I sure as hell will not let people tare down the thing that I gave my heart to, just because they are having a bad day or incompetent enough themselves.

Don’t be scared. I surely accept questions, suggestions and positive criticism… I can handle those quite well and take them in a positive way. They help to create a better product overall, which improves the user experience and helps the community growing. A larger community means more contributors and eventually a more capable piece of software.

I’m going to leave this topic alone for a couple of hours to cool off a little and promise to be back happy and supportive as always.

Thanks.

…/Frenck

29 Likes

I’m having a small issue here.
I am able to get an image of my camera in the main view. However, I can’t get it to play live constantly. It keeps playing, stopping, playing… And it only plays for three seconds until it stops again.

Concerning recordings, sometimes they record everything in clips of 5 minutes. At other times, I get clips with no data (it says they last a few minutes but when I play open them, it shows that they only last 0 seconds).

So what can I do to fix this?

Here are my logs :

From the add-on:

Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: Codec info not found
    at Mp4Frag._parseMoov (/opt/shinobi/node_modules/mp4frag/index.js:274:19)
    at Mp4Frag._findMoov (/opt/shinobi/node_modules/mp4frag/index.js:249:18)
    at Mp4Frag._transform (/opt/shinobi/node_modules/mp4frag/index.js:488:14)
    at Mp4Frag.Transform._read (_stream_transform.js:186:10)
    at Mp4Frag.Transform._write (_stream_transform.js:174:12)
    at doWrite (_stream_writable.js:387:12)
    at writeOrBuffer (_stream_writable.js:373:5)
    at Mp4Frag.Writable.write (_stream_writable.js:290:11)
    at Socket.ondata (_stream_readable.js:639:20)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at Pipe.onread (net.js:594:20)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: Codec info not found
    at Mp4Frag._parseMoov (/opt/shinobi/node_modules/mp4frag/index.js:274:19)
    at Mp4Frag._findMoov (/opt/shinobi/node_modules/mp4frag/index.js:249:18)
    at Mp4Frag._findFtyp (/opt/shinobi/node_modules/mp4frag/index.js:221:18)
    at Mp4Frag._transform (/opt/shinobi/node_modules/mp4frag/index.js:488:14)
    at Mp4Frag.Transform._read (_stream_transform.js:186:10)
    at Mp4Frag.Transform._write (_stream_transform.js:174:12)
    at doWrite (_stream_writable.js:387:12)
    at writeOrBuffer (_stream_writable.js:373:5)
    at Mp4Frag.Writable.write (_stream_writable.js:290:11)
    at Socket.ondata (_stream_readable.js:639:20)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at Pipe.onread (net.js:594:20)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: Codec info not found
    at Mp4Frag._parseMoov (/opt/shinobi/node_modules/mp4frag/index.js:274:19)
    at Mp4Frag._findMoov (/opt/shinobi/node_modules/mp4frag/index.js:249:18)
    at Mp4Frag._transform (/opt/shinobi/node_modules/mp4frag/index.js:488:14)
    at Mp4Frag.Transform._read (_stream_transform.js:186:10)
    at Mp4Frag.Transform._write (_stream_transform.js:174:12)
    at doWrite (_stream_writable.js:387:12)
    at writeOrBuffer (_stream_writable.js:373:5)
    at Mp4Frag.Writable.write (_stream_writable.js:290:11)
    at Socket.ondata (_stream_readable.js:639:20)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at Pipe.onread (net.js:594:20)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
MFRA was found at 4. This is expected at the end of stream.
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
2018-04-09T18:39:06+02:00 { f: 'start', time: moment("2018-04-09T18:39:06.300") }  
{ Error: SQLITE_RANGE: bind or column index out of range errno: 25, code: 'SQLITE_RANGE' }
{ Error: SQLITE_RANGE: bind or column index out of range errno: 25, code: 'SQLITE_RANGE' }
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)
Uncaught Exception occured!
Error: read ECONNRESET
    at _errnoException (util.js:1024:11)
    at Pipe.onread (net.js:615:25)

From Shinobi Pro:

FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **a minute ago**
Last message repeated 1 times skipping 12 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **2 minutes ago**
skipping 9 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **3 minutes ago**
skipping 8 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **4 minutes ago**
skipping 10 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **4 minutes ago**
skipping 9 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **5 minutes ago**
[segment @ 0x57253130] Packets poorly interleaved, failed to avoid negative timestamp -15335 in stream 0. Try -max_interleave_delta 0 as a possible workaround.
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **5 minutes ago**
Last message repeated 1 times [segment @ 0x57253130] Packets poorly interleaved, failed to avoid negative timestamp -31719 in stream 0. Try -max_interleave_delta 0 as a possible workaround.
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **6 minutes ago**
skipping 5 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **6 minutes ago**
skipping 4 segments ahead, expired from playlists
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG STDERR **6 minutes ago**
[h264 @ 0x57268380] A hardware frames context is required for VDPAU decoding.
FDBSU9DWmt : Bc5JGFhdR3
FFMPEG Process Started **6 minutes ago**
cmd : -loglevel warning -analyzeduration 1000000 -probesize 1000000 -hwaccel auto -i "https://stream-ire-charlie.dropcam.com:443/nexus_aac/xxxxxxxx/playlist.m3u8" -acodec aac -vcodec libx264 -r 1 -s 640x480 -f segment -segment_atclocktime 1 -reset_timestamps 1 -strftime 1 -segment_list pipe:2 -segment_time 900 "/share/shinobi/FDBSU9DWmt/Bc5JGFhdR3/%Y-%m-%dT%H-%M-%S.mp4" -preset ultrafast -crf 20 -c:a aac -c:v libx264 -r 2 -f hls -tune zerolatency -g 1 -s 640x480 -hls_time 2 -hls_list_size 3 -start_number 0 -hls_allow_cache 0 -hls_flags +delete_segments+omit_endlist "/dev/shm/streams/FDBSU9DWmt/Bc5JGFhdR3/s.m3u8"

(I also posted this here, as I believe that this issue does not have anything to do with the @frenck’s add-on but with Shinobi Pro itself).

EDIT: I left Shinobi on for the night and things seem to be running well. Clips are now recorded for 15 minutes (as defined in the settings) and I no longer get clips of 0 seconds. However, I’m still not able to get a live camera in the main view. I only get snapshots of the camera. Sometimes, the camera plays and I get sound, but that only lasts a few seconds.

That did it for me, thanks! Got logged in and setup new users.

This worked for me as well, using a reverse proxy. To clarify, here’s what I did:

  1. Add /super to the end of the UI URL (you’ll see the login form with the drop-down box changed to “Superuser”)
  2. Log in using the super privileges specified in the addon’s config
  3. Add a new user account through the UI
  4. Go back to the UI URL without /super (the drop-down box should say “Dashboard”)
  5. Log in to the dashboard with the new account that was added in step 3

Now just need to play around with it and see if I can figure out how to add my cameras.

1 Like

I’m getting

{ Error: SQLITE_RANGE: bind or column index out of range errno: 25, code: 'SQLITE_RANGE' }

in the log of Shinobi and having trouble getting a stream from an Amcrest IP2M-841W. I feel like there must be something simple I’m missing in the setup.

Okay. For real…I’m really in love with @frenck now! Thanks for all your great contributions!

1 Like

Could you please share the add-on logs? They should always be populated with something (or there is a totally different problem going on, which in that case is not related to this add-on).

Please share some details about your installations as well (is it generic? Hardware? Versions of HA/Supervisor/OS).