HASS Addon Shinobi [Revival]

I have made some changes to the depreciated addon which has it working for me. Check it out. :+1:

The original post.

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 Home-Assistant add-on.

  1. Add my repository to your Home-Assistant instance.
    Add the following URL: https://github.com/roblandry/addon-shinobi
  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. Go to the superuser admin panel: http://your_home_assistant_ip_or_host:7440/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.

NOTE: I am working on updating it.

Issues:

If you find any issues, post them in my repo and I will try to fix them.
PRs will be welcomed.

Comments:

I cannot guarantee this will work flawlessly, as @frenck depreciated this for a reason, however it appears to be working.

Consider supporting me for the updates/ aka Revival from the addon graveyard:
The link can be found on my repository.

6 Likes

Hey @Bigrob8181, thanks for taking the time to update the Shinobi addon!

Wanted to try it tonight but ended up not being able to install it with the following error in my logs:

20-06-03 00:20:43 ERROR (SyncWorker_13) [supervisor.docker.addon] Can’t build 7ed3b001/armv7-addon-shinobi:0.3.0b0: The command ‘/bin/bash -o pipefail -c apk add --no-cache --virtual .build-dependencies build-base=0.5-r1 g++=9.2.0-r4 jpeg-dev=8-r6 make=4.2.1-r2 npm=12.15.0-r1 openssl-dev=1.1.1d-r3 pkgconf=1.6.3-r0 python2-dev=2.7.16-r3 yarn=1.19.2-r0 && apk add --no-cache git=2.24.1-r0 ffmpeg=4.2.1-r3 mysql-client=10.4.12-r0 nodejs=12.15.0-r1 python2=2.7.16-r3 socat=1.7.3.3-r1 sqlite=3.30.1-r1 ttf-freefont=20120503-r1 x264=20191119-r0 x265=3.2.1-r0 && git clone -b master --single-branch Shinobi Systems / Shinobi · GitLab /opt/shinobi/ && git -C /opt/shinobi checkout abd40e178a06512f8eec87591289903f79a59779 && git -C /opt/shinobi reflog expire --expire=now --all && git -C /opt/shinobi gc --prune=now --aggressive && cd /opt/shinobi && yarn add mysql sqlite3 && yarn install && apk del --purge .build-dependencies’ returned a non-zero code: 3

Any ideas what may be the issue?

System Info:

System Health

|arch|armv7l|
| --- | --- |
|chassis||
|dev|false|
|docker|true|
|hassio|true|
|host_os|Raspbian GNU/Linux 10 (buster)|
|installation_type|Home Assistant Supervised|
|os_name|Linux|
|os_version|4.19.118-v7l+|
|python_version|3.7.7|
|supervisor|225|
|timezone|America/Edmonton|
|version|0.110.4|
|virtualenv|false|

Thanks for any input.

EDIT: Tried on a second similar install, which includes a number of addons including a non-running Motioneye.
Will try tomorrow with a fresh supervised install and report back.

Jeff

Just a brief dig, it looks like some packages had revisions. If you can access the docker build script, these packages need to be updated to these versions.

openssl-dev=1.1.1g-r0
python2-dev=2.7.18-r0
git=2.24.3-r0
mysql-client=10.4.13-r0
python2=2.7.18-r0
sqlite=3.30.1-r2

If you can’t figure it out I will update when I get a chance.

Great work @Bigrob8181. I have been using Shinobi for some time, firstly with Docker, but more recently as a standalone install on an Ubuntu VM.

IMO, it’s far better than MotionEye, especially if you are running your HA instance on lower end hardware or an SBC. Shinobi uses less RAM, less CPU, file saves are smaller, it’s just better all round.

Well done on reviving this, and I hope more people start using it. :+1:

Thanks for the quick reply Rob.

I forked your project (my first fork) and edited the Dockerfile with your changes as below:

RUN
apk add --no-cache --virtual .build-dependencies
build-base=0.5-r1
g++=9.2.0-r4
jpeg-dev=8-r6
make=4.2.1-r2
npm=12.15.0-r1
openssl-dev=1.1.1g-r0
pkgconf=1.6.3-r0
python2-dev=2.7.18-r0
yarn=1.19.2-r0
&& apk add --no-cache
git=2.24.3-r0
ffmpeg=4.2.1-r3
mysql-client=10.4.13-r0
nodejs=12.15.0-r1
python2=2.7.18-r0
socat=1.7.3.3-r1
sqlite=3.30.1-r2
ttf-freefont=20120503-r1
x264=20191119-r0
x265=3.2.1-r0 \

This resulted in no errors, but the installation gets stuck with a spinning wheel. Checking Portainer there is a random-named container that is running, but nothing available at :7440.

Retrying shortly with more logging turned on.

EDIT: After reboot the container is still there, and now I can access the config “tab” of the addon.

When I click Start, I get a spin and it goes back to Start.

