From 2511ba762763c86e54b7ee585f6ed455e1bdb401 Mon Sep 17 00:00:00 2001 From: Niclas Andersson Date: Sat, 19 Mar 2022 01:16:02 +0100 Subject: [PATCH] Add Node-RED pictures and change ntfy URL to ntfy.sh --- docs/examples.md | 352 +++++++++++++++------------- docs/static/img/nodered-message.png | Bin 0 -> 7582 bytes docs/static/img/nodered-picture.png | Bin 0 -> 10097 bytes 3 files changed, 190 insertions(+), 162 deletions(-) create mode 100644 docs/static/img/nodered-message.png create mode 100644 docs/static/img/nodered-picture.png diff --git a/docs/examples.md b/docs/examples.md index e26092e..ff23aef 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -132,181 +132,209 @@ Some simple bash scripts to achieve this are kindly provided in [nickexyz's repo ## Node-RED You can use the HTTP request node to send messages with [Node-RED](https://nodered.org), some examples: +Example: Send a message + +![Node red message flow](static/img/nodered-message.png)
-Example: Send a message +Expand ``` [ - { - "id": "8f09d37dd5773f88", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "ntfy", - "method": "POST", - "ret": "txt", - "paytoqs": "ignore", - "url": "https://example.com/topic", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "credentials": {}, - "x": 1410, - "y": 740, - "wires": [ - [] - ] - }, - { - "id": "2603f296b25fe351", - "type": "function", - "z": "ff3ad4e1.d3415", - "name": "data", - "func": "msg.payload = \"Something happened\";\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant';\n\nreturn msg;", - "outputs": 1, - "noerr": 0, - "initialize": "", - "finalize": "", - "libs": [], - "x": 1290, - "y": 740, - "wires": [ - [ - "8f09d37dd5773f88" - ] - ] - }, - { - "id": "d2351ed0720a239f", - "type": "inject", - "z": "ff3ad4e1.d3415", - "name": "Manual start", - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": "20", - "topic": "", - "payload": "", - "payloadType": "date", - "x": 1150, - "y": 740, - "wires": [ - [ - "2603f296b25fe351" - ] - ] - } + { + "id": "c956e688cc74ad8e", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "ntfy.sh", + "method": "POST", + "ret": "txt", + "paytoqs": "ignore", + "url": "https://ntfy.sh/mytopic", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 590, + "y": 3160, + "wires": + [ + [] + ] + }, + { + "id": "32ee1eade51fae50", + "type": "function", + "z": "fabdd7a3.4045a", + "name": "data", + "func": "msg.payload = \"Something happened\";\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant';\n\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 470, + "y": 3160, + "wires": + [ + [ + "c956e688cc74ad8e" + ] + ] + }, + { + "id": "b287e59cd2311815", + "type": "inject", + "z": "fabdd7a3.4045a", + "name": "Manual start", + "props": + [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": "20", + "topic": "", + "payload": "", + "payloadType": "date", + "x": 330, + "y": 3160, + "wires": + [ + [ + "32ee1eade51fae50" + ] + ] + } ] ```
+Example: Send a picture + +![Node red picture flow](static/img/nodered-picture.png)
-Example: Send a picture +Expand ``` [ - { - "id": "726d0d75d6c0f70e", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "Download jpeg", - "method": "GET", - "ret": "bin", - "paytoqs": "ignore", - "url": "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "credentials": {}, - "x": 1320, - "y": 780, - "wires": [ - [ - "730dbbc9dbf1ed8a" - ] - ] - }, - { - "id": "730dbbc9dbf1ed8a", - "type": "function", - "z": "ff3ad4e1.d3415", - "name": "data", - "func": "msg.payload = msg.payload;\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant - Picture';\n\nreturn msg;", - "outputs": 1, - "noerr": 0, - "initialize": "", - "finalize": "", - "libs": [], - "x": 1470, - "y": 780, - "wires": [ - [ - "592f424b37f76f5c" - ] - ] - }, - { - "id": "592f424b37f76f5c", - "type": "http request", - "z": "ff3ad4e1.d3415", - "name": "ntfy", - "method": "PUT", - "ret": "bin", - "paytoqs": "ignore", - "url": "https://example.com/topic", - "tls": "", - "persist": false, - "proxy": "", - "authType": "", - "senderr": false, - "x": 1590, - "y": 780, - "wires": [ - [] - ] - }, - { - "id": "8aa06dda3c902f6a", - "type": "inject", - "z": "ff3ad4e1.d3415", - "name": "Manual start", - "props": [ - { - "p": "payload" - }, - { - "p": "topic", - "vt": "str" - } - ], - "repeat": "", - "crontab": "", - "once": false, - "onceDelay": "20", - "topic": "", - "payload": "", - "payloadType": "date", - "x": 1150, - "y": 780, - "wires": [ - [ - "726d0d75d6c0f70e" - ] - ] - } + { + "id": "d135a13eadeb9d6d", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "Download image", + "method": "GET", + "ret": "bin", + "paytoqs": "ignore", + "url": "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 490, + "y": 3320, + "wires": + [ + [ + "6e75bc41d2ec4a03" + ] + ] + }, + { + "id": "6e75bc41d2ec4a03", + "type": "function", + "z": "fabdd7a3.4045a", + "name": "data", + "func": "msg.payload = msg.payload;\nmsg.headers = {};\nmsg.headers['tags'] = 'house';\nmsg.headers['X-Title'] = 'Home Assistant - Picture';\n\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 650, + "y": 3320, + "wires": + [ + [ + "eb160615b6ceda98" + ] + ] + }, + { + "id": "eb160615b6ceda98", + "type": "http request", + "z": "fabdd7a3.4045a", + "name": "ntfy.sh", + "method": "PUT", + "ret": "bin", + "paytoqs": "ignore", + "url": "https://ntfy.sh/mytopic", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "credentials": + { + "user": "", + "password": "" + }, + "x": 770, + "y": 3320, + "wires": + [ + [] + ] + }, + { + "id": "5b8dbf15c8a7a3a5", + "type": "inject", + "z": "fabdd7a3.4045a", + "name": "Manual start", + "props": + [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": "20", + "topic": "", + "payload": "", + "payloadType": "date", + "x": 310, + "y": 3320, + "wires": + [ + [ + "d135a13eadeb9d6d" + ] + ] + } ] ``` diff --git a/docs/static/img/nodered-message.png b/docs/static/img/nodered-message.png new file mode 100644 index 0000000000000000000000000000000000000000..46279087b134f12ee456b7d3687e71cb44fb7403 GIT binary patch literal 7582 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 ONXqi+A8KVS!~YMCln40$ literal 0 HcmV?d00001