HowTo: Node Red - Send Email on Events

E-mails are (I believe) one of the oldest means of communication on the Internet. In the smart home sector, however, they do not play a major role. Push services - such as Pushbullet - or MQTT directly are often preferred for fast and direct data exchange.

In some cases, however, it can be practical to send an e-mail from NodeRed as well. For example, you could send a monthly status report as a monthly summary to your email inbox this way.
Or you can send yourself the latest weather report every day. The possibilities are almost unlimited. If you have any other useful uses, feel free to post a comment with your idea 🙂 .

In the following article it is explained how you can send the current weather report by e-mail on an event.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

Helpful articles:
To be able to use this configuration, NodeRed should of course already be installed.
How to prepare a RaspberryPi and then install NodeRed on it is described in the following articles.

The following articles describe what has to be done to prepare the RaspberryPi so far:
RaspberryPi – setup for nerdiys!
RaspberryPi – The first configuration!
RaspberryPi – Control the RaspberryPi via SSH
NodeRed – Installing NodeRed on the RaspberryPi
NodeRed – Install new nodes

NodeRed - Get current weather data from OpenWeatherMap

Required tool:
-no-

Required material:

In the following list you will find all the parts you need to implement this article.


Log into the NodeRed configuration interface

Before you can edit your NodeRed configuration, you must - if activated - first log into the NodeRed configuration interface.

View of the login dialog. Here you have to enter the login data that you specified during the configuration of the login. You can find information about this in the article NodeRed - set up user login.

get openWeatherMap node ready to go

In order to be able to collect the data to be sent by email beforehand, you need to have the openWeatherMap node installed in your NodeRed configuration. The steps for this are described in the article NodeRed - Get current weather data from OpenWeatherMap described.


Node code example: Receive the current weather data by e-mail

For this example you don't need any other nodes than the ones installed by default. To use the configuration you only have to import the node code below into your configuration. How to do that is described in the article NodeRed – Install new nodes explained.

After you have imported the node code you have to add a few configurations of the individual nodes.

View of the node configuration in the editor.

 Node code:

