L'un de ces points faibles d'un système SmartHome dont on ne prend vraiment conscience qu'en cas de problème est "l'énergie". Malheureusement, tous les capteurs, actionneurs et l'intelligence de contrôle derrière eux ne fonctionnent pas avec de l'air et de l'amour. Et même si l'énergie utilisée par le système n'est pas très élevée et, en général, les économies sont certainement supérieures à l'énergie "consommée", l'énergie d'approvisionnement est toujours essentielle. En d'autres termes : pas d'électricité -> pas de SmartHome.
Mais partager cela est un problème de luxe avec lequel vous pourriez vivre. Bien pire, je trouve l'idée que mon RaspberryPi ou n'importe quel ordinateur en général pourrait s'étouffer lors d'une panne de courant soudaine de telle sorte qu'il pourrait ne pas démarrer par la suite.
Car si votre système SmartHome (RaspberryPi, BeagleBone, PC Windows, etc.) est interrompu au moment même où il écrit des données (système) importantes, il est possible qu'il ne démarre plus correctement après coupure de l'alimentation été restauré. Dans les cas extrêmes, cela conduit à une perte douloureuse de données et donc souvent à une perte de temps considérable. Parce que dans les cas extrêmes, vous n'avez pas de sauvegarde du système et vous devez ensuite réinstaller et configurer l'ensemble du système, y compris tous les composants du système.
Mais : En fait, d'autres personnes semblent avoir trébuché sur ce problème. Pour ce cas, des alimentations sans coupure (UPS) ont été inventées. Ces appareils sont connectés entre la prise et le consommateur (dans ce cas votre RaspberryPi, etc.) et surveillent en permanence la qualité de votre tension secteur à partir de là. Cela signifie qu'il est surveillé en permanence si la tension AC entrante et la fréquence se situent dans la plage autorisée. En cas de sous-tension ou de surtension, ou si quelque chose d'autre ne va pas avec la tension d'alimentation, l'onduleur coupe l'entrée de tension en quelques millisecondes et passe à une batterie tampon interne. Celui-ci prend alors en charge l'alimentation des consommateurs raccordés jusqu'à ce que la batterie tampon soit vide.
Les onduleurs sont quant à eux disponibles sous toutes sortes de formes. Les plus petits ressemblent à des multiprises un peu maladroites. D'autres - ou leurs batteries - peuvent remplir une pièce entière.
Pour l'utilisateur normal de SmartHome, les versions plus petites sont certainement suffisantes. Tel que …
Cet article explique comment vous intégrez finalement votre propre onduleur dans NodeRed et réagissez aux changements.
Consignes de sécurité
Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/
Liens d'affiliation/publicitaires
Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂
Conditions préalables
Articles utiles :
Pour que vous puissiez contrôler/configurer votre onduleur via votre RaspberryPi et NodeRed, il faut bien sûr le préparer pour que NodeRed tourne dessus et que vous puissiez y accéder via SSH.
RaspberryPi - configuration pour les nerdiys !
RaspberryPi – La première configuration !
RaspberryPi - Contrôlez le RaspberryPi via SSH
NodeRed – Installer NodeRed sur le RaspberryPi
NodeRed - importer et exporter le code du nœud
NodeRed - Envoyer des messages pushbullet sur les événements
NodeRed - Créer une interface utilisateur avec des nœuds de tableau de bord
Matériel requis :
Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.
Lecture d'un onduleur connecté au RaspberryPi
L'inconvénient d'une alimentation sans coupure est que le RaspberryPi ne remarque rien dès que quelque chose ne va pas avec l'alimentation (plus). En fait, c'est ce que vous voulez qu'il soit. En revanche, le RaspberryPi ne peut pas non plus réagir à ce changement.
Car même si la batterie d'un onduleur est assez volumineuse par rapport à la consommation d'un RaspberryPi : La capacité de la batterie est finie. Pour cette raison, le RaspberryPi devrait, par exemple, s'éteindre automatiquement avant que la batterie ne soit complètement épuisée. Cela minimise le risque de perte de données et vous permet de réagir de manière contrôlée à la panne de courant.
Pour que le RasperryPi puisse être informé des changements de l'UPS, il doit être connecté au RasperryPi via une connexion USB ou série.
Pour le RaspberryPi il existe le programme « Apcupsd », qui permet de lire l'état de votre onduleur. Vous pouvez ensuite également utiliser ce statut pour y réagir via NodeRed.
Par exemple, il serait également possible d'éteindre certains composants ou d'arrêter d'autres RaspberryPi - dans la mesure où ils ne sont pas tombés en panne de toute façon en raison de la panne de courant.
Cependant, avant de pouvoir lire l'état de votre onduleur dans NodeRed, "apcupsd" doit d'abord être installé.
Connectez-vous au RaspberryPi via SSH
Pour commencer, vous devez d'abord vous connecter au Rasp Pi avec Putty via SSH. Comment faire cela est dans l'article RaspberryPi - Contrôlez le RaspberryPi via SSH décrites.