Log shows:

20-06-03 16:36:53 ERROR (MainThread) [supervisor.utils] Can’t execute run while a task is in progress

Will update.

So for the time being, since I have no where near the expertise to troubleshoot this, I’m using a separate container with Shinobi installed. CPU usage is so low compared to Motioneye!

Hopefully the addon can be sorted as that would be my preferred method.

I appreciate all the work you put into this!

EDIT: Motion detection doesn’t work

@Hurricane,
I have updated the code in the repo and have verified it to work on my intel nuc. I also updated the shinobi verson to latest commit as of today.

Let me know how it goes.

I was able to install the addon! Realized that I needed MariaDB so I installed it as well.’

I tried on my Raspberry Pi OS build (where I want to use it) and my NUC build as well, with the same result.

I am unable to start it though, and the container log shows:

[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] 10-requirements.sh: executing…
[23:08:25] FATAL: The configured certfile is not found
[cont-init.d] 10-requirements.sh: exited 1.
[cont-finish.d] executing container finish scripts…
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.

The current config is:

log_level: info
super_username: [email protected]
super_password: admin
mysql: false
mysql_host: core-mariadb
mysql_username: shinobi
mysql_password: sh1n0b1
mysql_database: shinobi
mysql_port: 3306
mail_service: gmail
mail_username: [email protected]
mail_password: your_password
mail_host: smtp.example.com
mail_port: 587
mail_secure: false
mail_cert_verify: true
ssl: false
certfile: fullchain.pem
keyfile: privkey.pem

I did also try completing the email portion with no change. Also tried setting mail_cert_verify: to false.

Super excited to use this if you can iron out the details. I think it can become very popular with how much less resources it requires.

Try removing “ssl: false” from the config. Looks like I might have made a mistake in the logic for a lot of the config options. I will test and update possibly tomorrow.

No go, I can’t even save the config as it errors out

“Failed to save addon configuration, not a valid value for dictionary value @ data[‘options’]”

Also quick question … did you configure motion detection in your NUC install?

hi,

i try to install the custom repo but i got this error :

Repostitory structure for master is not compliant
for :

@Hurricane,
I just updated the logic. I think this should fix it for you. Give it a shot. To answer your question, i have not used motion detection, i just enabled it, seems to work.

@dcjona,
How are you trying to add the repo and what url are you using?

I tried with hacs but it sas a mistake. Retenues with supervisor and i was ok

Tested on RPOS. Initial indication is that you have moved it further along, Now seeing a copy error in the startup log:

[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] 10-requirements.sh: executing…
[cont-init.d] 10-requirements.sh: exited 0.
[cont-init.d] 20-init-configuration.sh: executing…
cp: can’t stat ‘/opt/shinobi/plugins/motion/conf.sample.json’: No such file or directory
[cont-init.d] 20-init-configuration.sh: exited 1.
[cont-finish.d] executing container finish scripts…
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.

Will test on a fresh RPOS and NUC … won’t be able to update till tomorrow.

Thanks for all your efforts!

I found the issue again. This time, it is due to updating shinobi to yesterdays commit in which the motion conf is no longer required as of this commit. I havent dug too deep into the motion changes.

This should get you all of the way. Let me know how it goes.

1 Like

Success!!
Everything works including motion detection and recording!

You’re the man! Thank you very much for making this happen.

Jeff

2 Likes

hi @Bigrob8181, thanks for maintaining Shinobi for HASS. I wanted to give this a try because Motioneye seems a bit resource intensive. I was able to add your repository to my setup, but am unable to get it loaded. I have MariaDB running, with a separate DB for shinobi.

My error messages are as follows. Any ideas what is wrong? Thanks in advance.

No “ffbinaries”. Continuing.
Run “npm install ffbinaries” to get this static FFmpeg downloader.
No “ffmpeg-static”.
Available Hardware Acceleration Methods : vdpau, vaapi
FFmpeg version : 4.2.1
Node.js version : v12.15.0
Shinobi : Web Server Listening on 80
2020-06-09T11:04:06-06:00 Current Version : e16832faad32fe27e8598f1d303dbb9617d35738

[Error: SQLITE_ERROR: near “(”: syntax error] {
errno: 1,
code: ‘SQLITE_ERROR’
}


Added a new config option ffbinaries: false set to true to install the binaries.

Not sure about:

[Error: SQLITE_ERROR: near “(”: syntax error] {
errno: 1,
code: ‘SQLITE_ERROR’
}

as it seems to work despite the error. Using mariadb/mysql will avoid this error message.

Also updated to latest commit.

I tried your latest commit, and had it install the ffbinaries. I found it to be far more CPU and RAM intensive by approximately double, with no discernible increase in quality or speed. I did notice that the log no longer listed any hardware acceleration and I’m thinking that is a least part of the issue.

Reinstalling without the ffbinaries works really well.

Thanks again for all your work on this.

1 Like