diff --git a/.travis.yml b/.travis.yml index a2c21d57..c7f0ad77 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,4 +22,4 @@ deploy: skip_cleanup: true after_deploy: - gem install octokit - - ./github_release.rb -s $GITHUB_OAUTH_TOKEN -r hobbyquaker/ccu-addon-node-red -c CHANGELOG.md -t v$VERSION_ADDON+$TRAVIS_BUILD_NUMBER \ No newline at end of file + - ./github_release.rb -s $GITHUB_OAUTH_TOKEN -r hobbyquaker/RedMatic -c CHANGELOG.md -t v$VERSION_ADDON+$TRAVIS_BUILD_NUMBER \ No newline at end of file diff --git a/README.md b/README.md index c28a5064..7c9e9cd4 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,34 @@ -# ccu-addon-node-red - -[![Build Status](https://travis-ci.org/hobbyquaker/ccu-addon-node-red.svg?branch=master)](https://travis-ci.org/hobbyquaker/ccu-addon-node-red) -[![Current Release](https://img.shields.io/github/release/hobbyquaker/ccu-addon-node-red.svg)](https://github.com/hobbyquaker/ccu-addon-node-red/releases/latest) -[![Total Downloads](https://img.shields.io/github/downloads/hobbyquaker/ccu-addon-node-red/total.svg)]() +# RedMatic + > Node-RED als Addon für die Homematic CCU3 und RaspberryMatic -## Was ist Node-RED? - -[Node-RED](https://nodered.org/about/) ist eine Nachrichtenflussbasierte, visuelle Programmierumgebung für das Internet -der Dinge. -Node-RED wird seit 2013 von [IBM Emerging Technology](https://emerging-technology.co.uk/technologies/) -entwickelt und steht als kostenlose Open Source Software unter dem Dach der [JS Foundation](https://js.foundation/) zur -Verfügung. Node-RED kann durch zusätzliche [Node(-Sammlungen)](https://flows.nodered.org) erweitert werden, eine große -und aktive Community hat Stand Heute bereits weit über 1000 Nodes entwickelt. - -Siehe auch: -* https://entwickler.de/online/iot/node-red-iot-prototypen-2-579809637.html -* https://jaxenter.de/baukasten-fuer-das-internet-dinge-13532 +[![Current Release](https://img.shields.io/github/release/hobbyquaker/ccu-addon-node-red.svg)](https://github.com/hobbyquaker/ccu-addon-node-red/releases/latest) +[![Build Status](https://travis-ci.org/hobbyquaker/ccu-addon-node-red.svg?branch=master)](https://travis-ci.org/hobbyquaker/ccu-addon-node-red) +[![Total Downloads](https://img.shields.io/github/downloads/hobbyquaker/ccu-addon-node-red/total.svg)]() -## Wofür? +


