Comment vérifier simplement le bon fonctionnement de ses objets connectés ?
Nous avons de plus en plus d'objets connectés, la question est comment s'assurer de leur bon fonctionnement ? Voici un exemple de flow simple mis en oeuvre sur Node-Red pour vérifier la disponibilité de ses objets connectés et être immédiatement averti en cas de problème.
J'utilise pour cela le nœud "Ping" disponible sur le portail de Node-Red. Ce nœud peut s'installer très rapidement au travers de la commande suivante:
$ npm install node-red-node-ping
Il est aussi possible d'utiliser le plugin Ping Advanced, plus riche en fonctionnalités, mais mis à jour il y a plus d'un an.
- Première étape, le serveur ping l'ensemble des objets et le DNS de Google pour s'assurer de la connectivité à Internet.
- Seconde étape, si un ping échoue et retourne "false", je construis un SMS et un email que j'envoie dans une limite de 5 messages par heure et 10 par jour.
Pour l'envoi du SMS, j'utilise le flow Node-Red précédemment décrit sur ce blog.
Voici le flow en détail pouvant être directement importé dans Node-Red via la fonction d'import disponible dans le menu de l'application :
[
{
"id": "9eb4b49c.614b48",
"type": "ping",
"name": "Check Internet",
"host": "8.8.8.8",
"timer": "60",
"x": 114,
"y": 74,
"z": "38ba78b3.c74588",
"wires": [
[
"12de3311.ed21cd"
]
]
},
{
"id": "ebb458eb.144ba8",
"type": "ping",
"name": "Check Karotz",
"host": "192.168.1.6",
"timer": "60",
"x": 111,
"y": 118,
"z": "38ba78b3.c74588",
"wires": [
[
"12de3311.ed21cd"
]
]
},
{
"id": "59174860.a6e8b8",
"type": "ping",
"name": "Check Arduino",
"host": "192.168.1.4",
"timer": "60",
"x": 113,
"y": 164,
"z": "38ba78b3.c74588",
"wires": [
[
"12de3311.ed21cd"
]
]
},
{
"id": "46b5d3a9.b94a2c",
"type": "ping",
"name": "Check Switch",
"host": "192.168.1.1",
"timer": "60",
"x": 111,
"y": 210,
"z": "38ba78b3.c74588",
"wires": [
[
"12de3311.ed21cd"
]
]
},
{
"id": "9b7fa33e.64806",
"type": "ping",
"name": "Check Freebox",
"host": "192.168.1.254",
"timer": "60",
"x": 117,
"y": 254,
"z": "38ba78b3.c74588",
"wires": [
[
"12de3311.ed21cd"
]
]
},
{
"id": "12de3311.ed21cd",
"type": "switch",
"name": "",
"property": "payload",
"rules": [
{
"t": "false"
}
],
"checkall": "true",
"outputs": 1,
"x": 402,
"y": 150,
"z": "38ba78b3.c74588",
"wires": [
[
"feeab731.011548"
]
]
},
{
"id": "feeab731.011548",
"type": "delay",
"name": "",
"pauseType": "rate",
"timeout": "1",
"timeoutUnits": "hours",
"rate": "5",
"rateUnits": "hour",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 572,
"y": 151,
"z": "38ba78b3.c74588",
"wires": [
[
"95c19115.6a3e7"
]
]
},
{
"id": "95c19115.6a3e7",
"type": "delay",
"name": "",
"pauseType": "rate",
"timeout": "4",
"timeoutUnits": "seconds",
"rate": "10",
"rateUnits": "day",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 737,
"y": 150,
"z": "38ba78b3.c74588",
"wires": [
[
"17b9866d.e8467a"
]
]
},
{
"id": "6aa677bb.955988",
"type": "http request",
"name": "SMS Alert Ludovic",
"method": "GET",
"ret": "txt",
"url": "https://localhost:8080/api/sendsms?phone=0642340922&msg={{{payload}}}",
"x": 1168,
"y": 157,
"z": "38ba78b3.c74588",
"wires": [
[]
]
},
{
"id": "17b9866d.e8467a",
"type": "template",
"name": "Ping message",
"field": "payload",
"format": "handlebars",
"template": "Serveur {{topic}} indisponible ! ",
"x": 919,
"y": 157,
"z": "38ba78b3.c74588",
"wires": [
[
"6aa677bb.955988",
"da3155a.f25cea8"
]
]
},
{
"id": "da3155a.f25cea8",
"type": "e-mail",
"server": "smtp.gmail.com",
"port": "465",
"name": "xx",
"dname": "Email Alert",
"x": 1149,
"y": 209,
"z": "38ba78b3.c74588",
"wires": []
},
{
"id": "7490e004.8b6f2",
"type": "comment",
"name": "Ping toutes les 60 secondes",
"info": "",
"x": 157,
"y": 30,
"z": "38ba78b3.c74588",
"wires": []
},
{
"id": "9740b72f.68bf48",
"type": "comment",
"name": "Si KO",
"info": "",
"x": 401,
"y": 98,
"z": "38ba78b3.c74588",
"wires": []
},
{
"id": "cf2d3049.30d2d",
"type": "comment",
"name": "Anti-Spam",
"info": "",
"x": 559,
"y": 95,
"z": "38ba78b3.c74588",
"wires": []
},
{
"id": "e289635a.1d76a",
"type": "comment",
"name": "Construction du message",
"info": "",
"x": 923,
"y": 97,
"z": "38ba78b3.c74588",
"wires": []
},
{
"id": "ab74252b.548bd8",
"type": "comment",
"name": "Transmission",
"info": "",
"x": 1150,
"y": 99,
"z": "38ba78b3.c74588",
"wires": []
}
]
Ce flow vous permettra de vous assurer que vos objets connectés sont correctement allumés et disponibles, en cas de problème vous serez immédiatement averti par SMS et email.