HI everyone - so a few people have been having issues with Shinobi and after a bit of messing around here is my successful install (on docker)

so been using Shinobi for a week now (quite a few different builds, but finally found one that works and VERY well too)

they also havent yet documented their Monitor states (set a custom mode like armed, that turns all cameras and motion detector on, or disarmed that sets all cameras motion detectors off)

So here is what i used for a docker set up on Synology…

Using this repo from Gitlab I cloned it



GitLab Files · microservice · MiGoller / ShinobiDocker This repository provides Shinobi Docker images regulary built from the [official Shinobi Docker image repository](https://gitlab.com/Shinobi-Systems/ShinobiDocker) and [microservice Shinobi Docker images](https://gitlab.com/MiGoller/ShinobiDocker/).

BUT i notice the image was pointing to the dev-microservices build - so i modified that in the docker-compose.yaml to use this:

image: migoller/shinobidocker:microservice-debian

it builds a separated db image and shinobi image.

keep an eye on the docker log, and once shinobi is ready goto:

http://<hostIP>:8080/super

use

username: [email protected]

password: admin

then create a new user account.

navigate http://<hostIP>:8080 and log in with the new account creds.

Add your monitors and use default settings.

In the Stream section use MJPEG

Then in the Global Detector Settings Enabled = Yes

use defaults, but set indifference to say 2 or 3

Set save to SQL as yes

create regions (save at this point)

Wait for the monitor to update and then go back into settings.

under Motion Detection there is a section to send GET or send command (use as needed to tell HA motion) ie sent to Node-red or HA input_boolean.

Finally under Traditional Recording

set the video encoder to copy

[this will fix the issue where motion wasnt actually being recorded]

Now the ‘New’ monitor state - do this AFTER you have all your monitors set up

click on your username in the top left and click Monitors` and you'll see a list of monitors (and most importantly the URLs - copy the URL to your code editor). now the first part after the port is API Key , the part after /mjpeg/ is the group key``

ie:

http://192.168.1.31:8080/EtyFt0ylv3HQ2ZQzZBhWzDPxsv0NyN/mjpeg/x5Us8AVw59

API Key = EtyFt0ylv3HQ2ZQzZBhWzDPxsv0NyN

Group Key = x5Us8AVw59

To build the url to tell Shinobi what to do in a monitor state first set modes of the monitors within this state:

{ "monitors": [ { "mid": "monitor1", "mode": "start", "details": { "detector": "1" } }, { "mid": "monitor2", "mode": "stop" } ] }

start = WatchOnly (motion triggered if enabled)

stop = disabled

record = continual recording

detector: 0 = motion detection OFF

detector: 1 = motion detection ON

then you chose the name of the monitor state = [NAME OF STATE]

you can then use delete or insert (where insert is also used to modify``

So all assembled URL is:

http://192.168.1.31:8080/EtyFt0ylv3HQ2ZQzZBhWzDPxsv0NyN/monitorStates/x5Us8AVw59/[NAME_OF_STATE]/insert?data={“monitors”:[{“mid”:“monitor1”,“mode”:“start”,“details”:{“detector”:“1”}},{“mid”:“monitor2”,“mode”:“stop”}]}

if you forget or lose track of your monitor states you can get a list by using this url:

http://192.168.1.31:8080/EtyFt0ylv3HQ2ZQzZBhWzDPxsv0NyN/monitorStates/x5Us8AVw59

Hope this helps folks