Skip to content

Commit

Permalink
Merge pull request #1089 from SteveGilvarry/Zoneminderfication
Browse files Browse the repository at this point in the history
Zoneminderfication
  • Loading branch information
connortechnology committed Jan 1, 2022
2 parents 1349cbf + 5e75052 commit d4e0317
Show file tree
Hide file tree
Showing 54 changed files with 213 additions and 232 deletions.
50 changes: 18 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,28 @@

[![Donate with PayPal](https://img.shields.io/badge/Donate-Paypal-blue?logo=paypal)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2BAG5UDK2B6MJ&currency_code=USD&source=url) [![Donate with Bitcoin](https://en.cryptobadges.io/badge/micro/32YBHDAnnDUWwjsscJQQ1Z92UWJgpsDF86)](https://en.cryptobadges.io/donate/32YBHDAnnDUWwjsscJQQ1Z92UWJgpsDF86) [![Donate with Ethereum](https://en.cryptobadges.io/badge/micro/0x86A5cB50158EFDbd1eCDa872290A7B58857B267a)](https://en.cryptobadges.io/donate/0x86A5cB50158EFDbd1eCDa872290A7B58857B267a) [![Donate with Bountysource](https://img.shields.io/badge/Donate-BountySource-brightgreen.svg)](https://www.bountysource.com/teams/zmninja/)



Project Discontinuation Notice, EOY 2021
Project Adoption 2022
-----------------------------------------
After 6+ years of developing zmNinja + ES + ML I've run out of time to maintain this project. Please read [this notice](https://forums.zoneminder.com/viewtopic.php?f=33&p=122447#p122445). This project has been transferred to ZoneMinder and ZM devs along with the community will continue to maintain it beyond 2021.
After 6+ years of developing zmNinja + ES + ML, [Pliable Pixels](https://github.com/pliablepixels) no longer had the time to maintain the project. ZoneMinder
development team will take on the support of zmNinja and provision of notification services going forward. This may necessitate
new app names due to some app store policies.

![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/zmn.png?raw=true "icon")
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/zmn.png?raw=true "icon")

[zmNinja website](http://pliablepixels.github.io)

zmNinja is a multi platform (iOS, Android, Windows Desktop, Mac Desktop, Linux Desktop) client for ZoneMinder users.
[ZoneMinder](http://www.zoneminder.com) is an incredible open source camera monitoring system and is used
by many for home and commercial security monitoring.

by many for home and commercial security monitoring.

<a href="https://itunes.apple.com/us/app/zmninja-pro/id1067914954?mt=8"><img src="https://github.com/pliablepixels/zmNinja/blob/master/sample_images/appstore.png" width="200px" alt="Get in on App Store"></a>
<a href="https://itunes.apple.com/us/app/zmninja-pro/id1067914954?mt=8"><img src="sample_images/appstore.png" width="200px" alt="Get in on App Store"></a>
<a href="https://play.google.com/store/apps/details?id=com.pliablepixels.zmninja_pro&hl=en&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"><img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" width="200px"/></a>



Help
----
* Official documents [are here](https://zmninja.readthedocs.io/en/latest/index.html)
* If you are looking for the Machine Learning powered [Event Server companion](https://github.com/pliablepixels/zmeventnotification), docs [are here](https://zmeventnotification.readthedocs.io/en/latest/index.html)
* If you are looking for the Machine Learning powered [Event Server companion](https://github.com/zoneminder/zmeventnotification), docs [are here](https://zmeventnotification.readthedocs.io/en/latest/index.html)
* Post in the [ZoneMinder Mobile App forum](https://forums.zoneminder.com/viewforum.php?f=33) or find me on ZoneMinder's slack channel (you can join [here](https://join.slack.com/t/zoneminder-chat/shared_invite/enQtNTU0NDkxMDM5NDQwLTlhZDU2MGU4MmZmN2MxOTg1MmNmNmZjZGRmY2EzMThhNGQ0MWNmZTg1ZmYzNDQ4YjliMzVmYTQ3MDc5MTkzODE))
* If you believe you've discovered a bug, please create a [GitHub issue](https://github.com/pliablepixels/zmNinja/issues/)
* If you believe you've discovered a bug, please create a [GitHub issue](https://github.com/zoneminder/zmNinja/issues/)

Before you ask for help
-----------------------
Expand All @@ -48,12 +44,12 @@ It also runs on the desktop (see below)

Desktop Platforms
-----------------
Please download binaries from [here](https://github.com/pliablepixels/zmNinja/releases).
Please download binaries from [here](https://github.com/zoneminder/zmNinja/releases).


Key Features
-------------
* Push Notifications Object detection/face recognition for alarms (Needs the [eventserver](https://github.com/pliablepixels/zmeventserver) to be set up)
* Push Notifications Object detection/face recognition for alarms (Needs the [eventserver](https://github.com/zoneminder/zmeventserver) to be set up)
* Multiple languages (English, French, German, Spanish, Portugese, Dutch, and more)
* H264 video support
* live views of monitors
Expand All @@ -71,30 +67,20 @@ Key Limitations

Thanks
------
To the Zonemider community in general, and the awesome Stack Overflow community.
But specifically, [Andrew Bauer](https://github.com/knight-of-ni) (knight-of-ni) who egged me on to take up this project and [Isaac Connor](http://github.com/connortechnology/) who has been incredibly supportive in helping fix various ZM issues that affected zmNinja.
To Pliable Pixels for his fantastic contributions to the ZoneMinder community in building this application.

Important Notes
---------------
* zmNinja needs APIs enabled in ZoneMinder. See [this](https://zmninja.readthedocs.io/en/latest/guides/validating-api.html) for instructions on how to make sure your APIs are working. If they are not working, zmNinja **will not** work.


Why did I develop zmNinja?
------------------------------
* I wanted to learn how to write a mobile app. It was (and is) fun.
* I originally reached out to tinyCam to see if they were willing to do an app - did not get a response
* I found zmView limited for my needs



Screenshots:
------------
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0757.PNG?raw=true)
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0758.PNG?raw=true)
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0759.PNG?raw=true)
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0760.PNG?raw=true)
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0761.PNG?raw=true)
![](https://github.com/pliablepixels/zmNinja/blob/master/sample_images/IMG_0762.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0757.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0758.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0759.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0760.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0761.PNG?raw=true)
![](https://github.com/zoneminder/zmNinja/blob/master/sample_images/IMG_0762.PNG?raw=true)



8 changes: 4 additions & 4 deletions build-auto.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "EN3PJ8YF59",
"codeSignIdentity": "Apple Development",
"developmentTeam": "P97TSUFFDX",
"packageType": "development",
"automaticProvisioning": true,
"buildFlag": [
Expand All @@ -11,8 +11,8 @@
]
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "EN3PJ8YF59",
"codeSignIdentity": "Apple Development",
"developmentTeam": "P97TSUFFDX",
"packageType": "app-store",
"automaticProvisioning": true,
"buildFlag": [
Expand Down
2 changes: 1 addition & 1 deletion build_ios.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if [ "$1" != "skip" ]
then
# ionic cordova plugin remove cordova-plugin-ionic-webview 2>/dev/null
echo "Adding wkwebview..."
cordova plugin add https://github.com/pliablepixels/cordova-plugin-ionic-webview.git
cordova plugin add https://github.com/ZoneMinder/cordova-plugin-ionic-webview.git
echo "Resetting media fork..."
cordova plugin remove cordova-plugin-media-pp-fork
cordova plugin add cordova-plugin-media-pp-fork
Expand Down
6 changes: 3 additions & 3 deletions config.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version='1.0' encoding='utf-8'?>
<widget android-packageName="com.pliablepixels.zmninja_pro" id="com.pliablepixels.zmninja_pro" ios-CFBundleIdentifier="com.pliablepixels.zmninja-pro" version="1.6.009" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget android-packageName="com.zoneminder.zmNinja" id="com.zoneminder.zmNinja" ios-CFBundleIdentifier="com.zoneminder.zmNinja" version="1.6.009" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>zmNinja</name>
<description>
High performance ZoneMinder client
</description>
<author email="pliablepixels@gmail.com" href="http://pliablepixels.us/">
Pliable Pixels
<author email="appsupport@zoneminder.com" href="https://zoneminder.com/">
Zoneminder Inc
</author>
<content src="index.html" />
<allow-navigation href="gap://ready" />
Expand Down
24 changes: 12 additions & 12 deletions docs/guides/source.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Output of ``ionic info``

::


Ionic:

Ionic CLI : 6.9.3 (/Users/pp/.nvm/versions/node/v12.17.0/lib/node_modules/@ionic/cli)
Expand Down Expand Up @@ -59,9 +59,9 @@ Install Dependencies - needed for all platforms
Install NodeJS
~~~~~~~~~~~~~~

I use `nvm <https://github.com/nvm-sh/nvm>`__ to install NodeJS. It allows you to
easily switch node versions. Follow their instructions and use the same node major
version you see above (12.x). Note that it is entirely possible another version of
I use `nvm <https://github.com/nvm-sh/nvm>`__ to install NodeJS. It allows you to
easily switch node versions. Follow their instructions and use the same node major
version you see above (12.x). Note that it is entirely possible another version of
node works. This is the only one I've tested with. I don't think minot version changes
will cause issues (example, ``12.18`` etc.).

Expand All @@ -70,14 +70,14 @@ Install cordova and ionic

.. code:: bash
npm install -g cordova@9.0.0 @ionic/cli
npm install -g cordova@9.0.0 @ionic/cli
npm install @ionic/v1-toolkit --save-dev
npm install -g cordova-res
gem install cocoapods
If you don't have ``gem`` that means you need to install ruby. Installing ruby
installs gobs of nonsense. Too bad.
installs gobs of nonsense. Too bad.
(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/>`__,
Expand Down Expand Up @@ -123,13 +123,13 @@ this)

(Harder) If you need picture notification support in push
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As of Aug 2020, cordova-ios does not support multiple targets, nor does
As of Aug 2020, 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
- Open up ``platforms/ios/zmNinja.workspace`` in XCode
- Go to ``File->Workspace Settings`` and select ``Legacy Build System``
- Go to ``Target->zmNinja->Build Settings`` and set "Swift Language Version" to ``Swift 4``
- Go to ``File->New->Target->Notification Service Extension``, select Objective C
- 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
Expand All @@ -138,7 +138,7 @@ it support automatic building of notification extensions. So there is manual wor
- ``cp etc/NotificationService.m platforms/ios/zmNinjaNotification/``
- Please make sure you select the right development teams for both zmNinja and zmNinjaNotification so the app can be signed

Starting 1.5.0, zmNinja uses the `cordova-plugin-firebasex <https://github.com/dpa99c/cordova-plugin-firebasex>`__
Starting 1.5.0, zmNinja uses the `cordova-plugin-firebasex <https://github.com/dpa99c/cordova-plugin-firebasex>`__
library for push notifications. The older cordova-push-plugin is no longer supported by the author.
If you are facing compilation issues that relate to this plugin, please make sure you read it's `install section <https://github.com/dpa99c/cordova-plugin-firebasex#installation>`__,
especially around outdated pods et. al.
Expand Down Expand Up @@ -203,7 +203,7 @@ over adb, you'd do something like
adb install -r debug_files/android-debug.apk #if you did --debug
or,
adb install -r release_files/zmNinja.apk #if you did --release
adb install -r release_files/zmNinja.apk #if you did --release
Making a desktop build
----------------------
Expand Down Expand Up @@ -244,7 +244,7 @@ Your packages will be created in the ``dist`` folder
Troubleshooting
---------------

Lots of things can go wrong.
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
14 changes: 6 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"license": "custom see LICENSE.md",
"cordova": {
"platforms": [
"ios",
"android"
"android",
"ios"
],
"plugins": {
"cordova-plugin-customurlscheme": {
Expand Down Expand Up @@ -71,14 +71,12 @@
},
"cordova-plugin-advanced-http": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-media-pp-fork": {}
}
},
"dependencies": {
"async": "^3.2.0",
"async": "^3.2.2",
"clivas": "^0.2.0",
"cordova-android": "^9.0.0",
"cordova-custom-config": "^5.1.0",
Expand Down Expand Up @@ -128,7 +126,7 @@
"is-arguments": "^1.1.0",
"is-date-object": "^1.0.2",
"is-regex": "^1.1.2",
"jshint": "^2.12.0",
"jshint": "^2.13.2",
"json-file": "^0.1.0",
"jsonfile": "^6.1.0",
"keypress": "^0.2.1",
Expand All @@ -142,7 +140,7 @@
"regexp.prototype.flags": "^1.3.1"
},
"devDependencies": {
"@ionic/v1-toolkit": "^1.0.14",
"@ionic/v1-toolkit": "^1.0.22",
"bower": "^1.8.12",
"cordova-plugin-firebasex": "^10.2.0",
"dotenv": "^8.2.0",
Expand Down
Binary file modified resources/ios/icon/icon-1024.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-108@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-20.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-20@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-20@3x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-24@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-27.5@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-29.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-29@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-29@3x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-40.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-40@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-40@3x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-44@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-50.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-50@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-60.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-60@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-60@3x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-72.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-72@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-76.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-76@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-83.5@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-86@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/ios/icon/icon-98@2x.png
Binary file modified resources/ios/icon/icon.png
Binary file modified resources/ios/icon/icon@2x.png
Binary file modified resources/ios/splash/Default-1792h~iphone.png
Binary file modified resources/ios/splash/Default-2436h.png
Binary file modified resources/ios/splash/Default-2688h~iphone.png
Binary file modified resources/ios/splash/Default-568h@2x~iphone.png
Binary file modified resources/ios/splash/Default-667h.png
Binary file modified resources/ios/splash/Default-736h.png
Binary file modified resources/ios/splash/Default-Landscape-1792h~iphone.png
Binary file modified resources/ios/splash/Default-Landscape-2436h.png
Binary file modified resources/ios/splash/Default-Landscape-2688h~iphone.png
Binary file modified resources/ios/splash/Default-Landscape-736h.png
Binary file modified resources/ios/splash/Default-Landscape@2x~ipad.png
Binary file modified resources/ios/splash/Default-Landscape@~ipadpro.png
Binary file modified resources/ios/splash/Default-Landscape~ipad.png
Binary file modified resources/ios/splash/Default-Portrait@2x~ipad.png
Binary file modified resources/ios/splash/Default-Portrait@~ipadpro.png
Binary file modified resources/ios/splash/Default-Portrait~ipad.png
Binary file modified resources/ios/splash/Default@2x~iphone.png
Binary file modified resources/ios/splash/Default@2x~universal~anyany.png
Binary file modified resources/ios/splash/Default~iphone.png

0 comments on commit d4e0317

Please sign in to comment.