Mettre à jour la gestion des packages
La gestion des packages sous Linux est un "lieu central" à travers lequel divers packages logiciels peuvent être installés. Pour que cela fonctionne de manière fiable, les listes et les sources de la gestion des packages doivent être mises à jour avant chaque installation de nouveaux packages.

sudo apt-get mise à jour && sudo apt-get mise à niveau



Installez "apcupsd" sur le RaspberryPi
Pour que votre RaspberryPi puisse communiquer avec l'onduleur connecté, vous devez d'abord installer quelques packages.

sudo apt-get install apcupsd


Configurer Apcupsd
Avant de pouvoir utiliser "apcupsd", il faut bien sûr d'abord le configurer. Pour ce faire, quelques fichiers de configuration doivent être modifiés.

sudo nano /etc/apcupsd/apcupsd.conf


UPSCÂBLE usb

usb de type supérieur










sudo nano /etc/default/apcupsd





sudo /etc/init.d/apcupsd start


état d'accès apc


sudo /etc/init.d/apcupsd redémarrage
Vous avez maintenant la possibilité d'afficher les informations de l'onduleur sur le RaspberryPi. Pour utiliser ces informations pour votre SmartHome, vous pouvez utiliser le NodeCode suivant.
Importer le code du nœud
Avec le NodeCode suivant, vous pouvez afficher quelques détails sur l'état actuel de votre onduleur. Ainsi, vous pouvez réagir individuellement à certaines propriétés.
Par exemple, il serait possible d'être averti d'une panne de courant via push bullet ou, comme dans l'exemple ci-dessous, d'afficher les données les plus importantes sur le tableau de bord. Pour que des messages push bullet puissent être envoyés en cas de panne de courant, vous devez bien sûr vous assurer que toute votre infrastructure réseau est également protégée par l'onduleur. Si la panne de courant est très étendue, bien sûr, cela n'aide pas non plus. Par conséquent, la communication via Internet en cas de panne de courant n'est bien sûr pas garantie.
Comment importer votre NodeCode dans votre configuration NodeRed est dans l'article NodeRed - importer et exporter le code du nœud décrit. Après l'importation, vous devrez peut-être également configurer le nœud pushbullet. Vous trouverez des informations à ce sujet dans l'article NodeRed - Envoyer des messages pushbullet sur les événements. Les nœuds du tableau de bord sont utilisés pour afficher les données de l'onduleur. Vous trouverez des informations à ce sujet dans l'article NodeRed - Créer une interface utilisateur avec des nœuds de tableau de bord.


