{"id":2841,"date":"2021-02-27T18:12:56","date_gmt":"2021-02-27T18:12:56","guid":{"rendered":"https:\/\/oursoide.wordpress.com\/?p=2841"},"modified":"2021-02-27T18:12:56","modified_gmt":"2021-02-27T18:12:56","slug":"helios-64-part-6-gerer-les-pannes-electriques","status":"publish","type":"post","link":"https:\/\/blog.nanuq.me\/?p=2841","title":{"rendered":"[ARCHIVE] Helios 64 \/ Part 6 : G\u00e9rer les pannes \u00e9lectriques"},"content":{"rendered":"<p><em>\ud83d\uddd3\ufe0f Note : Cet article est une archive import\u00e9e de mon ancien blog. Certaines informations peuvent ne plus \u00eatre \u00e0 jour.<\/em><\/p>\n<p>Le Helios64 \u00e9tant \u00e9quip\u00e9 d&rsquo;une batterie, voici un petit tuto pour que la machine s&rsquo;\u00e9teigne proprement et sans tout casser.<\/p>\n<p><!--more--><\/p>\n<p><em><strong>Disclaimer : Je ne suis qu&rsquo;un Ours, et pas un expert en informatique. Ce qui suit n&rsquo;est que le r\u00e9sultat de mes p\u00e9r\u00e9grinations sur les internets pour essayer de comprendre comment \u00e7a fonctionne. Mes grosses papates velues ne garantissent aucun r\u00e9sultat.<\/strong><\/em><\/p>\n<p>En cas de coupure de courant, votre Helios64 pourrait s&rsquo;\u00e9teindre brusquement, et \u00e7a c&rsquo;est jamais vraiment bon. Il vaut mieux qu&rsquo;il s&rsquo;\u00e9teigne proprement pour \u00e9viter des pertes de donn\u00e9es par exemple.<\/p>\n<p>Heureusement, on peut brancher une batterie dans le Helios64 (et dans mon cas, j&rsquo;avais choisis cette option donc la batterie \u00e9tait fourni avec). La voici :<\/p>\n<p><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/img_20201023_163209-scaled-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2449 size-large\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/01\/img_20201023_163209-scaled-1-1024x576.jpg\" alt=\"\" width=\"700\" height=\"394\"><\/a><\/p>\n<p>L&rsquo;id\u00e9e, c&rsquo;est de v\u00e9rifier \u00e0 intervalle r\u00e9gulier que la batterie n&rsquo;est pas en train de se d\u00e9charger, et que si c&rsquo;est le cas, il faut \u00e9teindre proprement l&rsquo;ordinateur. J&rsquo;imagine qu&rsquo;il y a tout plein de mani\u00e8re de faire \u00e7a, avec un syst\u00e8me de monitoring par exemple. Mais pour ma part, j&rsquo;ai choisis de faire \u00e7a avec une t\u00e2che Cron. On en a d\u00e9j\u00e0 parl\u00e9 dans <a href=\"https:\/\/blog.nanuq.me\/2020\/10\/18\/ca-va-etre-tout-noir\/\">cet article.<\/a><\/p>\n<p>Je vais donc essayer de v\u00e9rifier une fois toutes les cinq minutes (c&rsquo;est arbitraire mais \u00e7a me semble bien) que la batterie n&rsquo;est pas en dessous d&rsquo;un certains seuil de charge. En effet, si Helios64 est aliment\u00e9 normalement, alors la batterie sera \u00e0 100% de sa capacit\u00e9 et ne sera pas utilis\u00e9e. En cas de panne \u00e9lectrique, la batterie va se d\u00e9charger lentement, et il faudra arr\u00eater le syst\u00e8me sous un certain seuil de charge.<\/p>\n<p>Pour d\u00e9terminer ce seuil, \u00a0je me suis bas\u00e9 des explications qui est donn\u00e9 sur <a href=\"https:\/\/wiki.kobol.io\/helios64\/ups\/\">la page officielle de Kobol.<\/a><\/p>\n<p><a title=\"\" href=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/02\/tableau_batteriehelios64-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2847 size-full\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2021\/02\/tableau_batteriehelios64-1.png\" alt=\"\" width=\"785\" height=\"251\"><\/a><\/p>\n<p>Il faut donc v\u00e9rifier que le voltage de la batterie ne descende pas sous les 7.0 V soit 916 mV.<\/p>\n<p>La valeur ADC correspond \u00e0 <i><span class=\"lang-en\" lang=\"en\">Analog to Digital Converter<\/span><\/i> ou Convertisseur Analogique Num\u00e9rique (dans la langue de Michel Drucker). Les composants \u00e9lectroniques fournissent en effet des valeurs brutes, que l&rsquo;on convertit pour avoir des valeurs num\u00e9riques que l&rsquo;on peut manipuler plus ais\u00e9ment. Bon, j&rsquo;ai pas tout compris sur le plan \u00e9lectrique et \u00e9lectronique, mais ce que je comprends et qu&rsquo;il faut retenir : <strong>si \u00e7a descend sous 916, alors il faut \u00e9teindre.<\/strong><\/p>\n<p>Via le wiki , on apprend que la formule est :<\/p>\n<p><code>adc = in_voltage2_raw * in_voltage_scale<\/code><\/p>\n<p>Et que ces valeurs sont stock\u00e9es dans :<\/p>\n<pre id=\"__code_2\"><code><span class=\"s2\">\/sys\/bus\/iio\/devices\/iio:device0\/<\/span><\/code><\/pre>\n<h2>Cr\u00e9ation du script<\/h2>\n<p>Cr\u00e9ez un fichier <em><strong>battery.sh<\/strong><\/em> \u00e0 un emplacement de votre choix (perso c&rsquo;est <em><strong>\/usr\/local\/sbin<\/strong><\/em>) : <code><span class=\"s2\">nano \/usr\/local\/sbin\/battery.sh<\/span><\/code><\/p>\n<blockquote><p>#!\/usr\/bin\/env sh<\/p>\n<p># Script qui \u00e9teint proprement la machine quand la batterie descend sous un certain niveau<br>\n# on r\u00e9cup\u00e9re les valeurs brutes<br>\na=`cat \/sys\/bus\/iio\/devices\/iio:device0\/in_voltage2_raw`<br>\nb=`cat \/sys\/bus\/iio\/devices\/iio:device0\/in_voltage_scale`<\/p>\n<p># on les convertis dans des valeurs compr\u00e9hensible en mV<br>\nx=`echo \u00ab\u00a0$a*$b\u00a0\u00bb | bc`<\/p>\n<p># on r\u00e9cup\u00e9re la date pour garder une trace dans les logs<br>\nnow=$(date)<\/p>\n<p># on v\u00e9rifie si on est en dessous de 960 mV<br>\n# si oui on red\u00e9marre<br>\nif [ x&lt;=960 ]<br>\nthen<br>\necho \u00ab\u00a0$now\u00a0\u00bb $x \u00ab\u00a0\/!\\ LOW BATTERY\u00a0\u00bb<br>\n\/sbin\/shutdown<br>\nelse<br>\necho \u00ab\u00a0$now\u00a0\u00bb $x<br>\nfi<\/p><\/blockquote>\n<p>J&rsquo;ai mis des <em>echo<\/em> pour r\u00e9cup\u00e9rer dans les logs ce qui se passe. A l&rsquo;avenir je ferai un systeme pour roller les logs pour pas qu&rsquo;ils ne prennent trop de place.<br>\nJ&rsquo;ai choisis 960 mV plutot que 916 mv (~ +5%) pour avoir un peu de marge.<\/p>\n<p>&nbsp;<\/p>\n<h2>Cr\u00e9ation de la t\u00e2che cron<\/h2>\n<p>On tape la commande suivante pour acc\u00e9der \u00e0 la liste des t\u00e2ches cron :<\/p>\n<p><code><span class=\"s2\">crontab -e<\/span><\/code><\/p>\n<p>Et on ajoute cette petite r\u00e9gle, qui va lancer notre script toutes les 5 minutes, et enregistrer les logs dans un fichier log.<\/p>\n<p><code><span class=\"s2\">#CHECK BATTERY toutes les 5 minutes<br>\n5 * * * * bash \/usr\/local\/sbin\/battery.sh &gt;&gt; \/var\/log\/battery.log 2&gt;&amp;1<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<h2>Petit test<\/h2>\n<p>Il suffit alors de couper l&rsquo;alimentation de notre Helios64 et d&rsquo;attendre quelques heures pour voir si il se coupe proprement.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>Voil\u00e0, j&rsquo;espere que ca vous servira. Evidemment c&rsquo;est optimisable et je sens bien que c&rsquo;est une \u00ab\u00a0solution de bourrin\u00a0\u00bb mais en attendant : \u00e7a marche.<\/p>\n<p>A bientot \ud83d\ude00<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\uddd3\ufe0f Note : Cet article est une archive import\u00e9e de mon ancien blog. Certaines informations peuvent ne plus \u00eatre \u00e0 jour. Le Helios64 \u00e9tant \u00e9quip\u00e9&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2855,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,4],"tags":[8,18,22,60,62,107,118],"_links":{"self":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/2841"}],"collection":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2841"}],"version-history":[{"count":0,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/2841\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}