-Mit diesem Node-RED Addon ist es auf einfache und komfortable Weise möglich Regeln, Automationen, Scripte und -Anbindungen von externen Services und Systemen für ein Homematic System zu realisieren - ohne die Notwendigkeit neben -der CCU einen weiteren 24/7 laufenden Server zu betreiben - und weitestgehend ohne Programmierkenntnisse. +Mit [Node-RED](https://nodered.org/about/) und den +[CCU Nodes für Node-RED](https://github.com/hobbyquaker/node-red-contrib-ccu) ist es auf einfache und komfortable Weise +möglich Regeln, Automationen, Scripte und Anbindungen von externen Services und Systemen für ein Homematic System zu +realisieren - und das weitgehend auch ohne Programmierkenntnisse. Die Node-RED Erweiterung +[Node-RED Dashboard](https://github.com/node-red/node-red-dashboard) ermöglcht es zudem individuelle und ansprechende +User Interfaces zu erstellen. -Darüber hinaus beinhaltet dieses Addon auch [Node-RED Dashboard](https://github.com/node-red/node-red-dashboard) womit -webbasierte User Interfaces erstellt werden können. +_RedMatic_ fasst diese verschiedenen Softwarekomponenten und das zur Ausführung benötigte Node.js zu einem CCU Addon +zusammen, einem Softwarepaket, dass auf einer CCU3 und RaspberryMatic als Zusatzsoftware über das WebUI installiert +werden kann. Hiermit bieten sich dann oben genannte Möglichkeiten - ohne die Notwendigkeit neben der CCU einen +weiteren 24/7 laufenden Server zu betreiben. -Zur Anbindung an die Schnittstellenprozesse und die Logikschicht der -CCU ist [node-red-contrib-ccu](https://github.com/hobbyquaker/node-red-contrib-ccu) im Addon enthalten. +_RedMatic_ ist __nur für die CCU3 und RaspberryMatic geeignet__. Auf einer CCU1/CCU2 kann es aufgrund der CPU und +des verfügbaren RAM nicht verwendet werden. ## Download -Unter [Releases](https://github.com/hobbyquaker/ccu-addon-node-red/releases) ist das Addon Paket zum Download verfügbar. +Unter [Releases](https://github.com/hobbyquaker/RedMatic/releases) steht das Addon Paket zum Download verfügbar. ## Schnellstart @@ -45,32 +38,33 @@ Reboot der CCU ist Node-RED unter `http:///addons/red` erreichbar. einfaches Dashboard sind bereits vorkonfiguriert, das Dashboard ist unter `http:///addons/red/ui` erreichbar. +* __Sicherheitswarnung__: Node-RED ist per default (noch) ohne Authentifizierung ereichbar. Wer den Webserver der CCU +erreichen kann hat vollen Zugriff auf Node-RED, es erfolgt __keine Passwortabfrage__. Bis in einer späteren Version eine +Authentifizierung an der CCU-Logikschicht implementiert ist gibt es einen +[möglichen Workaround](https://github.com/hobbyquaker/ccu-addon-node-red/wiki/Passwort) um manuell einen Passwortschutz +einzurichten. + ## Dokumentation -Die Dokumentation der CCU Nodes ist in Node-RED selbst verfügbar. Beispielflows sind im -[Wiki](https://github.com/hobbyquaker/ccu-addon-node-red/wiki/Flows) zu finden. +[Wiki](https://github.com/hobbyquaker/ccu-addon-node-red/wiki) -Zu Node-RED im allgemeinen gibt es unzählige Tutorials, Dokumentationen, Bücher und Youtube Videos, auch in Deutscher -Sprache. +## Weitere Infos zu Node-RED + +[Node-RED](https://nodered.org/about/) ist eine Nachrichtenflussbasierte, visuelle Programmierumgebung für das Internet +der Dinge. +Node-RED wird seit 2013 von [IBM Emerging Technology](https://emerging-technology.co.uk/technologies/) +entwickelt und steht als kostenlose Open Source Software unter dem Dach der [JS Foundation](https://js.foundation/) zur +Verfügung. Node-RED kann durch zusätzliche [Node(-Sammlungen)](https://flows.nodered.org) erweitert werden, eine große +und aktive Community hat Stand Heute bereits weit über 1000 Nodes entwickelt. -## Hinweise +Siehe auch: +* https://entwickler.de/online/iot/node-red-iot-prototypen-2-579809637.html +* https://jaxenter.de/baukasten-fuer-das-internet-dinge-13532 -* __Sicherheitswarnung__: Node-RED ist (noch) ohne Authentifizierung ereichbar. Wer den Webserver der CCU erreichen -kann hat vollen Zugriff auf Node-RED, es erfolgt __keine Passwortabfrage__. Bis in einer späteren Version eine -Authentifizierung an der CCU-Logikschicht implementiert ist gibt es einen -[möglichen Workaround](https://github.com/hobbyquaker/ccu-addon-node-red/wiki/Passwort) um manuell einen Passwortschutz -einzurichten. -* __Work in Progress!__ Dieses Addon sowie node-red-contrib-ccu sind __noch nicht wirklich fertig__, kaum getestet, -es ist davon auszugehen dass noch __viele Bugs__ gefixt werden müssen, es sind noch nicht alle geplanten Features -implementiert... Sobald ein Stand erreicht ist der als "feature-complete", gut getestet und anständig dokumentiert -durchgeht wird die Versionsnummer auf 1.0 erhöht. -* Dieses Addon ist __nur für die CCU3 und RaspberryMatic geeignet__. Auf einer CCU1/CCU2 kann es aufgrund der CPU und -des verfügbaren RAM nicht verwendet werden. -* __Nicht alle verfügbaren Node-RED Nodes können__ im Node-RED Admin UI über "Manage palette" __installiert werden__. -Die Installation von Addons die Binärmodule compilieren müssen ist nicht möglich. Das betrifft u.A. Nodes die Zugriff -auf Hardware benötigen (z.B. Bluetooth). +Zu Node-RED im allgemeinen gibt es unzählige Tutorials, Dokumentationen, Bücher und Youtube Videos, auch in Deutscher +Sprache. ## Support, Mitarbeit diff --git a/addon_files/node-red/lighttpd.conf b/addon_files/node-red/lighttpd.conf index 15b5691b..ad7e2f3e 100644 --- a/addon_files/node-red/lighttpd.conf +++ b/addon_files/node-red/lighttpd.conf @@ -1,5 +1,7 @@ -$HTTP["url"] =~ "^/(addons/red).*" { - proxy.server = ("/addons/red" => (( "host" => "127.0.0.1", "port" => 1880 ))) +url.redirect = ("^/addons/red$" => "/addons/red/") + +$HTTP["url"] =~ "^/(addons/red/).*" { + proxy.server = ("/addons/red/" => (( "host" => "127.0.0.1", "port" => 1880 ))) proxy.header = ( "upgrade" => "enable") server.errorfile-prefix = "/usr/local/addons/node-red/lighttpd-error-" } diff --git a/addon_files/node-red/node-red b/addon_files/node-red/node-red index c01f4e33..7581bc60 100755 --- a/addon_files/node-red/node-red +++ b/addon_files/node-red/node-red @@ -2,6 +2,7 @@ CONF_DIR=/usr/local/etc/config ADDON_DIR=/usr/local/addons/node-red +WWW_DIR=/usr/local/etc/config/addons/www/redmatic NODE=$ADDON_DIR/bin/node @@ -56,16 +57,15 @@ case "$1" in info) source $ADDON_DIR/versions - echo "Info: Node-RED CCU Addon
" + echo "Info: " echo "Info: " echo "Info: " echo "Info: " echo "Info: " echo "Info:
Node.js$NODE_VERSION
npm$VERSION_npm
Node-RED$VERSION_nodered
Node-RED Dashboard$VERSION_nodereddashboard
node-red-contrib-ccu$VERSION_noderedcontribccu
" - echo "Info: " - echo "Name: Node-RED" + echo "Name: RedMatic" echo "Version: $VERSION_ADDON" - echo "Update: /addons/check_update_node_red.cgi" + echo "Update: /addons/redmatic/update_check.cgi" echo "Operations: restart uninstall" ;; @@ -74,9 +74,10 @@ case "$1" in $ADDON_DIR/update_addon node-red $ADDON_DIR/update_addon node-red-dashboard rm -r $ADDON_DIR + rm -r $WWW_DIR + rm $CONF_DIR/addons/www/check_update_node_red.cgi rm $CONF_DIR/lighttpd/node-red.conf rm $CONF_DIR/rc.d/node-red - rm /usr/local/etc/config/addons/www/check_update_node_red.cgi ;; *) diff --git a/addon_files/update_script b/addon_files/update_script index 1768df89..792fc6ae 100755 --- a/addon_files/update_script +++ b/addon_files/update_script @@ -3,6 +3,7 @@ ADDONS_DIR=/usr/local/addons RED_DIR=$ADDONS_DIR/node-red CONF_DIR=/usr/local/etc/config +WWW_DIR=$CONF_DIR/addons/www/redmatic mount | grep /usr/local 2>&1 >/dev/null if [ $? -eq 1 ]; then @@ -10,6 +11,7 @@ if [ $? -eq 1 ]; then fi mkdir -p $ADDONS_DIR && chmod 755 $ADDONS_DIR +mkdir -p $WWW_DIR && chmod 755 $WWW_DIR if [ -f $CONF_DIR/rc.d/node-red ]; then $CONF_DIR/rc.d/node-red stop @@ -31,7 +33,8 @@ if [ ! -f $RED_DIR/var/flows.json ]; then mv $RED_DIR/var/example-flows.json $RED_DIR/var/flows.json fi -ln -s $RED_DIR/update_check.tcl /usr/local/etc/config/addons/www/check_update_node_red.cgi +ln -s $RED_DIR/update_check.tcl $WWW_DIR/update_check.cgi +ln -s $RED_DIR/logo-w-200.png $WWW_DIR/logo-w-200.png touch $CONF_DIR/hm_addons.cfg diff --git a/assets/logo-512.png b/assets/logo-512.png new file mode 100644 index 00000000..bfc72f67 Binary files /dev/null and b/assets/logo-512.png differ diff --git a/assets/logo-r-256.png b/assets/logo-r-256.png new file mode 100644 index 00000000..845b6b45 Binary files /dev/null and b/assets/logo-r-256.png differ diff --git a/assets/logo-r-512.png b/assets/logo-r-512.png new file mode 100644 index 00000000..27243c5c Binary files /dev/null and b/assets/logo-r-512.png differ diff --git a/assets/logo-w-400.png b/assets/logo-w-400.png new file mode 100644 index 00000000..81fbce5c Binary files /dev/null and b/assets/logo-w-400.png differ diff --git a/build.sh b/build.sh index 99558449..1d0eb505 100755 --- a/build.sh +++ b/build.sh @@ -24,6 +24,7 @@ mv $ADDON_TMP/node-red/LICENSE $ADDON_TMP/node-red/LICENSE_Nodejs echo "copying files to tmp dir..." cp -r $ADDON_FILES/* $ADDON_TMP/ +cp $BUILD_DIR/assets/logo-w-200.png $ADDON_TMP/node-red/ echo "installing node modules..." @@ -108,7 +109,7 @@ git log `git describe --tags --abbrev=0`..HEAD --pretty=format:'* %h @%an %s' >> echo "compressing addon package $ADDON_FILE ..." -ADDON_FILE=ccu-addon-node-red-$VERSION_ADDON.tar.gz +ADDON_FILE=redmatic-$VERSION_ADDON.tar.gz mkdir $BUILD_DIR/dist 2> /dev/null cd $ADDON_TMP tar --exclude=.DS_Store -czf $BUILD_DIR/dist/$ADDON_FILE *