HowTo: Node Red - Send e-mail on events

(I think) E-mails are one of the oldest ways to communicate on the Internet. By contrast, they do not play a major role in the smart home sector. For fast and direct data exchange, it is often better to use push services - such as Pushbullet - or direct MQTT.

In some cases it can be handy to send an e-mail from NodeRed. For example, in this way you could send a monthly status report as a monthly summary to your own e-mail inbox.
Or you send yourself daily the current weather report. The possibilities are almost unlimited. If you have any other useful uses, feel free to leave a comment with your idea. 🙂

The following article explains how you can email the current weather report for an event.

Hints for our lovely english readers: Basically, many of the articles on Nerdiy.de are translations from the original german articles. Therefore, it may happen here and there that some illustrations are not available in english and that some translations are weird/strange/full of mistakes or generally totaly wrong. So if you find some obvious (or also not obvious) mistakes don't hesitate to leave us a hint about that in the comment section. 
Also please don't get confused, that instead of a "dot" often a "comma" is used as decimal separator. 🙂


Safety instructions

I know the following hints are always a bit annoying and seem unnecessary. But unfortunately, many people who knew it "better" from carelessness lost their eyes, fingers or other things or hurt themselves. In comparison, a loss of data is almost not worth mentioning, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Even the coolest project is worth no injury or other annoyance. https://www.nerdiy.de/en/sicherheitshinweise/

Affiliate links / advertising links

The links to online stores listed here are so-called affiliate links. If you click on such an affiliate link and store via this link, Nerdiy.de receives a commission from the online store or provider concerned. The price doesn't change for you. If you do your purchases via these links, you will support Nerdiy.de in being able to offer further useful projects in the future. 🙂


Requirements

Helpful Articles:
Of course NodeRed should already be installed so that you can take over this configuration.
How to prepare a RaspberryPi and then install NodeRed on it, is described in the following articles.
RaspberryPi - Setting up for Nerdiys!
RaspberryPi - The first configuration
RaspberryPi - Controlling the RaspberryPi via SSH
NodeRed - Installing NodeRed on the RaspberryPi
NodeRed - Install New Nodes

NodeRed - Get current weather data from OpenWeatherMap

Required tools:
-none-

Required material:

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


Log in to the NodeRed configuration interface

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

View of the login screen. Here you have to enter the login details that you entered during the configuration of the login. Information about this can be found in the article NodeRed - User Login Setup.

Prepare openWeatherMap node

In order for you to be able to collect the data to be sent by e-mail, you must have the openWeatherMap node running in your NodeRed configuration. The necessary steps are described in the article NodeRed - Get current weather data from OpenWeatherMap.

 


Node-code Example: The current weather data received by e-mail

For this example, you do not need any other than the default installed nodes. To apply the configuration, you only have to import the node code below into your configuration. How to do this is explained in the article NodeRed - Install New Nodes.

After importing the node code you have to add a few configurations to each node.

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": "Hello dear email recipient, \nhere comes the latest weather data from {{time}} for {{data.name}}. \nTemperature: {{data.main.temp}}°C,\nMinimum temperature {{data.main.temp_min}}°C,\nMaximum temperature {{data.main.temp_max}}°C,\nHumidity {{data.main.humidity}}%,\nAir pressure: {{data.main.pressure}}mmHg,\nWind speed: {{data.wind.speed}},\nWind direction: {{data.wind.deg}}°\n\nLiebe Grüße\nDein NodeRed\n\n","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":[]}]
For this example to work, you need to edit the email node. There you have to enter the server data of your e-mail server. To do this, enter the URL of your SMTP server under "Server", the corresponding user name under "UserId" and the appropriate password under "Password". Last but not least, you have to enter the recipient email to which the email should be sent in the first line under "To".
In the template node you can edit the e-mail sent text and customize it to your needs.
You can also edit the subject of the e-mail in the change node. In the last line, the variable "Msg.title" is set, whose content is then used as the subject in the e-mail node.

Have fun with the project

I hope everything worked as described. If not or you have any other questions or suggestions, please let me know in the comments. Also, ideas for new projects are always welcome. 🙂

P.S. 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 appreciate that I share this information with you, I would be happy about a small donation to the coffee box. 🙂

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 🙂 .
      But if you already want to experiment a bit: You can build a "state lock" using two "trigger" blocks.
      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/
      This locking has the consequence that the incoming message is only forwarded if the status changes. After all, you only want to send an email when you switch the switch from "Off" to "On". 🙂
      I hope that helps you. If not, feel free to post your code here and I'll "craft" such a solution in there 🙂 .

      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