-
-
Notifications
You must be signed in to change notification settings - Fork 275
FAQ
- zmNinja 1.2.515 and beyond says "Need API Upgrade" for the 24hr review feature. What does that mean?
-
Live Streaming issues
- zmNinja montage does not seem smooth - feeds seem a little delayed compared to ZM console
- zmNinja is suddenly showing Red Xs (or green dots) for images - APIs are working, ZM is working and I did not upgrade ZM either!
- zmNinja is showing Red X (or green dots) for live view, but I can see events
- Everything works! but live streaming does not in ZMNinja (works in ZoneMinder)
- I'm seeing Red Xs (or green dots) and none of the above suggestions work
- Everything works! but live streaming does not - either in ZoneMinder or ZMNinja
- I upgraded ZoneMinder to 1.30.2 or above and zmNinja stopped working!
- I am running ZM on a custom port. zmNinja is unable to reach my ZoneMinder server but I tried on a regular browser (Firefox/Opera/IE) and it I can reach it
- The Montage screen is causing issues with my ZM server - I get connection timeout issues or MySQL connection problems
- Everything works! but event viewing does not work - I see question marks
- The app works great - except it doesn't work on ONE Android phone - works in others!
- APIs are not working ! ZM console works fine.
- Everything works when I use LAN IP, but I get "not authenticated" when I use WAN IP
- I use self signed certificates with SSL and zmNinja auth doesn't work! (works with http)
- I have 20 monitors but zmNinja only shows 10
- zmNinja montage screen shows all my monitors, but in Event Montage, I only see 5?
- HTTP Basic Auth is not working
- It doesn't work
- My events list is stale - I don't see the latest events
- I'm using mocord/record and I don't see events without alarms
- Pan/Tilt/Zoom doesn't work
-
What is this Event Server
- I am using your event server. I get push notifications to my desktop apps, but not my iPhone/Android phone
- It looks like you allow me to modify the frequency of push notifications. Very cool - will it send me all events that I missed if I make the frequency of a monitor event push to say, 600 seconds?
- Oooh. I have 20 cameras and I have 15 phones. I've registered push on all of them and I love getting notifications
- Weird issue. I'm on Android. When I exit the app via the 'back key' or from the menu, I get a "the connection to the server was unsuccessful" error when I start the app again.
- Is this free?
- Who are the developers behind this?
- Is zmNinja an official ZoneMinder product?
- I want to donate money
- I want to donate time/expertise/code
- How to report errors
zmNinja 1.2.515 and beyond says "Need API Upgrade" for the 24hr review feature. What does that mean?
You need to update an API file in Zoneminder server. ZoneMinder folks haven't yet made a release with that API change.
To do it manually,simply replace your EventsController.php (typically in /usr/share/zoneminder/www/api/app/Controller) with the latest one from Zoneminder master.
zmNinja does not use nph-zms to display live feeds in montage. This is because Chrome only allows a maximum of 6 connections per (sub)domain which means you can't have more than 6 active TCP connections to a single domain at the same time. This also means that you can't display more than 6 monitors together. To avoid this, I use the zoneminder "snapshot" feature that displays a still from the monitor and then refresh it every X seconds (by default X=2 unless you switch to low bandwidth mode. You can change X in developer settings)
zmNinja is suddenly showing Red Xs (or green dots) for images - APIs are working, ZM is working and I did not upgrade ZM either!
It seems the latest update of Chrome (v59) broke access if used with basic credentials. The bug report is here
How this affects you:
- If you are running zmNinja on Android
- AND your Chrome version shows version 59.x - 61.x (and possibly later versions, unless google engineers patch it)
- AND you are using HTTP Basic Authentication
Then your images won't show. According to Chrome developers, a fix will be posted in v61 of Chrome.
Possible Workarounds:
- Disable HTTP Basic auth for now
- Downgrade Chrome
- Wait for v61 to be released (of Chrome) and hope they fix the bug (I can't control when the fix is provided by Google)
- Shoot me an email for an interim version of the app that uses crosswalk - it essentially bundles its own browser, but you'll have to delete your existing zmNinja app before you install the new APK and it won't auto upgrade (its a sideloaded app)
The chances are very high that you have enabled ZoneMinder's Multi-Server option and you entered something like localhost in server settings. DON'T. You can't enter localhost. If you are not using multi-server, remove any server settings. If you are using multi-server, you need to put in a valid server IP or hostname, not localhost. BTW, if you did put in localhost you will note that your ZM web console also won't work if you try to launch your browser on a different machine from where ZM is running.
- Try to use the wizard. If it fails,
- Go to zmNinja settings and fix your cgi-bin path. the automatic path that is filled in won't work. Here is a hint, go to zoneminder->options->paths and check the value of the cgi-bin path - your zmNinja path will be "base path of your server" + cgi-bin path.
If you are seeing Red X marks for both live view and events, you likely have a wrong cgi-bin path set in settings. Please run the wizard.
Check if streaming works in the web interface. If it does not work, zmNinja won't work either. Fix ZM first
ZoneMinder changed API packaging with ZM 1.30.2 and above. You will have to read your distro notes on how to properly update. Read this thread. Before you think zmNinja is the problem, make sure your APIs are working. Summary of reasons why zmNinja might have stopped working:
- You did not check if your APIs are working after the upgrade
- You did not upgrade properly (just updating the ZM package without following distro instructions with ZM is not sufficient)
- You are missing some key CakePHP modules, likely
php5-apcwhich would have been installed if you read all the package instructions. You can install it manually - You might need to restart your system after upgrading (properly)
##I am running ZM on a custom port. zmNinja is unable to reach my ZoneMinder server but I tried on a regular browser (Firefox/Opera/IE) and it I can reach it ####
zmNinja on Android and Desktops uses an embedded chrome browser. Chrome marks certain ports as "unsafe" and won't allow connections to go out. The list of ports to avoid are here
The Montage screen is causing issues with my ZM server - I get connection timeout issues or MySQL connection problems
- zmNinja uses a different approach to display montage than ZoneMinder. In zmNinja montage screen, I display a snapshot of each monitor and refresh it every few seconds. This results in many short TCP connections constantly being opened and closed. The reason I have to do this is Chrome only allows 6 connections to a domain, which means if I don't keep terminating TCP connections, I won't be able to show more than 6 monitors. Each time I open a new TCP connection for a snapshot, the ZM backend invokes mySQL to authenticate the request. You will need to increase mySQL
max_connectionsinmy.cnfif you are facing time_wait/timeout issues.
- Look at apache error logs - it often gives you hints
If you are using ZM < 1.30:
- You don't have php5-gd installed (or php-gd). You need this package. For ubuntu it's
sudo apt-get install php5-gd. Make sure you restart apache. - It's possible you are not using the latest version of ZM and you need to replace your version of
web/views/image.phpwith this file
zmNinja uses an embedded chrome browser in its app. If you have safe browsing enabled, it may affect zmNinja. However, if you are facing this problem, its likely you can't access ZM from a mobile web browser either. The problem that might be occurring is that zmNinja is trying to reach your ZM server and your settings prohibit it from reaching ZM, so it fails. See this discussion
Read this
This is likely happening if you use self signed SSL certs. If you are using self signed certificated, you should make sure the "common name" matches the hostname (or public IP) of the server you are installing ZM in. If not, zmNinja's SSL handshake will fail.
If you have used 'make-ssl-cert' or a similar tool that automatically generates the cert for you, its very likely you have certificate that uses the 'unix hostname' of your server. That will not work.
Assuming you are usin apache and have SSL enabled, here is how to regenerate the certs (ubuntu specific, may need to tweak it for your distro)
This will create a self-signed certificate/key pair and store it in /etc/apache2/ssl (you may have to create that directory, or store it elsewhere)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/zoneminder.key -out /etc/apache2/ssl/zoneminder.crt
Next up, edit your apache ssl config (example /etc/apache2/sites-available/default-ssl.conf) And add/modify the following lines:
SSLCertificateFile /etc/apache2/ssl/zoneminder.crt
SSLCertificateKeyFile /etc/apache2/ssl/zoneminder.key
restart apache
sudo service apache2 restart
Starting release 1.0.6, you no longer need to install SSL certificates on the phone. If you are running a version less than 1.0.6 the stuff below applies:
For versions <1.0.6: Please read [the SSL guide] (https://github.com/pliablepixels/zmNinja/blob/master/docs/SSL-Configuration.md). Summary:
- You need to make sure the common name used while generating the cert is the same as the hostname you specify in zmNinja
- You need to make sure you import the SSL cert into your phone (if you are using the mobile app).
Go to developer settings - increase the limit.
You are likely using Chrome (Android or desktop version). Chrome allows a total of 6 simultaneous connections to a domain/sub-domain. ZoneMinder uses a long running TCP stream for each monitor display (keeps sending jpeg images). This means you can only display 6 streams at a time in Chrome. I work around this problem by not asking for live streams in montages - I ask for 'snapshots' and keep refreshing snapshots every 2 seconds. This makes montage display non-realtime, but scales to as many monitors you have. In Event Montage however, I am using zms to display long running streams - trying to do snapshots in event montage is a lot of work and I need to keep track of when the event ends, move to next image etc. I limit this to 5 because I need 1 for control messages.
The login/password fields of zmNinja are not the same as basic auth credentials. These are for ZM's own OPT_AUTH system. To use basic auth, specify the URLs as user:password@server.com/path in the ZM URL, API URL and cgi-bin URL. Also enable authentication and put in any random login/password in the ZM auth fields (x/x)
It does. If you need more help, please enable Debug Logs (Developer Settings) then please look at the logs and let me know what you see.
Tap on the "..." menu option and tap refresh. Alternately, exit events view, load another view, and go back to events.
Tap on the "..." menu option and toggle "Show all events". By default, it shows events with at least one alarm frame
Tilt/Zoom/Presets support has not been added. But for this to work, PTZ needs to work in ZM first. Once it works in ZM, try it in ZMNinja.
The Event Server is a contribution I made to ZoneMinder that adds a daemon to the existing list. It listens for new events using shared memory (aka very efficient) and then sends notifications of events to listeners (you can write your own app that listen as well as use zmNinja). This is a chapter on its own, and I have a dedicated page/project for this here. I'd encourage you to install and use it - its very nice.
I am using your event server. I get push notifications to my desktop apps, but not my iPhone/Android phone
Both Apple and Android require that only trusted "servers" can push notifications to your phone. By "trusted", they mean the server needs to use the same SSL certificates that zmNinja uses. That way they can make sure only the author of the app can send the app messages. This makes a lot of sense, because otherwise anyone could spam your phone.
What this means is that you need to enable "usePushProxy" in the event server and have it point to my public push server. If you install the event server, this is enabled by default. If it is not working, check your ZM logs (not ZMNinja) to see if zmeventserver is complaining about anything
It looks like you allow me to modify the frequency of push notifications. Very cool - will it send me all events that I missed if I make the frequency of a monitor event push to say, 600 seconds?
Nope. It only sends the latest events. What it does is before sending push notifications, it checks if the last time a push was sent for this monitor is < the time you specified. If it is, it does not send. That's all.
Oooh. I have 20 cameras and I have 15 phones. I've registered push on all of them and I love getting notifications
Awesome. Happy you liked it. But please help me by configuring zones properly so you don't keep routing a huge number of false alarms to my server. Its running in a VM in an iMac and I'd appreciate you tuning your intervals and zones so my server doesn't die. The push server is now hosted by www.wk-it.net - thanks Kevin!
Weird issue. I'm on Android. When I exit the app via the 'back key' or from the menu, I get a "the connection to the server was unsuccessful" error when I start the app again.
See this proposed workaround. I currently have no clue why that is occuring.
The source code is free, grab it, compile it, use it. The desktop ports are free as of today. I may charge for it some day. The mobile ports are in Appstore/Playstore for a fee.
Me.
No. But the ZM developers are amazing people who have been very helpful.
You could either donate to to Zoneminder or donate to zmNinja. Donations to ZoneMinder don't contribute to zmNinja, but the ZoneMinder devs will benefit from it, which is fine too.
Great. Make sure you read the license , read the contributing guidelines and if it works for you, happy to see what you'd like to do.
- I'm not a magician. I don't know why something is not working if you don't provide sufficient inputs. Enable debug logs in zmNinja Developer options and then email me the logs. Thats a good start.
- Its often hard to infer a problem especially when its due to some unique apache/nginx mungling you might have done but haven't told me about it. In such cases, try and give me remote access to your ZM for a day. Configure a limited user with just one monitor. It will save hours of frustration (mostly on my side). Thanks