[{"id":"3aab8493.0bc2fc","type":"e-mail","z":"550c7bf5.5c03e4","server":"mail.gmx.net","port":"465","secure":true,"name":"info@test.de","dname":"sendEmail","x":1050,"y":380,"wires":[]},{"id":"51ae2d16.38b7a4","type":"change","z":"550c7bf5.5c03e4","name":"tempConvert","rules":[{"t":"set","p":"data.main.temp","pt":"msg","to":"data.main.temp-273.15","tot":"jsonata"},{"t":"set","p":"data.main.temp_min","pt":"msg","to":"data.main.temp_min-273.15","tot":"jsonata"},{"t":"set","p":"data.main.temp_max","pt":"msg","to":"data.main.temp_max-273.15","tot":"jsonata"},{"t":"set","p":"title","pt":"msg","to":"Aktueller Wetterbericht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":380,"wires":[["41a940d8.99eb7"]]},{"id":"ca0b22a9.c0272","type":"json","z":"550c7bf5.5c03e4","name":"","property":"payload","action":"","pretty":false,"x":510,"y":380,"wires":[["51ae2d16.38b7a4"]]},{"id":"a7dc889e.b097a8","type":"inject","z":"550c7bf5.5c03e4","name":"request data","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":440,"wires":[["9e4b2651.4217b8"]]},{"id":"9e4b2651.4217b8","type":"openweathermap","z":"550c7bf5.5c03e4","name":"","wtype":"current","lon":"","lat":"","city":"Bochum","country":"Germany","language":"de","x":350,"y":440,"wires":[["ca0b22a9.c0272"]]},{"id":"314b9fd1.5d28e","type":"openweathermap in","z":"550c7bf5.5c03e4","name":"","wtype":"current","lon":"","lat":"","city":"Bochum","country":"Germany","language":"de","x":160,"y":380,"wires":[["ca0b22a9.c0272"]]},{"id":"41a940d8.99eb7","type":"template","z":"550c7bf5.5c03e4","name":"mailTemplate","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Hallo lieber E-Mail-Empfänger,
here comes the latest weather data from {{time}} for {{data.name}}.
Temperature: {{data.main.temp}}°C,
Minimum temperature {{data.main.temp_min}}°C,
Maximum temperature {{data.main.temp_max}}°C,
Humidity {{data.main.humidity}}%,
Air pressure: {{data.main.pressure}}mmHg,
wind speed: {{data.wind.speed}},
wind direction: {{data.wind.deg}}°

Kind regards
Your NodeRed

","output":"str","x":850,"y":380,"wires":[["d81ba695.75a538","3aab8493.0bc2fc"]]},{"id":"d81ba695.75a538","type":"debug","z":"550c7bf5.5c03e4", "name": "rawData", "active":true, "tosidebar":true, "console":false, "tostatus":false, "complete": "true", "x":1040, "y":320, "wires":[]}]
Damit dieses Beispiel funktioniert müsst Ihr die E-Mail-Node bearbeiten. Dort müssen noch die Serverdaten eures E-Mail-Servers eingetragen werden. Tragt dazu die URL eures SMTP-Servers unter “Server”, den dazugehörigen Benutzernamen unter “UserId” und das passende Passwort unter “Password” ein. Zu guter letzt müsst Ihr in der ersten Zeile unter “To” die Empfänger-Email eintragen, an welche die E-Mail gesendet werden soll.
In the template node you can edit the text sent by e-mail and customize it according to your wishes.
In der Change-Node könnt Ihr dazu noch den Betreff der E-Mail bearbeiten. In der letzten Zeile wird die Variable “Msg.title” gesetzt, deren Inhalt in der E-Mail-Node dann als Betreff verwendet wird.

Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

8 comments

  1. Hello 🙂

    How is that, if I want to get for example a mail when a switch is active? With me then come infinitely many mails, I think that comes from the timestamp or so.

    Am absolute novice

    Greetings fabian

    1. Hey Fabian,
      let me guess, you used an inject node which checks every second if the switch is activated and if yes a mail is sent? 🙂
      Why don't you post the code from the post in question here, so I can better understand it 🙂 .
      Falls du aber schon etwas experimentieren willst: Du kannst dir mithilfe von zwei “trigger”-blöcken eine “Zustandsverriegelung” bauen.
      An example where I have used this can be found in the code for presence detection using the FritzBox: https://nerdiy.de/nodered-fritzbox-anwesenheitserkennung-mit-der-fritzbox/
      Diese Verrieglung hat zur Folge, dass die eingehende Nachricht nur dann weitergeleitet wird, wenn der Status sich ändert. Letztlich willst du ja auch nur in dem Moment eine E-Mail senden wenn du den Schalter von “Aus” auf “Ein” stellst. 🙂
      Ich hoffe das hilft dir. Falls nicht, poste gerne Mal deinen Code hier rein und ich “bastle da so eine Lösung rein”. 🙂

      Best regards
      Fabian

  2. Hello Fabian
    Thanks for your feedback.

    Enclosed the code 😀

    LG Fabian

    [
    {
    “id”: “1c51458d.3afefa”,
    “type”: “ds18b20”,
    “z”: “57ba4cc7.5cb3f4”,
    “name”: “”,
    “sensorid”: “28-03139779ce96”,
    “timer”: “0.1”,
    “x”: 170,
    “y”: 760,
    “wires”: [
    [
    “54a48697.1af1a8”
    ]
    ]
    },
    {
    “id”: “54a48697.1af1a8”,
    “type”: “calculator”,
    “z”: “57ba4cc7.5cb3f4”,
    “name”: “”,
    “inputMsgField”: “payload”,
    “outputMsgField”: “payload”,
    “operation”: “sum”,
    “constant”: “2.4”,
    “round”: false,
    “decimals”: 0,
    “x”: 370,
    “y”: 760,
    “wires”: [
    [
    “b8f5c9e0.476758”,
    “14be39f2.c942c6”,
    “5e74354.53e37cc”,
    “3a997c58.458334”,
    “9015895f.473e48”,
    “b31c2c33.6dfc8”,
    “e667a58a.f5bae8”
    ]
    ]
    },
    {
    “id”: “b8f5c9e0.476758”,
    “type”: “template”,
    “z”: “57ba4cc7.5cb3f4”,
    “name”: “options”,
    “field”: “payload”,
    “fieldType”: “msg”,
    “format”: “handlebars”,
    “syntax”: “mustache”,
    “template”: “{\”foo\”:\”bar\”}”,
    “output”: “str”,
    “x”: 600,
    “y”: 700,
    “wires”: [
    [
    “ae2f45f6.fb9e48”
    ]
    ]
    },
    {
    “id”: “14be39f2.c942c6”,
    “type”: “function”,
    “z”: “57ba4cc7.5cb3f4”,
    “name”: “”,
    “func”: “if(msg.payload> 26.2) {msg.payload = false;}\nelse if (msg.payload< 24) {msg.payload = true;}\nreturn msg;",
    "outputs": 1,
    "noerr": 0,
    "}, "initialize",
    }, "finalize": "",
    "x": 600,
    "y": 460,
    "wires": [
    [
    "9f7947ae.c38e68",
    "29f32232.207e9e"
    ]
    ]
    },
    {
    }, "id": "5e74354.53e37cc",
    }, "type": "ui_gauge",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "group": "a22f56en.8c6458",
    "order": 6,
    "width: 0,
    "height: 0,
    "}, "gtype",
    }, "title": "water temp",
    "label: "",
    "format": "{{value| number:1}}°C",
    "min": 0,
    "max": "50",
    "colors": [
    "#ff0000",
    "#00ffe1",
    "#ff0000"
    ],
    "seg1" : "23",
    { "seg2": "25",
    "x": 610,
    "y": 520,
    "wires": []
    },
    {
    }, "id": "3a997c58.458334",
    }, "type": "ui_gauge",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "group": "8bdfeaf5.0afa18",
    "order": 1,
    "width": "5",
    }, "height": "5",
    "}, "gtype",
    }, "title": "water temp",
    "label: "",
    "format": "{{value| number:1}}°C",
    "min": 0,
    "max": "50",
    "colors": [
    "#ff0000",
    "#00ffe1",
    "#ff0000"
    ],
    "seg1" : "23",
    { "seg2": "25",
    "x": 610,
    "y": 560,
    "wires": []
    },
    {
    }, "id": "9015895f.473e48",
    }, "type": "ui_chart",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "group": "8bdfeaf5.0afa18",
    "order": 2,
    "width": "7.8",
    }, "height": "5",
    }, "label": "temperature history",
    }, "chartType": "line",
    { "legend": "false",
    }, "xformat": "HH:mm:ss",
    "interpolate": "linear",
    "}, "nodata",
    "dot": true,
    }, "ymin" : "23",
    }, "ymax": "25",
    }, "removeOlder": "1",
    }, "removeOlderPoints": "",
    }, "removeOlderUnit": "60",
    }, "cutout": 0,
    "useOneColor": false,
    "useUTC": false,
    "colors": [
    "#00d9ff",
    "#aec7e8",
    "#ff7f0e",
    "#00ff00",
    "#98df8a",
    "#d62728",
    "#ff9896",
    "#9467bd",
    "#c5b0d5"
    ],
    "useOldStyle": false,
    "outputs": 1,
    "x": 630,
    "y": 600,
    "wires": [
    []
    ]
    },
    {
    }, "id": "b31c2c33.6dfc8",
    }, "type": "template",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "field": "payload",
    }, "fieldType": "msg",
    }, "format": "handlebars",
    { "syntax": "mustache",
    "template": "{\"CurrentTemperature\":\"{{payload}}\"}",
    }, "output": "str",
    "x": 600,
    "y": 760,
    "wires": [
    [
    "8241846e.2d9298"
    ]
    ]
    },
    {
    }, "id": "e667a58a.f5bae8",
    }, "type": "ui_chart",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "group": "be6d8af4.0031d8",
    "order": 2,
    "width": "4",
    }, "height": "4",
    }, "label": "temperature history",
    }, "chartType": "line",
    { "legend": "false",
    }, "xformat": "dd HH:mm",
    "interpolate": "linear",
    "}, "nodata",
    "dot": false,
    }, "ymin": "23rd",
    }, "ymax": "25",
    }, "removeOlder": "1",
    }, "removeOlderPoints": "",
    "removeOlderUnit": "604800",
    }, "cutout": 0,
    "useOneColor": true,
    "useUTC": false,
    "colors": [
    "#f702e3",
    "#aec7e8",
    "#ff7f0e",
    "#00ff00",
    "#98df8a",
    "#d62728",
    "#ff9896",
    "#9467bd",
    "#c5b0d5"
    ],
    "useOldStyle": false,
    "outputs": 1,
    "x": 630,
    "y": 640,
    "wires": [
    []
    ]
    },
    {
    }, "id": "ae2f45f6.fb9e48",
    }, "type": "json",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "property": "payload",
    "}, "action",
    "pretty": false,
    "x": 750,
    "y": 700,
    "wires": [
    []
    ]
    },
    {
    }, "id": "9f7947ae.c38e68",
    }, "type": "ui_switch",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "label": "ventilation",
    "}, "tooltip",
    }, "group": "84c4d91b.9ddaa8",
    "order": 4,
    "width: 0,
    "height: 0,
    }, "passthru": true,
    }, "decouple": "false",
    "}, "topic",
    "}, "style",
    }, "onvalue": "false",
    }, "onvalueType": "bool",
    "}, "onicon",
    }, "oncolor": "",
    }, "offvalue": "true",
    "offvalueType": "bool",
    "}, "officon",
    "offcolor": "",
    "x": 740,
    "y": 320,
    "wires": [
    [
    "97a8ff1f.f0019",
    "8194db18.ab6cb8",
    "c17fafae.c5817"
    ]
    ]
    },
    {
    }, "id": "29f32232.207e9e",
    { "type": "delay",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "pauseType": "delay",
    }, "timeout": "10",
    "timeoutUnits": "seconds",
    { "rate": "1",
    "nbRateUnits": "1",
    "rateUnits": "second",
    "randomFirst": "1",
    }, "randomLast": "5",
    "randomUnits": "seconds",
    "drop": false,
    "x": 750,
    "y": 280,
    "wires": [
    [
    "97a8ff1f.f0019"
    ]
    ]
    },
    {
    }, "id": "8241846e.2d9298",
    }, "type": "json",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "property": "payload",
    "}, "action",
    "pretty": false,
    "x": 750,
    "y": 760,
    "wires": [
    []
    ]
    },
    {
    }, "id": "97a8ff1f.f0019",
    }, "type": "rpi-gpio out",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "ventilation",
    }, "pin": "37",
    "set": "",
    }, "level": "0",
    "}, "freq",
    "{ "out",
    "x": 1180,
    "y": 320,
    "wires": []
    },
    {
    }, "id": "8194db18.ab6cb8",
    }, "type": "template",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "options",
    }, "field": "payload",
    }, "fieldType": "msg",
    }, "format": "handlebars",
    { "syntax": "mustache",
    "template": "{\"foo\":\"bar\"}",
    }, "output": "str",
    "x": 1040,
    "y": 400,
    "wires": [
    [
    "84dd1d88.e7b5d"
    ]
    ]
    },
    {
    }, "id": "c17fafae.c5817",
    }, "type": "change",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    { "rules": [
    {
    }, "t": "change",
    }, "p": "payload",
    }, "pt": "msg",
    }, "from": "false",
    }, "fromt": "bool",
    }, "to": "true",
    }, "dead": "boolean"
    }
    ],
    "}, "action",
    }, "property": "",
    "}, "from",
    "}, "to",
    { "reg": false,
    "x": 920,
    "y": 460,
    "wires": [
    [
    "d2cfcf2f.07f02"
    ]
    ]
    },
    {
    }, "id": "84dd1d88.e7b5d",
    }, "type": "json",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    }, "property": "payload",
    "}, "action",
    "pretty": false,
    "x": 1190,
    "y": 400,
    "wires": [
    []
    ]
    },
    {
    }, "id": "d2cfcf2f.07f02",
    { "type": "trigger",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "",
    "}, "op1",
    "}, "op2",
    }, "op1type": "pay",
    }, "op2type": "payl",
    }, "duration": "24",
    "extend": false,
    "overrideDelay": false,
    }, "units": "hr",
    "}, "reset",
    }, "bytopic": "all",
    "{ "topic",
    "outputs": 1,
    "x": 1140,
    "y": 460,
    "wires": [
    [
    "e08c20eb.589ed"
    ]
    ]
    },
    {
    }, "id": "e08c20eb.589ed",
    }, "type": "template",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "mail",
    }, "field": "payload",
    }, "fieldType": "msg",
    }, "format": "handlebars",
    { "syntax": "mustache",
    "template": "Warning message\n\nAquarium is too warm.\n\nVentilation has been activated!\n\nBest regards\nYour server",
    }, "output": "str",
    "x": 1310,
    "y": 460,
    "wires": [
    []
    ]
    },
    {
    }, "id": "d80536f4.eb90a8",
    { "type": "comment",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "homekit",
    }, "info": "homekit",
    "x": 1300,
    "y": 400,
    "wires": []
    },
    {
    }, "id": "68db86f2.b08c58",
    { "type": "comment",
    }, "z": "57ba4cc7.5cb3f4",
    }, "name": "mailserver",
    { "info": "",
    "x": 1420,
    "y": 460,
    "wires": []
    },
    {
    }, "id": "a22f56en.8c6458",
    }, "type": "ui_group",
    }, "name": "aquarium",
    }, "tab": "2495f749.c25f58",
    "order": 4,
    "disp": true,
    "width": "4",
    "collapse": false
    },
    {
    }, "id": "8bdfeaf5.0afa18",
    }, "type": "ui_group",
    }, "name": "temperature",
    }, "tab": "99bb712a.2b3ca",
    "order": 3,
    "disp": true,
    "width": "12",
    "collapse": false
    },
    {
    }, "id": "be6d8af4.0031d8",
    }, "type": "ui_group",
    }, "name": "water values",
    }, "tab": "99bb712a.2b3ca",
    "order": 4,
    "disp": true,
    }, "width": "20",
    "collapse": false
    },
    {
    }, "id": "84c4d91b.9ddaa8",
    }, "type": "ui_group",
    }, "name": "circuit",
    }, "tab": "99bb712a.2b3ca",
    "order": 2,
    "disp": true,
    "width": "4",
    "collapse": false
    },
    {
    }, "id": "2495f749.c25f58",
    }, "type": "ui_tab",
    }, "name": "control panel",
    }, "icon": "dashboard",
    "order": 1,
    "disabled: false,
    "hidden": false
    },
    {
    }, "id": "99bb712a.2b3ca",
    }, "type": "ui_tab",
    }, "name": "aquarium",
    }, "icon": "dashboard",
    "order": 4,
    "disabled: false,
    "hidden": false
    }
    ]

    1. Hey Fabian,
      have been able to import your code. I didn't delete anything and only added the part that should bring the function 🙂 .
      Let me know if it worked 🙂 .
      [{“id”:”ab28b311.e87e5″,”type”:”ds18b20″,”z”:”ba705cfb.7ee0a”,”name”:””,”sensorid”:”28-03139779ce96″,”timer”:”0.1″,”x”:130,”y”:2520,”wires”:[[“b044b02a.74e65”]]},{“id”:”b044b02a.74e65″,”type”:”calculator”,”z”:”ba705cfb.7ee0a”,”name”:””,”inputMsgField”:”payload”,”outputMsgField”:”payload”,”operation”:”sum”,”constant”:”2.4″,”round”:false,”decimals”:0,”x”:330,”y”:2520,”wires”:[[“7f3d76c9.23b358″,”c6a9f213.d9fcb”,”dd6c569.7663ca8″,”c3eb58f.778fda8″,”770f98ee.58c258″,”9cdd55d0.3bacf8″,”a40e44a0.15ea98″]]},{“id”:”7f3d76c9.23b358″,”type”:”template”,”z”:”ba705cfb.7ee0a”,”name”:”options”,”field”:”payload”,”fieldType”:”msg”,”format”:”handlebars”,”syntax”:”mustache”,”template”:”{\”foo\”:\”bar\”}”,”output”:”str”,”x”:560,”y”:2460,”wires”:[[“48dab8e0.ca9128”]]},{“id”:”c6a9f213.d9fcb”,”type”:”function”,”z”:”ba705cfb.7ee0a”,”name”:””,”func”:”if(msg.payload> 26.2) \n{\n msg.payload = false;\n}\nelse if (msg.payload< 24) \n{\n msg.payload = true;\n}\nreturn msg;", "outputs":1, "noerr":0, "x":560, "y":2220, "wires":[["5b87956f.4ab73c","cac571b3.65e59","165cfc4f.46f004"]]},{"id":"dd6c569.7663ca8","type":"ui_gauge","z":"ba705cfb.7ee0a","name":"","group":"2e9e95aa.f1c83a","order":6,"width":0,"height":0,"gtype":"gage","title":"Wassertemp.","label":"","format":"{{value| number:1}}°C","min":0,"max":"50","colors":["#ff0000","#00ffe1","#ff0000"],"seg1":"23","seg2":"25","x":570,"y":2280,"wires":[]},{"id":"c3eb58f.778fda8","type":"ui_gauge","z":"ba705cfb.7ee0a","name":"","group":"92f6590a.a3d328","order":1,"width":"5","height":"5","gtype":"gage","title":"Wassertemp.","label":"","format":"{{value| number:1}}°C","min":0,"max":"50","colors":["#ff0000","#00ffe1","#ff0000"],"seg1":"23","seg2":"25","x":570,"y":2320,"wires":[]},{"id":"770f98ee.58c258","type":"ui_chart","z":"ba705cfb.7ee0a","name":"","group":"92f6590a.a3d328","order":2,"width":"7.8", "height": "5", "label": "temperature history", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate":"linear","nodata":"","dot":true,"ymin":"23","ymax":"25","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#00d9ff","#aec7e8","#ff7f0e","#00ff00","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":590,"y":2360,"wires":[[]]},{"id":"9cdd55d0.3bacf8","type":"template","z":"ba705cfb.7ee0a","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"CurrentTemperature\":\"{{payload}}\"}","output":"str","x":560,"y":2520,"wires":[["15301b09.d03e65"]]},{"id":"a40e44a0.15ea98","type":"ui_chart","z":"ba705cfb.7ee0a", "name":"", "group": "bf0e6207.0ed3", "order":2, "width": "4", "height": "4", "label": "temperature history", "chartType": "line", "legend": "false", "xformat": "dd HH:mm", "interpolate": "linear", "nodata":"", "dot":false, "ymin": "23.", "ymax": "25", "removeOlder": "1", "removeOlderPoints":"", "removeOlderUnit": "604800", "cutout":0, "useOneColor":true, "useUTC":false, "colors":["#f702e3","#aec7e8","#ff7f0e","#00ff00","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":590,"y":2400,"wires":[[]]},{"id":"48dab8e0.ca9128","type":"json","z":"ba705cfb.7ee0a","name":"","property":"payload","action":"","pretty":false,"x":710,"y":2460,"wires":[[]]},{"id":"5b87956f.4ab73c","type":"ui_switch","z":"ba705cfb.7ee0a","name":"","label":"Lüftung","tooltip":"","group":"3cc5c223.3f1a2e", "order":4, "width":0, "height":0, "passthru":true, "decouple": "false", "topic":"", "style":"", "onvalue": "false", "onvalueType":"bool","onicon":"","oncolor":"","offvalue":"true","offvalueType":"bool","officon":"","offcolor":"","x":700,"y":2080,"wires":[["2fabb5e1.8db58a","8fda296a.f35b58","6bbb4798.295ab8"]]},{"id":"cac571b3.65e59","type":"delay","z":"ba705cfb.7ee0a", "name":"", "pauseType": "delay", "timeout": "10", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":730,"y":2040,"wires":[["2fabb5e1.8db58a"]]},{"id":"15301b09.d03e65","type":"json","z":"ba705cfb.7ee0a","name":"","property":"payload","action":"","pretty":false,"x":710,"y":2520,"wires":[[]]},{"id":"2fabb5e1.8db58a","type":"rpi-gpio out","z":"ba705cfb.7ee0a","name":"Lüftung","pin":"37","set":"","level":"0","freq":"","out":"out","x":1140,"y":2080,"wires":[]},{"id":"8fda296a.f35b58","type":"template","z":"ba705cfb.7ee0a","name":"options","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"foo\":\"bar\"}","output":"str","x":1000,"y":2160,"wires":[["f959d03a.784"]]},{"id":"6bbb4798.295ab8","type":"change","z":"ba705cfb.7ee0a","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":880,"y":2220,"wires":[["4e441bb9.ff4694"]]},{"id":"f959d03a.784","type":"json","z":"ba705cfb.7ee0a","name":"","property":"payload","action":"","pretty":false,"x":1150,"y":2160,"wires":[[]]},{"id":"4e441bb9.ff4694","type":"trigger","z":"ba705cfb.7ee0a","op1":"","op2":"","op1type":"pay","op2type":"payl","duration":"24","extend":false,"units":"hr","reset":"","bytopic":"all","name":"","x":1100,"y":2220,"wires":[["14531d47.88c793"]]},{"id":"14531d47.88c793","type":"template","z":"ba705cfb.7ee0a", "name": "mail", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "Warning message\n\nAquarium is too warm.\n\nVentilation has been activated!\n\nBest regards\nYour server", "output": "str", "x":1270, "y":2220, "wires":[[]]},{"id": "5d57fc0f.2457f4","type":"comment","z":"ba705cfb.7ee0a","name":"Homekit","info":"Homekit","x":1300,"y":2160,"wires":[]},{"id":"9db436ad.9af6b8","type":"comment","z":"ba705cfb.7ee0a","name":"Mailserver","info":"","x":1420,"y":2220,"wires":[]},{"id":"165cfc4f.46f004","type":"trigger","z":"ba705cfb.7ee0a","op1":"false","op2":"0","op1type":"str","op2type":"str","duration":"0","extend":false,"units":"ms","reset":"true","bytopic":"all","name":"false","x":1070,"y":2280,"wires":[["14531d47.88c793"]]},{"id":"2e9e95aa.f1c83a","type":"ui_group","name":"Aquarium","tab":"2d9fb55d.7b096a","order":4,"disp":true,"width":"4","collapse":false},{"id":"92f6590a.a3d328","type":"ui_group","name":"Temperatur","tab":"e7ec43f.3af8fc","order":3,"disp":true,"width":"12","collapse":false},{"id":"bf0e6207.0ed3","type":"ui_group","name":"Wasserwerte","tab":"e7ec43f.3af8fc","order":4,"disp":true,"width":"20","collapse":false},{"id":"3cc5c223.3f1a2e","type":"ui_group","name":"Schaltung","tab":"e7ec43f.3af8fc","order":2,"disp":true,"width":"4","collapse":false},{"id":"2d9fb55d.7b096a","type":"ui_tab","name":"Bedienfeld","icon":"dashboard","order":1,"disabled":false,"hidden":false},{"id":"e7ec43f.3af8fc", "type": "ui_tab", "name": "Aquarium", "icon": "dashboard", "order":4, "disabled":false, "hidden":false}] Best regards Fabian

    1. Hey Andre,
      thanks for the hint. I didn't know that at all 🙂
      I'll have a look at it and maybe make a HowTo for it.
      Thank you and best regards
      Fabian

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.