diff options
Diffstat (limited to 'docs/docgen/html/_sources')
| -rw-r--r-- | docs/docgen/html/_sources/guides/FAQ.rst.txt | 762 | ||||
| -rw-r--r-- | docs/docgen/html/_sources/guides/contributing-language.rst.txt | 60 | ||||
| -rw-r--r-- | docs/docgen/html/_sources/guides/desktop.rst.txt | 113 | ||||
| -rw-r--r-- | docs/docgen/html/_sources/guides/source.rst.txt | 236 | ||||
| -rw-r--r-- | docs/docgen/html/_sources/guides/validating-api.rst.txt | 96 | ||||
| -rw-r--r-- | docs/docgen/html/_sources/index.rst.txt | 35 |
6 files changed, 0 insertions, 1302 deletions
diff --git a/docs/docgen/html/_sources/guides/FAQ.rst.txt b/docs/docgen/html/_sources/guides/FAQ.rst.txt deleted file mode 100644 index 0182e65f..00000000 --- a/docs/docgen/html/_sources/guides/FAQ.rst.txt +++ /dev/null @@ -1,762 +0,0 @@ -zmNinja FAQ -``````````` - -What is the minimum supported version of ZoneMinder, Android and iOS? ---------------------------------------------------------------------- - -You need a minimum of ZM 1.30.4 with APIs working. You may get it to run -in previous versions, but I don't support them, so you are on your own. - -Starting version 1.3.26 of zmNinja, only IOS 10+ and Android 5.0+ -devices are supported. - -zmNinja Help ------------- - -I've just started uploading instructional videos for zmNinja. I'll add -more over time. See them -`here <https://github.com/pliablepixels/zmNinja/wiki/Help-Videos-for-zmNinja>`__ - -Asking for refunds ------------------- - -For iOS: To get a refund, Apple wants you to contact them directly -using `this <https://support.apple.com/en-us/HT204084>`__ link. There used to be -a time when I could process a refund myself, but it seems Apple doesn't provide -that interface anymore. - -For Android: If you're not happy with zmNinja and have bought the app, -please `send me an email <mailto:pliablepixels@gmail.com>`__ **with your -order id**. - -Note that depending on how long ago you made the order, I may not be -able to refund. Its not my policy - The app/play stores disable the -refund option. For example, I could not refund an app a user purchased 2 -years ago. - -Also, please read `Things you should own up -to <#things-you-should-own-up-to>`__ - -Things you should own up to ---------------------------- - -Read the app description -~~~~~~~~~~~~~~~~~~~~~~~~ - -Both the Apple and Android stores have a clearly visible note on the app -description that it requires a working API for ZoneMinder. If you are -not willing to ensure the API works, please save yourself and me time. -I'm sorry this is the first post, but I get emails from too many -entitled/rude folks about APIs not working. Not my problem. Read below. -Breathe. - -Try before buy -~~~~~~~~~~~~~~ - -Some users legitimately look around for an option to try before they buy -and they are not savvy enough to `download the -code <https://github.com/pliablepixels/zmNinja>`__ and compile (:doc:`source`) for -themselves. Fair enough. In that case, `download the Desktop -version <https://github.com/pliablepixels/zmNinja/releases>`__ of -zmNinja. It's free and is the same code as mobile. Make sure the desktop -version works before you buy the mobile version. - -The reason I don't have a "trial mobile version" is that I find the -process too complex using in-app-purchases and chose not to do it to -make life simpler for me. As a substitute, I do make the full code -available for free and offer a desktop binary version free too. - -zmNinja doesn't work. Actually, even ZoneMinder web console doesn't work. You should fix this! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yeah, look - I understand zmNinja won't work if ZoneMinder web console -doesn't work. That being said, I really don't have time to help you -debug ZoneMinder issues. I only develop the app (zmNinja). If you can't -set up ZoneMinder properly, please post your questions in the `ZM -forum <https://forums.zoneminder.com>`__. You'll find more qualified -people to help you. I don't develop nor control ZoneMinder. It's a -different set of folks. Now, I'll help you, but only after you have -spent sufficient time trying your best and provide sufficient logs of -what you have done. Also remember, if you buy zmNinja, **I'm happy to -refund it anytime - just send me an email.** - -In short, I don't have the time to support ZoneMinder install issues - -sorry about that - -zmNinja doesn't work. Zoneminder works, but I have no idea why APIs don't work. You should fix this! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -*Sigh*. I don't maintain ZoneMinder. I only develop the app. *You* need -to make sure ZoneMinder APIs work. ZoneMinder web console doesn't use -APIs. Neither does zmView. zmNinja does. It says so in the description -of the app in the store. So feel free to fix your APIs, or ask me for a -refund. Just don't whine to me, please, if your APIs are broken. I'm -*not* going to fix them for you, especially if you act like its not your -problem. `I'm perfectly fine if you choose not to use my -app <https://medium.com/zmninja/no-soup-for-you-42ac0927952>`__, which -is why I refund, anytime. - -I can't compile zmNinja, help me! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -I put out the source code, so people who know how to compile are able to -do it themselves. I also hope this will encourage folks to PR changes -(though this has rarely happened). The problem however, is that -dependencies/libraries keep changing. I just don't have the time to help -debug. If it happens to me, I'll fix it. If it doesn't I have very -limited time to remotely debug your setup issues. I'd much appreciate if -you figured it out on your own. Feel free to create an issue after -you've tried enough, but I can't guarantee I'll spend a lot of time on -source code compile issues. - -How to report errors --------------------- - -- I don't know why something is not working if you don't provide - sufficient inputs. Start by creating a `GitHub - issue <https://github.com/pliablepixels/zmNinja/issues>`__ and please - fill in the template correctly. If you don't want to post debug logs - in the issue, `email <mailto:pliablepixels+zmNinja@gmail.com>`__ them - to me and mention in the issue you've emailed them (you can email by - going to logs screen and tapping on the envelope button (mobile) or - you can download logs (cloud icon, desktop version) - -- If zmNinja was working, but it stopped after you upgraded ZoneMinder - be sure to mention which version was working and which was not. In - this case, please make sure you have validated the APIs work - -- Before you create an issue, please make sure you have read the - sections on `connection - issues <#connectionauthentication-issues>`__ - and `streaming <#live-streaming-issues>`__ - issues and Step 6 of :doc:`validating-api` - -- 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 - -- I have released the desktop version free - download it - `here <https://github.com/pliablepixels/zmNinja/releases>`__. Its - always easier to debug on the desktop version - give it a try. If you - hit Shift+Cmd/Ctrl+D it brings up a debug window - it helps debugging - -- Always tell me what your ZoneMinder & zmNinja versions are - -- If your app suddenly stopped working: - - - Send me DEBUG logs of the app - - tell me what changed (got to be something. You updated the app, - you upgraded ZM) - - What exactly is not working? - -If zmNinja does not start on your device -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -There are some odd cases, where zmNinja does not start (or gets stuck in the splash screen) on specific devices. -It is very hard for me to know why it fails on certain devices, but I can try. Here is what you need to do: - -You have to send me system logs of the device. To get system logs: - -- You will have to install ADB (Android Debug Bridge). It comes along with the Android SDK but if you don't have the SDK (most won't) you can refer to https://www.xda-developers.com/install-adb-windows-macos-linux/ - -- Once ADB is installed, connect the phone to the browser (make sure you have allowed debugging on the phone menu - it should ask) and type in ``adb logcat >result.txt`` and try to start the app. A lot of logs will be generated. Please `email them to me <mailto:pliablepixels@gmail.com>`__ - - - -Profile information storage related ------------------------------------ - -zmNinja is not saving my information. It keeps asking me to re-enter all my data -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -I've seen this happen in two cases: \* You are running out of space. -Clean up some space and try again \* On specific Android devices, -typically running Android OS less than 6.0, some (2-3) users have -reported this issue. I still don't have a good answer. Please update to -the latest app version and send me debug logs, please - -I updated my zmNinja app and all my server settings were cleared. Why? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Sorry. I've made several releases where due to programming errors, -settings got wiped out. However, starting v1.3.021 for Android and -v1.3.025 for Android, I've introduced the facility to sync with the -cloud (Google Drive/iCloud). This is the settings option. It is enabled -by default. This means if you uninstall the app and install again, the -settings should get restored. Note that both in iOS and Android, backup -schedule is managed by the OS. You can force a backup going to settings -and forcing a backup, or wait till the OS backups (typically a few -hours/phone plugged in/not being used) - -Do also note that 1.3.027 and beyond use a new WebView called WKWebView -(because iOS deprecated the old webview). If you disabled iCloud you -will have to re-enter your settings again (only once). This may not -affect Android, but I don't know for sure. - -Connection/Authentication issues --------------------------------- - -General tips -~~~~~~~~~~~~ - -- Disable server redirects like 302 and then try if using the mobile - app -- To make sure there are no connection issues, launch your **phone - browser** and try to reach ZoneMinder. If that doesn't work, neither - with zmNinja. Many users try to access ZoneMinder from a desktop - browser and/or on the same server it is running and forget the phone - is a different device! -- Some phones need the SSL certificate installed in the device -- Specific SSL settings can cause issues with Android or iOS -- Don't use funky/special characters in passwords - try changing it to - a complex password without funky characters and try -- Use the wizard - I've seen many examples of typos when the user - thinks they don't have a typo -- If you are using basic authentication, make sure your credentials are - correct. A good way to test is to first disable basic auth and enable - it after you are sure things work without basic auth. -- Please note zmNinja does NOT support Digest authentication. So please - don't put in digest auth info when zmNinja asks for basic - authentication -- Look at your ZM logs and zmNinja logs - they help isolate the problem - -Server Redirects -~~~~~~~~~~~~~~~~ - -If the Wizard fails to connect in the mobile app but works in the -desktop app, it may be that your server is sending redirects. -Unfortunately, the current mobile HTTP stack doesn't handle cookies with -redirects well. Till this bug is fixed by the plugin author Wizard won't -work. Note that if you are running ZM 1.32 or above, you can directly -enter your settings without using the wizard and it will work because it -will try and use the new ZM 1.32 ``login.json`` API first. - -Self signed certs -~~~~~~~~~~~~~~~~~ - -A lot of people use self-signed certs. I'd strongly recommend you use -`LetsEncrypt <https://letsencrypt.org>`__ if you can. It's free. That -being said zmNinja does support self signed certs. Make sure "Enable -Strict SSL" is off in Developer settings. You will need to restart the -app. - -SSL settings -~~~~~~~~~~~~ - -If you are getting ``SSL protocol/handshake errors`` in your logs, you -very likely have specific ssl settings enabled server side that your -device network stack does not support. Note that just because it works -with the device browser does not mean it will work with zmNinja as -zmNinja does not use the browser HTTP implementation in mobile devices. - -One use reported that a setting of ``ssl_ecdh_curve secp384r1`` in his -nginx config was resulting in zmNinja Android not being able to connect -to the server. Changing it to -``ssl_ecdh_curve secp521r1:secp384r1:prime256v1;`` worked for him. - -I'd strongly recommend you remove all special ssl settings except the -certificate and key file locations, make it work and then add the -settings back one by one and see what works/does not work. - -Everything works when I use LAN IP, but I get "not authenticated" when I use WAN IP -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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 - -Live streaming issues ---------------------- - -Summary of Everything works, but I can't see live feed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -*Please* be diligent in reviewing this list. You'd be surprised how many -times I've had users tell me 'they have checked this list' only to find -out later they skimmed details. - -- Please enable ``AUTH_HASH_LOGINS`` as well as set ``AUTH_RELAY`` to - "hashed" - -- You think your APIs are working, but they are really not. If you open - a browser and type in ``https://yourserver/zm/api/monitors.json`` and - you see some text on top followed by monitor data, your APIs are - *not* working. You need to search the forums and figure out how to - get rid of that text. - -- Your ZoneMinder live view from the web console doesn't work either. - If this is the case, fix ZoneMinder first. Before you say "web - console works fine", make sure you are running it from a different - computer from where ZM is running. -- The phone/computer running zmNinja does not have access to your ZM - server. For example, many people test the web console on their LAN - but test zmninja on a WAN connection -- Always try with the `free desktop - version <https://github.com/pliablepixels/zmNinja/releases>`__ first. - Enable debug view by hitting Ctrl/Cmd+Shift+D and you can see debug - logs in the console view. I can't emphasize enough how useful this - is. -- Your ``cgi-bin`` setting in zmNinja is incorrect. Please run the - wizard. There are times when the wizard can fail. In those cases, - open up ZM web console, go to view the monitor and do an "Inspect - Source" in the browser. That will show you the cgi-bin link that you - can use in zmNinja. - -For example: - -In the above case my zmNinja cgi-bin setting is -``https://myserver:myport/zm/cgi-bin`` - -- You are using Basic Authentication. See - `here <#i-can-t-see-streams-i-use-basic-auth>`__ -- You have 'multi-server' configuration enabled and you have done it - wrong. Go to ZM Web Console->Options->Servers - if you see any - entries there and you don't know what multi-server is, or you don't - use it, please disable multi-server -- When trying to view live images, look at your *webserver* error logs - - example Apache's ``error.log`` - see any image/jpg errors? That - means you are missing libraries -- You have set up a multi-server install of ZM without knowing you did - See `here <#i-can-t-see-streams-multi-server-is-enabled>`__ -- Look at zmNinja, ZoneMinder and web server error logs at the time of - error - one of them should give more clues. Please send me *all* the - logs if you ask for help -- Read the set of notes below - -General note -~~~~~~~~~~~~ - -To debug streaming notes, always try with the free desktop version -first. When trying to stream simultaneously look at the debug logs of -zmNinja (``Ctrl/Cmd+Alt+D`` in desktop build, console and/or network -tab) and your webserver error logs. - -I can't see stream: And I can't see streams in ZoneMinder webconsole either -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Check if streaming works in the web interface. If it does not work, -zmNinja won't work either. Fix ZM first - -I can't see streams: I use basic auth -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Starting Chrome v59, the browser changed basic credential behavior. The -issue report is -`here <https://bugs.chromium.org/p/chromium/issues/detail?id=435547#c33>`__. -Here is the core issue: zmNinja constructs URLs as -``http://user:password@server`` when you have basic auth (and starting -v1.3 uses the ``Authorization`` header). However, since images are -rendered using ``<img src>`` there is no option but to put in a -``user:password`` in the URL. Chrome allows this format for direct -requests (such as API calls) but will strip out the ``user:password`` -part for *embedded* requests (like ``<img src="">`` tags inside a page). -So what happens is your APIs work, but you won't see images. There is a -reason why Chrome does this - its bad to pass on a user :password in a -URL as its clear text (even if you are on HTTPS, as its in the URL). As -I said earlier, The *right* way to do this is to replace the -``user:pass`` with an ``Authorization`` header but there is no way to do -that with images that are rendered with ``<img src>`` (There are several -plugins that attempt to do this, but don't work with streaming MJPEG -images). Bottom line, this is a problem for apps like zmNinja and it -affects you. - -How this affects you: \* If you are using HTTP Basic Authentication - -Then your images won't show. - -Possible Workarounds: \* Configure your web server to skip basic -authentication for ``nph-zms`` URLs \* If you are using a ReverseProxy, -you can insert the authorization header inside the apache proxy \* -Disable HTTP Basic auth for now \* Downgrade Chrome - -Skipping auth for ``nph-zms`` URLs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Here is what I've used that works with basic-auth. This requires a basic -auth portal login and once logged in allows skipping of image URLs (the -idea comes from `Adam Outler <https://github.com/adamoutler>`__ - he -uses a different approach using reverse proxies, which I link to later) - -.. code:: apache - - # this configuration assumes your server portal is server:port/zm - # and cgi-path is /zm/cgi-bin. Please change it to your specific environment - # Also requires Apache 2.4 or above - - <Location /> - SetEnvIf Request_URI ^/zm/cgi-bin/ noauth=1 - SetEnvIf Request_URI ^/zm/index.php noauth=1 - AuthType Basic - AuthName "Auth Required" - AuthUserFile "/etc/apache2/.htpasswd" - <RequireAny> - Require valid-user - Require env noauth - </RequireAny> - </Location> - -Authorization with a ReverseProxy -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Simple starter -'''''''''''''' - -**STEP 1**: Enable "Append basic auth tokens in images" option in -zmNinja->Developer Settings and save. What this does is that image URLs -will append a "basicauth" token parameter with your basic authentication -credentials. This token can then be parsed by Apache and inserted as a -valid Authorization header. Don't enable this option if you are not -using HTTPS because the request-URI will be transmitted without -encryption and it will contain your basic auth credentials, encoded in -base64, which is trivial to decode. - -**STEP 2 (Apache)**: Use mod\_rewrite and mod\_header to convert the -token into an authorization in your Apache config. Add this to the -relevant section (``VirtualHost`` or others) - -.. code:: apache - - RewriteEngine on - RewriteCond %{QUERY_STRING} (?:^|&)basicauth=([^&]+) - RewriteRule (.*) - [E=QS_TOKEN:%1] - RequestHeader set Authorization "Basic %{QS_TOKEN}e" env=QS_TOKEN - -**STEP 2 (Nginx)**: Thanks to user [@ysammy](https://github.com/ysammy) - -.. code:: nginx - - location /zm/cgi-bin/nph-zms { - proxy_pass http://<IP>:<PORT>/zm/cgi-bin/nph-zms; - proxy_set_header Authorization "Basic $arg_basicauth"; - } - -A more complete and more secure option -'''''''''''''''''''''''''''''''''''''' - -User `Adam Outler <https://github.com/adamoutler>`__ has contributed the -following process: see -`HERE <https://github.com/pliablepixels/zmNinja/wiki/Apache-Proxy-Authorization-with-HTTPS,-Basic-Auth,-and-ProxyPass>`__. -Adam also has this to say about why proxies should be recommended for -HTTPS enabled ZoneMinder instances: - - A proxy server should be on the list of recommendations for - Zoneminder. HTTPS requires processing to encrypt and decrypt. This - takes processor cycles away from Zoneminder's recording. Since HTTPS - is now basically a requirement, there should be a page dedicated to - proxy, https, auth, and their nuances. I just picked up 2-4K cameras - and processing suddenly became an issue :). - -I can't see streams: Multi-server is enabled -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The chances are very high that you have enabled ZoneMinder's -`Multi-Server <http://zoneminder.readthedocs.io/en/stable/installationguide/multiserver.html>`__ -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. - -I can't see streams: you have cgi-bin issues -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- 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. - -zmNinja montage does not seem smooth - feeds seem a little delayed compared to ZM console -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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) - -That being said, starting v1.3.0 of zmNinja onwards, I now support -multi-port (available in ZM 1.32 onwards) that lets you stream as many -monitors as you need. Read -`this <https://medium.com/zmninja/multi-port-storage-areas-and-more-d5836a336c93>`__ -post for more details. - -Event images/streaming related ------------------------------- - -General note -~~~~~~~~~~~~ - -To debug streaming notes, always try with the free desktop version -first. When trying to stream simultaneously look at the debug logs of -zmNinja (``Ctrl/Cmd+Alt+D`` in desktop build, console and/or network -tab) and your webserver error logs. - -Also, Starting ZM 1.32 and beyond, please enable ``AUTH_HASH_LOGINS`` as -well as set ``AUTH_RELAY`` to "hashed" - -Event stream viewing does not work -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- Look at apache error logs - it often gives you hints - -Video Not Playable -~~~~~~~~~~~~~~~~~~ - -- Mobile devices have more restrictions to video playback than - destkops. Make sure you first check if the video is playable in - Chrome using the same phone you are using zmNinja on -- There could be other reasons due to which the video is not playable: -- There is an encoding issue in the video generated -- The video resolution is too big (see `this - thread <https://forums.zoneminder.com/viewtopic.php?f=33&p=108788#p108774>`__) -- In general, to get to the root of what is going on, you'll need - device logs using ADB (see - `this <https://forums.zoneminder.com/viewtopic.php?f=33&p=108788#p108753>`__) - -Event thumbnails/images don't show -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Starting zmNinja 1.3.26 and beyond, if you are using OPT\_AUTH you need -to enable AUTH\_HASH\_LOGINS or you won't be able to see image snapshots -and thumbnails. Only applicable for mobiles. - -When viewing individual frames, some event frames show, but some don't -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This can happen if you are using Video Storage (Passthru or X264 Encode) -and have disabled frame (JPEG) storage completely. What happens is -ZoneMinder uses ``ffmpeg`` to extract frames from timestamps and -sometimes it is unable to extract a frame for a specific timestamp, -resulting in this issue. If you see HTTP 404 messages for some frames, -but the video plays fine, then this is why. - -zmNinja montage screen shows all my monitors, but in Event Montage, I only see 5? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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. - -Other misc. issues ------------------- - -I suddently see an error message saying I need to enable ZM\_AUTH\_HASH\_LOGINS. This wasn't there before -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Yes. Starting 1.3.027 onwards, due to a new UI web rendering engine that -enforces CORS, I've had to change my strategy on how network calls are -made. Briefly, on mobile devices, I now use a native HTTP stack and not -the browser HTTP stack. However, images are rendered using the browser -HTTP stack which causes this message. In short, you need to enable it, -and restart ZM. - -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 (as of Apr 2018) 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 `this -one <https://raw.githubusercontent.com/ZoneMinder/zoneminder/85b7baa13178a838fe9fae94405c99fe7d2c669c/web/api/app/Controller/EventsController.php>`__. - -I upgraded ZoneMinder to 1.30.2 or above and zmNinja stopped working! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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 <https://forums.zoneminder.com/viewtopic.php?f=36&t=26002&start=30&hilit=api+broken>`__ -thread. Before you think zmNinja is the problem, make sure your APIs -are working (see :doc:`validating-api`) - -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-apc`` which 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 <http://tech-stuff.org/which-ports-are-considered-unsafe-in-browsers/>`__ - -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_connections`` in ``my.cnf`` if - you are facing time\_wait/timeout issues. - -The app works great - except it doesn't work on ONE Android phone - works in others! -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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 <https://forums.zoneminder.com/viewtopic.php?f=33&t=25946>`__ -discussion - -APIs are not working ! ZM console works fine. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:doc:`validating-api` - -I'm using mocord/record and I don't see events without alarms -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Tap on the "..." menu option and toggle "Show all events". By default, -it shows events with at least one alarm frame - -Taking snapshots or downloading videos don't work in Android -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you are unable to download/save, look at your logs. If you see -something like -``"exception":"java.security.cert.CertPathValidatorException: Trust anchor for certification path not found."`` -, chances are you are using self-signed certs. You need to install the -certificate on your phone. Installing is as easy as emailing yourself -the ".crt" file and tapping on it from your device to install it. In -general, both Apple and Google have been incrementally tightening rules -for self signed certificates - they generally discourage usage of such -certs and over time both Chrome (Android) and WkWebView (iOS) have added -new restrictions/checks which affects usage. - -Pan/Tilt/Zoom doesn't work -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -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. Also -note that you may need to disable CSRF in your Options in ZoneMinder - -it seems to cause all sorts of issues. - -What is this Event Server? --------------------------- - -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 <https://github.com/pliablepixels/zmeventserver>`__. I'd encourage -you to install and use it - its very nice. - -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. - -Is zmNinja free? ----------------- - -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. - -Who are the developers behind this? ------------------------------------ - -Me. - -The code needs improvement --------------------------- - -You are being nice. I know the code is terrible. I'm not a coder by -profession. This was my first project to learn how to write a mobile -app. So the app evolved from no knowledge to some knowledge. It -comprises of terrible to passable to reasonable code. There is a reason -why my `profile <https://github.com/pliablepixels>`__ says what it says. -But hey, if you can improve it, please PR! - -Is zmNinja an official ZoneMinder product? ------------------------------------------- - -No. But the ZM developers are amazing people who have been very helpful. - -I want to donate money ----------------------- - -You could either `donate to to -Zoneminder <https://www.bountysource.com/teams/zoneminder>`__ or `donate -to zmNinja <https://salt.bountysource.com/teams/zmninja>`__. Donations -to ZoneMinder don't contribute to zmNinja, but the ZoneMinder devs will -benefit from it, which is fine too. - -How does zmNinja use my personal data? --------------------------------------- - -Please read -`this <https://medium.com/zmninja/zmninja-privacy-and-your-data-5489a5974baf>`__ - -I want to donate time/expertise/code ------------------------------------- - -Great. Make sure you read the -`license <https://github.com/pliablepixels/zmNinja/blob/master/LICENSE>`__ -, read the `contributing -guidelines <https://github.com/pliablepixels/zmNinja/blob/master/CONTRIBUTING.md>`__ -and if it works for you, happy to see what you'd like to do. diff --git a/docs/docgen/html/_sources/guides/contributing-language.rst.txt b/docs/docgen/html/_sources/guides/contributing-language.rst.txt deleted file mode 100644 index 68f11fd2..00000000 --- a/docs/docgen/html/_sources/guides/contributing-language.rst.txt +++ /dev/null @@ -1,60 +0,0 @@ -Contributing a new language ---------------------------- - -If you are familiar with using git, I'd prefer if you follow the Pull -Request process -`here <https://github.com/pliablepixels/zmNinja/blob/master/CONTRIBUTING.md#steps-for-code-contribution>`__. - -Adding a new language -^^^^^^^^^^^^^^^^^^^^^ - -- Languages translations are available - `here <https://github.com/pliablepixels/zmNinja/tree/master/www/lang>`__ -- To contribute a new language, add a new ``locale-xx.json`` (where - ``xx`` is your language code). -- Ideally, you should also provide a language translation for the - zmNinja help file inside - `lang/help <https://github.com/pliablepixels/zmNinja/tree/master/www/lang/help>`__ - -The best way is to simply look at an existing language translation and -follow the same model for yours. If any language translation keywords -are missed, it will fallback to English. - -Main Language file -^^^^^^^^^^^^^^^^^^ - -- Make sure there is no comma after the last element -- Comments are not allowed -- Make sure you don't add ellipsis "..." anywhere, they are added to - messages in code when needed -- After you complete the translation file, do the following: - -(replace ``-it`` with the language you are working on) - -``python ./checklang.py -f locale-it.json -b`` - -This validates your JSON file, makes sure all keys are in sync with -en -and if valid, creates pretty-locale-it.json. If you are sure it looks -good, - -``python ./checklang.py -f locale-it.json -b -o`` - -This validates your JSON file,makes sure all keys are in sync with -en -and if valid, OVERWRITES your local file with a pretty formatted -version, which is what you should PR - -Translating Help language file -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -- Located inside lang/help -- Please be careful not to mess up the html tags, please only focus on - text translation - -How to recognize a new language: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -(This is only for zmNinja developers. Not relevant for language -translators) - -- Modify languages array in NVR.js (look for ``var languages``) -- Register language glob code in app.js - make sure its added to array list and mapping (look for ``registerAvailableLanguageKeys``) diff --git a/docs/docgen/html/_sources/guides/desktop.rst.txt b/docs/docgen/html/_sources/guides/desktop.rst.txt deleted file mode 100644 index 0afcdacf..00000000 --- a/docs/docgen/html/_sources/guides/desktop.rst.txt +++ /dev/null @@ -1,113 +0,0 @@ -Desktop port tips -================= - -Scope ------ - -This page is dedicated to the Desktop version of zmNinja and tips & -tricks - -Command Line parameters ------------------------ - -The following command line parameters are supported: - -:: - - --path=<dir> - starts zmNinja and stores user profile information to that directory. - This allows you to switch between different user settings. - - --fs - starts zmNinja in full screen mode - -Multiple instances ------------------- - -It is actually possible to launch multiple instances of the same desktop -app from command line. This allows you to watch different servers at the -same time as well as use multiple monitors. I strongly recommend you use -unique ``--path`` arguments with each instance because otherwise one -instance will conflict with another. - -So lets say you want to run 2 copies of zmNinja at the same time: - -:: - - mkdir -p /path/to/instance1 - mkdir -p /path/to/instance2 - -And then: - -:: - - # for linux - zmninjapro-1.3.22-x86_64.AppImage --path=/path/to/instance1 - zmninjapro-1.3.22-x86_64.AppImage --path=/path/to/instance2 - - #for OSX. Note the -n is critical to launch a new instance - open -n ./zmninjapro.app --args --path=/path/to/instance1 & - open -n ./zmninjapro.app --args --path=/path/to/instance2 & - -Hotkeys -------- - -The following hotkeys are supported while the app is running: - -:: - - [Cmd/Ctrl] + L -> Lock app (if pin code is being used) - [Cmd/Ctrl] + Shift + F -> toggle between full screen and windowed mode - [Cmd/Ctrl] + Shift + D -> opens the debug window. - Super useful to see what is going on, - especially when things don't work - -Keyboard bindings ------------------ - -**Live Monitor View (single view, not montage):** - -:: - - Arrow Left -> move to previous monitor - Arrow Right -> move to next monitor - Esc -> remove live view - P -> toggle PTZ - -**PTZ Operations to move (PTZ should be toggled to on first):** - -:: - - Q W E -> UpLeft, Up, UpRight - A S D -> Left, Home,Right - Z X C -> DownLeft, Down, DownRight - -**Event Footage View:** - -:: - - Arrow Left -> move to previous event - Arrow Right -> move to next event - Enter -> play the event if in snapshot mode (shows red play button) - Esc -> remove event footage view - -**Timeline:** - -:: - - Arrow Up -> Zoom In - Arrow Down -> Zoom Out - Arrow Left -> Pan Left - Arrow Right -> Pan Right - Esc -> Fit timeline back to view (reset) - A -> Previous Day - D -> Next Day - -Desktop data storage locations ------------------------------- - -User data is typically stored in the following locations: -- ``%APPDATA%/zmNinjaDesktop`` for Windows, -- ``$XDG_CONFIG_HOME/zmNinjaDesktop`` or ``~/.config/zmNinjaDesktop`` for Linux, -- ``~/Library/Application Support/zmNinjaDesktop`` for OSX - -To completely remove the app, you may want to delete both the app -bundle/binary and these locations as applicable on your system diff --git a/docs/docgen/html/_sources/guides/source.rst.txt b/docs/docgen/html/_sources/guides/source.rst.txt deleted file mode 100644 index c1956657..00000000 --- a/docs/docgen/html/_sources/guides/source.rst.txt +++ /dev/null @@ -1,236 +0,0 @@ -Building from Source -````````````````````` - -**NOTE** If you want to run it on your desktop, you can directly -download desktop binaries -`here <https://github.com/pliablepixels/releases>`__ -and if you want it for Android/iOS you can get from the play/appstore. -This is only for those who *want* to run from source. - - Note: If you are building from source, you are mostly on your own. I - have very limited time to debug environment differences/package - differences between what I have and what you may have. I'm not a - nodejs/grunt etc expert and stuff seems to change all the time. - -Version note: The code is compiled using the following versions of -tools. **If you are using newer versions of ionic the code may not -compile - I don't have the time to upgrade yet. Finally, if you choose -to go the source route, I expect you to spend a lot of time yourself -debugging first before you create an issue. Even if you do create an -issue, I have very limited bandwidth to debug source compilation issues -for you.** Thanks. - -Output of ``ionic info`` - -:: - - Ionic: - - ionic (Ionic CLI) : 4.5.0 (/usr/local/lib/node_modules/ionic) - Ionic Framework : ionic1 1.3.5 - @ionic/v1-toolkit : 1.0.19 - - Cordova: - - cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1) - Cordova Platforms : android 7.1.4, ios 5.0.0 - Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.0, - (and 30 other plugins) - - System: - - Android SDK Tools : 26.1.1 (/Users/pp/Library/Android/sdk/) - ios-deploy : 2.0.0 - ios-sim : 7.0.0 - NodeJS : v8.11.2 (/usr/local/bin/node) - npm : 5.6.0 - OS : macOS Mojave - Xcode : Xcode 10.1 Build version 10B61 - -Install Dependencies - needed for all platforms ------------------------------------------------ - -Install NodeJS -~~~~~~~~~~~~~~ - -Install NodeJS from `here <https://nodejs.org/en/download/>`__. As of -Dec 2018, I'm using Node ``v8.11.2``. I use -`n <https://github.com/tj/n>`__ to manage node versions and switch -between them. - -Install cordova, ionic, and bower -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code:: bash - - npm install -g cordova ionic bower - npm install @ionic/v1-toolkit --save-dev - -And some more: - -.. code:: bash - - npm install -g gulp - npm install node-sass - npm install async - npm install jshint - -(Note you may need to do ``sudo`` depending on how your system is set -up. It's `better you -don't <https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/>`__, -but if you must, well, you must) - -If you get a newer version, you should adjust your cordova version to -the mentioned version above in order to be able to successfully compile -zmNinja. To change the version you can follow these instructions: -`change cordova -version <https://iphonedevlog.wordpress.com/2014/06/25/updating-and-reverting-to-different-cordova-phonegap-versions>`__ - -Download zmNinja ----------------- - -.. code:: bash - - git clone --depth 1 https://github.com/pliablepixels/zmNinja.git - -Configure build configure zmNinja and get all required plugins --------------------------------------------------------------- - -.. code:: bash - - - cd zmNinja - npm install - bower install - ionic cordova platform add android (or ios) - cordova prepare - -Making an iOS build -------------------- - -Note: You need to be doing this on a mac, with Xcode and the SDK -installed. You also need to have your developer certificates/etc. (I am -not going to detail this out - there are many internet resources on -this) - -(Harder) If you need picture notification support in push -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -As of Mar 2019, cordova-ios does not support multiple targets, nor does -it support automatic building of notification extensions. So there is manual work to be done: - -- Open up ``platforms/ios/zmNinja.xcworkspace`` in XCode -- Go to ``File->New->Target->Notification Service Extension``, select Objective C -- In the "Product Name" put in ``zmNinjaNotification`` (your BundleID should now read ``com.pliablepixels.zmninja-pro.zmNinjaNotification``) -- Say "Yes" to "Activate zmNinjaNotification scheme?" popup -- Now go to zmNinjaNotification target and make version and build same as zmNinja -- Now in XCode Targets, select ``zmNinjaNotification``, and make sure you select a Team and make sure Deployment Target is 10 or above -- Change Deployment target to 10.1 (same as zmNinja target) -- ```cp www/external/NotificationService.m platforms/ios/zmNinjaNotication/`` -- ``cd platforms/ios/`` -- ``pod install`` - -You can now do `build_ios.sh`. However, after you build, you will have to go back to XCode -after the build to make the following changes: - -1. Sync notification version with app version -2. Change notification bundle ID back to com.pliablepixels.zmninja-pro.zmNinjaNotification (cordova removes the last word) - - -(Easier) If you don't need picture notification support in push -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -There are a few steps you need to take to get the iOS build working for -the first time. If you don't do this, you may get a compilation error -that says ``ld: library not found for -lGoogleToolboxForMac`` - -:: - - cd platforms/ios - pod install - -This does not produce an iOS ready ipa. What you need to do then is to -open ``platforms/ios/zmNinja.xcworkspace`` in Xcode, and run. - -To compile a debug build for iOS from command line, from zmNinja project -root: First edit ``./build-auto.json`` and change the -``developmentTeam`` id to yours. Then: - -.. code:: bash - - ./build_ios.sh - -To compile using XCode, open ``platforms/ios/zmNinja.xcworkspace`` - You -need to use "Legacy Build" system if you are on XCode 10+. You can -change this in XCode ``File->Workspace Settings`` and then build usual. -Also switch to the Capabilities tab and make sure "Remote Notifications" -is on in Background Modes and in iCloud section, Key-Value storage is -enabled. If you see a "Fix issue" there, clicking on that button -resolves everything. - -Making an Android build ------------------------ - -Note that you need the `Android -SDK <http://developer.android.com/sdk/index.html>`__ installed and -configured properly for this to work. - -From the zmNinja project root: - -.. code:: bash - - ./build_android.sh --debug (or --release) - -If this complains of missing SDKs, you need to install the SDK version -it requests This should produce an APK file. To install it on your phone -over adb, you'd do something like - -.. code:: bash - - adb install -r debug_files/android-debug.apk #if you did --debug - or, - adb install -r release_files/zmNinja.apk #if you did --release - -Making a desktop build ----------------------- - -I use `electron <https://electron.atom.io>`__ to build the desktop app. - -For versions 1.3.018 and beyond -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -I've migrated to using -`electron-builder <https://github.com/electron-userland/electron-builder>`__ -to automate the build process better. - -Make sure you have all the dependencies -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Typically, just running - -:: - - npm install - bower install - -Should have installed everything. Validate by checking you have -``electron`` installed by invoking it on the command line - -You now have the following options: - -:: - - npm run dist-all # builds linux, mac and windows packages - npm run dist-mac # only builds mac packages - npm run dist-lin # only builds linux packages (32bit, 64bit, arm) - npm run dist-win # only builds win packages (32bit, 64bit) - -Your packages will be created in the ``dist`` folder - - -Troubleshooting ---------------- - -Lots of things can go wrong. - -* Please make sure you don't post issues about why your own build is not working - please figure it out -* Look carefully at error messages diff --git a/docs/docgen/html/_sources/guides/validating-api.rst.txt b/docs/docgen/html/_sources/guides/validating-api.rst.txt deleted file mode 100644 index a2acdfae..00000000 --- a/docs/docgen/html/_sources/guides/validating-api.rst.txt +++ /dev/null @@ -1,96 +0,0 @@ -Validating APIs -```````````````` - -Please make sure you go through this before you wonder why zmNinja is not working. -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - Assumption: Your ZM server is accessible at ``http://server/zm`` -> - replace this with your actual path - -Make sure ZM APIs are working: -'''''''''''''''''''''''''''''' - -(Note - nginx users, if you are facing API issues, please see if `this -page <https://github.com/pliablepixels/zmNinja/wiki/How-to-configure-APIs-with-nginx>`__ -helps) - -- Step 1: Open up a browser -- Step 2: Log into ZM -- Step 3: Open another tab in the same browser (**IMPORTANT**: Has to - be from the same browser you logged into ZM) -- Step 4: Type in ``http://server/zm/api/host/getVersion.json`` --> you - should see a response like: - - .. code:: json - - { - "version": "1.30.0", - "apiversion": "1.0" - } - - version/apiversion may be different. If you don't see such a - response, your APIs are **not** working - -- Step 5:make sure you can see monitors and events: - -Type in ``http://server/zm/api/monitors.json`` --> you should see a -response like: - -.. code:: jsonld - - { - "monitors": [ - { - "Monitor": { - /*lots of additional details*/ - }, - /*more monitor objects if you have more than one*/ - }] - } - -- Step 6: (If you find your APIs show ok, but zmNinja has issues) - - - Open a browser, log into ZM - - Open a new tab, enter ``http://server/zm/api/host/getVersion.json`` - - Now, right click and do a ``View Source`` in your browser (different - browsers may have different names for it). This brings up a full - source code view of the page. Do you ONLY see the JSON output or do - you see gobs of HTML on top like ``<pre class=`` and lots of cake - related messages? If you do, you need to fix it. - -if you find the page empty, your APIs/permissions have a problem. Please -post in the ZM forums (**please DON'T** contact me first as its not a -zmNinja bug) - -Type in ``http://server/zm/api/events.json`` --> you should see a -response like: (this list may be an empty set if you don't have events -but you will still see the ``{"events":[]}`` text - if you find the page -empty, your APIs have a problem. Please post in the ZM forums (please -**DON'T** contact me first, as its not a zmNinja bug) - -.. code:: jsonld - - {"events":[{"Event":{ /* many more details */ }}]} - -*Top reasons why monitors and events API returns blank while getVersion -works:* \* You don't have monitor/event view permissions allocated to -the user \* You have an invalid camera definition (happens sometimes -when you remove and re-add cameras) \* If you are using non UTF8 -characters in your monitor names/zone names this can cause issues. Edit -``/usr/share/zoneminder/www/api/app/Config/database.php`` (assuming ZM -is in /usr/share) and make sure ``'encoding' => 'utf8'`` is -*uncommented* (remove ``//``) around line 74. I've submitted a -`patch <https://github.com/ZoneMinder/ZoneMinder/pull/1635/commits/92d7cad5f154359a5b249d7a63fb5034f7d1b51a>`__ -but till its merged, you might have to do it manually. - -zmNinja API notes: -^^^^^^^^^^^^^^^^^^ - -- Please make sure the user credentials you use has: -- view or edit access to monitors -- view or edit access to streams -- view or edit access to system - -- If you are accessing zmNinja remotely, make sure you first access ZM - remotely from your desktop browser, ensure it works and then use the - same DNS/IP for zmNinja diff --git a/docs/docgen/html/_sources/index.rst.txt b/docs/docgen/html/_sources/index.rst.txt deleted file mode 100644 index ecea1004..00000000 --- a/docs/docgen/html/_sources/index.rst.txt +++ /dev/null @@ -1,35 +0,0 @@ -.. zmNinja documentation master file, created by - sphinx-quickstart on Fri Mar 15 08:38:52 2019. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to zmNinja's documentation! -=================================== - -.. toctree:: - :hidden: - - guides/FAQ - guides/validating-api - guides/desktop - guides/contributing-language - guides/source - Event Notification Server <http://pliablepixels.github.io/zmeventnotification/docgen/html/index.html> - -`Github Repository <https://github.com/pliablepixels/zmNinja>`__ - -:doc:`guides/FAQ` - A detailed FAQ for zmNinja, including common issues related to installation, streaming and troubleshooting -:doc:`guides/validating-api` - How to make sure your ZoneMinder installation has working/usable APIs -:doc:`guides/desktop` - Various tips/tricks/shortcuts for the desktop port of zmNinja -:doc:`guides/contributing-language` - Would you like to see zmNinja in your own language? It's easy. Here's how to go about contributing a new language for zmNinja -:doc:`guides/source` - For the brave souls who want to build from source, your questions answered -`Event Notification Server <http://pliablepixels.github.io/zmeventnotification/docgen/html/index.html>`__ - Documentation for the Machine Learning Event Notification server - - - |