[{"id":"e2a1a48.9207858","type":"exec","z":"8c9f8f17.13eb78","command":"/sbin/apcaccess","append":"","useSpawn":"","name":"apcaccess","x":390,"y":1740,"wires":[["c5f64040.b7a32","9ef1333b.1cf96"],[],[]]},{"id":"ebe2e46e.660788","type":"inject","z":"8c9f8f17.13eb78","name":"status request","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"onceDelay":"","x":200,"y":1740,"wires":[["e2a1a48.9207858"]]},{"id":"c5f64040.b7a32","type":"trigger","z":"8c9f8f17.13eb78","op1":"true","op2":"false","op1type":"bool","op2type":"bool","duration":"1","extend":true,"units":"min","reset":"","bytopic":"all","name":"status","x":570,"y":1700,"wires":[["c65a87d0.d60ef8"]]},{"id":"c65a87d0.d60ef8","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"change","p":"topic","pt":"msg","from":"^(.*)$","fromt":"re","to":"online","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":750,"y":1700,"wires":[["e9c65962.f1bd98"]]},{"id":"9ef1333b.1cf96","type":"function","z":"8c9f8f17.13eb78","name":"convert2Json","func":"const ans = {} Array.prototype.map.call( msg.payload.trim().split("\n"), function(line) { if ( line.trim() === '' ) return let part = line.split(':') // Some values contain ':', when they do, we have to rejoin if ( part.length > 2 ) { let newPart = [] newPart.push( part.shift() ) newPart.push( part.join(':') ) part = newPart } let payloadName = part[0].toLowerCase().trim() let payloadValue = part[1].trim() ans[payloadName] = payloadValue return } ) msg.payload = ans return msg","outputs":1,"noerr":0,"x":600,"y":1760,"wires":[["7177d00d.0f8c1","f49b6561.709b18","9cd3b15b.3aa0a","cbdff947.6252f8","9a68559b.2e0408","a998a9f0.b4c2f8","cbb1400b.8107f","4db0abb3.948d94"]]},{"id":"e9c65962.f1bd98","type":"debug","z":"8c9f8f17.13eb78","name":"online/offline-Status","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":980,"y":1700,"wires":[]},{"id":"7177d00d.0f8c1","type":"debug","z":"8c9f8f17.13eb78","name":"Data as JSON payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":840,"y":1760,"wires":[]},{"id":"90dd24c3.50c968","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Battery charge","group":"c8fbbc62.c288a","order":4,"width":0,"height":0,"gtype":"gage","title":"Battery charge:","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ca3838","#e6e600","#00b500"],"seg1":"","seg2":"","x":1080,"y":1800,"wires":[]},{"id":"4b7d84af.22ddfc","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Batterie-Temperature","group":"c8fbbc62.c288a","order":5,"width":0,"height":0,"gtype":"gage","title":"Batterie-Temperature:","label":"°C","format":"{{value}}","min":"20","max":"40","colors":["#00b500","#00b500","#ca3838"],"seg1":"","seg2":"","x":1100,"y":1840,"wires":[]},{"id":"c655e83c.23f538","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Batterie-Voltage","group":"c8fbbc62.c288a","order":6,"width":0,"height":0,"gtype":"gage","title":"Batterie-Voltage:","label":"V","format":"{{value}}","min":"11","max":"15","colors":["#ca3838","#00b500","#ca3838"],"seg1":"","seg2":"","x":1080,"y":1880,"wires":[]},{"id":"3ce99364.46890c","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Mains voltage","group":"c8fbbc62.c288a","order":7,"width":0,"height":0,"gtype":"gage","title":"Mains voltage:","label":"V","format":"{{value}}","min":"220","max":"240","colors":["#ca3838","#00b500","#ca3838"],"seg1":"","seg2":"","x":1080,"y":1920,"wires":[]},{"id":"810aaaf7.ec4f48","type":"ui_text","z":"8c9f8f17.13eb78","group":"c8fbbc62.c288a","order":1,"width":0,"height":0,"name":"Status","label":"Status:","format":"{{msg.payload}}","layout":"row-spread","x":1050,"y":1960,"wires":[]},{"id":"f49b6561.709b18","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.bcharge","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":1800,"wires":[["90dd24c3.50c968"]]},{"id":"9cd3b15b.3aa0a","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.itemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":1840,"wires":[["4b7d84af.22ddfc"]]},{"id":"cbdff947.6252f8","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battv","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":1880,"wires":[["c655e83c.23f538"]]},{"id":"9a68559b.2e0408","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.linev","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":1920,"wires":[["3ce99364.46890c"]]},{"id":"a998a9f0.b4c2f8","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.status","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":1960,"wires":[["810aaaf7.ec4f48"]]},{"id":"5f70becf.c02b8","type":"ui_text","z":"8c9f8f17.13eb78","group":"c8fbbc62.c288a","order":2,"width":0,"height":0,"name":"Last Update","label":"Last Update:","format":"{{msg.payload}}","layout":"row-spread","x":1070,"y":2000,"wires":[]},{"id":"cbb1400b.8107f","type":"function","z":"8c9f8f17.13eb78","name":"","func":"msg.payload=Date(Date.now()); return msg;","outputs":1,"noerr":0,"x":790,"y":2000,"wires":[["5f70becf.c02b8"]]},{"id":"4db0abb3.948d94","type":"function","z":"8c9f8f17.13eb78","name":"","func":"if (msg.payload.linev<=100) { msg.payload="Power failure: UPS-Mains-voltage below 100V!"; return msg; }","outputs":1,"noerr":0,"x":790,"y":2040,"wires":[["f62fd4e0.66c8b8"]]},{"id":"f62fd4e0.66c8b8","type":"pushbullet","z":"8c9f8f17.13eb78","config":"e3daf163.eeb16","pushtype":"note","title":"SmartHome","chan":"","name":"","x":1070,"y":2040,"wires":[]},{"id":"622137c.74419c8","type":"inject","z":"8c9f8f17.13eb78","name":"Test Power failure","topic":"","payload":"60","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":410,"y":2040,"wires":[["4f72d77f.af5ee8"]]},{"id":"4f72d77f.af5ee8","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"temp","pt":"flow","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload.linev","pt":"msg","to":"temp","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":2040,"wires":[["4db0abb3.948d94"]]},{"id":"c8fbbc62.c288a","type":"ui_group","z":"","name":"USV2","tab":"4719e8d9.2a46f8","disp":true,"width":"6","collapse":false},{"id":"e3daf163.eeb16","type":"pushbullet-config","z":"","name":"FabsPushbullet"},{"id":"4719e8d9.2a46f8","type":"ui_tab","z":"","name":"Einstellungen","icon":"dashboard"}]
Lecture d'un onduleur connecté à un Synology NAS
Si vous possédez un NAS Synology ou un NAS en général, la question de la perte de données est encore plus importante. Après tout, les photos de famille (ou une partie d'entre elles) ne doivent pas disparaître dans le nirvana des données en cas de panne de courant. C'est pourquoi de nombreux fabricants proposent la fonction de protection de leur propre NAS contre les pannes de courant avec un onduleur. L'onduleur est alors également connecté au NAS via USB afin de pouvoir informer d'un changement d'état. Si une panne de courant se produit alors, le NAS le reconnaît et s'éteint automatiquement et de manière contrôlée. Pratique et bon pour les données stockées sur le NAS. Dans le même temps, cependant, il n'est pas pratique que les autres participants au réseau n'apprennent rien de la situation (sauf que l'alimentation est coupée).
Au moins le NAS de Synology offre une solution pour cela : via un serveur UPS réseau intégré, l'état de l'UPS connecté au NAS peut également être enregistré par d'autres participants au réseau. De cette façon, vous pouvez finalement enregistrer l'état sur le RaspberryPi et donc aussi dans NodeRed.





Installez le NetworkUpsTools(NUT) sur le RaspberryPi pour pouvoir récupérer les données UPS d'un serveur UPS
Maintenant que le serveur a été configuré pour fournir les informations sur l'onduleur, le côté client (c'est-à-dire votre RaspberryPi) doit bien sûr également être configuré en conséquence. Bien entendu, celui-ci doit également pouvoir contacter le serveur UPS du réseau sur votre NAS. Un programme qui rend cela possible est le "NetworkUpsTool", qui peut être installé comme suit.

écrou d'installation sudo aptitude
Un avis: Pour installer "NUT", vous avez besoin de l'extension "aptitude" pour le gestionnaire de packages "APT". S'il n'est pas déjà disponible, vous pouvez l'installer avec la commande suivante.
sudo apt-get install aptitude
Vous confirmez toutes les questions lors de l'installation avec un "y" et "Entrée". La plupart du temps (comme dans cet exemple), ces questions portent sur l'espace de stockage supplémentaire occupé par les outils à installer et si d'autres packages (requis) peuvent également être installés.

sudo nano /etc/nut/nut.conf


mode=netclient



sudo nano /etc/nut/upsmon.conf

MONITOR ups@*IP-ADDRESS-YOUR-NAS* 1 esclave secret monuser



redémarrage du client nut du service sudo

sudo upsc ups@*IP-ADDRESS-YOUR-NAS*

Importer le code du nœud
Avec le NodeCode suivant, vous pouvez afficher quelques détails sur l'état actuel de votre onduleur connecté à votre Synology NAS. Ainsi, vous pouvez réagir individuellement à certaines propriétés.
Par exemple, il serait possible d'être averti d'une panne de courant via push bullet ou, comme dans l'exemple ci-dessous, d'afficher les données les plus importantes sur le tableau de bord. Pour que des messages push bullet puissent être envoyés en cas de panne de courant, vous devez bien sûr vous assurer que toute votre infrastructure réseau est également protégée par l'onduleur. Si la panne de courant est très étendue, bien sûr, cela n'aide pas non plus. Par conséquent, la communication via Internet en cas de panne de courant n'est bien sûr pas garantie.
Comment importer votre NodeCode dans votre configuration NodeRed est dans l'article NodeRed - importer et exporter le code du nœud décrit. Après l'importation, vous devrez peut-être également configurer le nœud pushbullet. Vous trouverez des informations à ce sujet dans l'article NodeRed - Envoyer des messages pushbullet sur les événements. Les nœuds du tableau de bord sont utilisés pour afficher les données de l'onduleur. Vous trouverez des informations à ce sujet dans l'article NodeRed - Créer une interface utilisateur avec des nœuds de tableau de bord.


[{"id":"b7aefd76.e8bf9","type":"comment","z":"8c9f8f17.13eb78","name":"USV-Server data request","info":"","x":170,"y":2160,"wires":[]},{"id":"66e7a9bd.eb6c58","type":"inject","z":"8c9f8f17.13eb78","name":"","topic":"status request","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":0.1,"x":180,"y":2240,"wires":[["d3649b9.f1b5468"]]},{"id":"d3649b9.f1b5468","type":"exec","z":"8c9f8f17.13eb78","command":"sudo upsc ups@192.168.3.59","addpay":false,"append":"","useSpawn":"","timer":"","oldrc":false,"name":"get UPS status","x":420,"y":2240,"wires":[["22edb893.55ed38"],[],[]]},{"id":"22edb893.55ed38","type":"function","z":"8c9f8f17.13eb78","name":"convert2Json","func":"const convertData = {} Array.prototype.map.call( msg.payload.trim().split("\n"), function(line) { if ( line.trim() === '' ) return let part = line.split(':') // Some values contain ':', when they do, we have to rejoin if ( part.length > 2 ) { let newPart = [] newPart.push( part.shift() ) newPart.push( part.join(':') ) part = newPart } let payloadName = part[0].toLowerCase().trim() payloadName = part[0].replace(/\./g, "_") let payloadValue = part[1].trim() convertData[payloadName] = payloadValue return } ) msg.payload = convertData return msg","outputs":1,"noerr":0,"x":630,"y":2240,"wires":[["61f07a9c.f54824","a1504bd4.049f18","4e4d02.d85ad3","641d6b8a.a25e34","49343e5b.85218","3c698623.45215a","83b9ebee.451878","282426fe.c5650a","50224b5b.8a4164"]]},{"id":"61f07a9c.f54824","type":"debug","z":"8c9f8f17.13eb78","name":"Data as JSON payload","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":920,"y":2240,"wires":[]},{"id":"21f21239.2c2bce","type":"ui_text","z":"8c9f8f17.13eb78","group":"6f8a5651.9e0318","order":0,"width":0,"height":0,"name":"Test:","label":"Test:","format":"{{msg.payload}}","layout":"row-spread","x":1130,"y":2480,"wires":[]},{"id":"a1504bd4.049f18","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery_charge","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2280,"wires":[["3442fea.41d6702"]]},{"id":"4e4d02.d85ad3","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery_temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2320,"wires":[["5362d4fa.9026ac"]]},{"id":"641d6b8a.a25e34","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.battery_voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2360,"wires":[["bd21c5da.510bc8"]]},{"id":"49343e5b.85218","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.input_voltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2400,"wires":[["22a47d9.d019982"]]},{"id":"3c698623.45215a","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.ups_status","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2440,"wires":[["6a33c3ab.06088c"]]},{"id":"83b9ebee.451878","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.ups_test_result","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":2480,"wires":[["21f21239.2c2bce"]]},{"id":"282426fe.c5650a","type":"function","z":"8c9f8f17.13eb78","name":"","func":"msg.payload=Date(Date.now()); return msg;","outputs":1,"noerr":0,"x":870,"y":2520,"wires":[["12142ef5.0928f1"]]},{"id":"50224b5b.8a4164","type":"function","z":"8c9f8f17.13eb78","name":"","func":"if (msg.payload.input_voltage<=100) { msg.payload="Stromausfall: USV-Eingangsspannung unter 100V!"; return msg; }","outputs":1,"noerr":0,"x":870,"y":2560,"wires":[["b4128198.758dd"]]},{"id":"b4128198.758dd","type":"pushbullet","z":"8c9f8f17.13eb78","config":"","pushtype":"note","title":"SmartHome","chan":"","name":"","x":1150,"y":2560,"wires":[]},{"id":"88e174da.1ab6d8","type":"inject","z":"8c9f8f17.13eb78","name":"Test Power failure","topic":"","payload":"60","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":490,"y":2560,"wires":[["b7ac5f17.07bbb"]]},{"id":"b7ac5f17.07bbb","type":"change","z":"8c9f8f17.13eb78","name":"","rules":[{"t":"set","p":"temp","pt":"flow","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload.input_voltage","pt":"msg","to":"temp","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":680,"y":2560,"wires":[["50224b5b.8a4164"]]},{"id":"3442fea.41d6702","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Battery charge","group":"c8fbbc62.c288a","order":4,"width":0,"height":0,"gtype":"gage","title":"Battery charge:","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#ca3838","#e6e600","#00b500"],"seg1":"","seg2":"","x":1160,"y":2280,"wires":[]},{"id":"5362d4fa.9026ac","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Batterie-Temperature","group":"c8fbbc62.c288a","order":5,"width":0,"height":0,"gtype":"gage","title":"Batterie-Temperature:","label":"°C","format":"{{value}}","min":"20","max":"40","colors":["#00b500","#00b500","#ca3838"],"seg1":"","seg2":"","x":1180,"y":2320,"wires":[]},{"id":"bd21c5da.510bc8","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Batterie-Voltage","group":"c8fbbc62.c288a","order":6,"width":0,"height":0,"gtype":"gage","title":"Batterie-Voltage:","label":"V","format":"{{value}}","min":"11","max":"15","colors":["#ca3838","#00b500","#ca3838"],"seg1":"","seg2":"","x":1160,"y":2360,"wires":[]},{"id":"22a47d9.d019982","type":"ui_gauge","z":"8c9f8f17.13eb78","name":"Mains voltage","group":"c8fbbc62.c288a","order":7,"width":0,"height":0,"gtype":"gage","title":"Mains voltage:","label":"V","format":"{{value}}","min":"220","max":"240","colors":["#ca3838","#00b500","#ca3838"],"seg1":"","seg2":"","x":1160,"y":2400,"wires":[]},{"id":"6a33c3ab.06088c","type":"ui_text","z":"8c9f8f17.13eb78","group":"c8fbbc62.c288a","order":1,"width":0,"height":0,"name":"Status","label":"Status:","format":"{{msg.payload}}","layout":"row-spread","x":1130,"y":2440,"wires":[]},{"id":"12142ef5.0928f1","type":"ui_text","z":"8c9f8f17.13eb78","group":"c8fbbc62.c288a","order":2,"width":0,"height":0,"name":"Last Update","label":"Last Update:","format":"{{msg.payload}}","layout":"row-spread","x":1150,"y":2520,"wires":[]},{"id":"6f8a5651.9e0318","type":"ui_group","z":"","name":"USV","tab":"fe022c7.d9788d","disp":true,"width":"6","collapse":false},{"id":"c8fbbc62.c288a","type":"ui_group","z":"","name":"USV2","tab":"4719e8d9.2a46f8","disp":true,"width":"6","collapse":false},{"id":"fe022c7.d9788d","type":"ui_tab","z":"","name":"Einstellungen","icon":"dashboard"},{"id":"4719e8d9.2a46f8","type":"ui_tab","z":"","name":"Einstellungen","icon":"dashboard"}]
Informations Complémentaires
https://wiki.ubuntuusers.de/USV/NUT/
https://flows.nodered.org/flow/cf9813fbca341607a73786c31df362c9
http://www.gtkdb.de/index_36_2203.html
Amusez-vous avec le projet
J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂
PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