{"id":108,"date":"2020-12-17T19:59:27","date_gmt":"2020-12-17T18:59:27","guid":{"rendered":"https:\/\/192.168.0.105\/wordpress\/?p=108"},"modified":"2024-04-24T14:29:03","modified_gmt":"2024-04-24T12:29:03","slug":"home-assistant-deporter-la-base-de-donnees","status":"publish","type":"post","link":"https:\/\/domo.rem81.com\/index.php\/2020\/12\/17\/home-assistant-deporter-la-base-de-donnees\/","title":{"rendered":"HA- Optimisation de la base de donn\u00e9es"},"content":{"rendered":"\n\n\n\n<h1 class=\"wp-block-heading\">Intro<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Home Assistant utilise&nbsp;<a href=\"https:\/\/www.sqlalchemy.org\/\">SQLAlchemy<\/a>&nbsp;, qui est un Object Relational Mapper (ORM).&nbsp;Cela signifie que vous pouvez utiliser&nbsp;<strong>n&rsquo;importe quel<\/strong>&nbsp;backend SQL pour l&rsquo;enregistreur pris en charge par SQLAlchemy, comme&nbsp;<a href=\"https:\/\/www.mysql.com\/\">MySQL<\/a>&nbsp;,&nbsp;<a href=\"https:\/\/mariadb.org\/\">MariaDB<\/a>&nbsp;,&nbsp;<a href=\"https:\/\/www.postgresql.org\/\">PostgreSQL<\/a>&nbsp;ou&nbsp;<a href=\"https:\/\/www.microsoft.com\/en-us\/sql-server\/\">MS SQL Server<\/a>&nbsp;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le moteur de base de donn\u00e9es par d\u00e9faut est&nbsp;<a href=\"https:\/\/www.sqlite.org\/\">SQLite<\/a>&nbsp;qui ne n\u00e9cessite aucune configuration.&nbsp;La base de donn\u00e9es est stock\u00e9e dans votre r\u00e9pertoire de configuration de Home Assistant (&lsquo;\/ config \/&rsquo;) et est nomm\u00e9e&nbsp;<code>home-assistant_v2.db<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Afin de simplifier la gestion de la BD et d\u2019am\u00e9liorer les performances , j&rsquo;ai choisi d&rsquo;utiliser <a href=\"https:\/\/fr.wikipedia.org\/wiki\/MariaDB\">MariaDB<\/a>&nbsp;qui est un&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es\">syst\u00e8me de gestion de base de donn\u00e9es<\/a>&nbsp;\u00e9dit\u00e9 sous licence&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Licence_publique_g%C3%A9n%C3%A9rale_GNU\">GPL<\/a> et phpmyadmin comme gestionnaire de cette BD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mariadb et phpmyadmin sont deux Add-on disponibles sur HA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les principaux avantages de cette configuration sont:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dans les sauvegardes ou la restitution de \u00ab\u00a0snapshot\u00a0\u00bb, vous pouvez traiter s\u00e9par\u00e9ment la BD diminuant ainsi la taille des sauvegardes<\/li>\n\n\n\n<li>les manipulations de la BD sont facilit\u00e9es par phpmyadmin<\/li>\n\n\n\n<li>En profiter pour optimiser la taille de la BD<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Avertissemen<\/strong>ts:<br><strong>Dans cet article je ne traite que de la cr\u00e9ation et non de la migration de la bd, cette m\u00e9thode vous permet de relancer votre HA avec une BD vierge.<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Comment proc\u00e9der?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">La proc\u00e9dure se d\u00e9compose en trois \u00e9tapes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>installer l&rsquo;Add-on mariadb<\/li>\n\n\n\n<li>installer l&rsquo;Add-on phpmyadmin<\/li>\n\n\n\n<li>Configurer HA pour qu&rsquo;il pointe vers cette BD.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation de l&rsquo;Add-on mariadb<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tres simple, depuis la boutique des modules suppl\u00e9mentaires (nouvelle appellation de l&rsquo;Add-on store), choisissez mariadb, puis install.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois install\u00e9, cliquez sur configuration et modifier comme-suit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>databases:\n  - homeassistant\nlogins:\n  - username: votreusername\n    password: votremotdepasse\nrights:\n  - username: homeassistant\n    database: homeassistant<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Choisissez un mot de passe fort m\u00e9langeant minuscules, majuscules, un ou deux chiffres et caract\u00e8res sp\u00e9ciaux sous peine de voir l&rsquo;installation \u00e9chouer dans PhpMyadmin.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je vous conseille de conserver le nom de la db et les droits propos\u00e9s par d\u00e9faut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cliquer sur start, v\u00e9rifier votre log, il ne doit pas y avoir d&rsquo;erreur<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"219\" src=\"http:\/\/192.168.0.211\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03.png\" alt=\"\" class=\"wp-image-212\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03.png 626w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03-300x105.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><figcaption class=\"wp-element-caption\">Si tout se d\u00e9roule correctement, vous devriez arriver \u00e0 ce r\u00e9sultat.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Installation de l&rsquo;Add-on phpmyadmin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tres simple, depuis la boutique des modules suppl\u00e9mentaires (nouvelle appellation de l&rsquo;Add-on store), choisissez phpmyadmin, puis install.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"219\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03.png\" alt=\"\" class=\"wp-image-212\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03.png 626w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-02-03-300x105.png 300w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;installation termin\u00e9e, cocher \u00ab\u00a0Afficher dans la barre lat\u00e9rale\u00a0\u00bb, puis cliquez sur D\u00e9marrer, aucune configuration requise.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"574\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-07-00.png\" alt=\"\" class=\"wp-image-214\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-07-00.png 583w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-07-00-300x295.png 300w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><figcaption class=\"wp-element-caption\">Si tout se d\u00e9roule correctement, vous devriez arriver \u00e0 ce r\u00e9sultat.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sur le panneau lat\u00e9ral, vous pouvez acc\u00e9der au tableau de bord de phpmyadmin. Vous constaterez sur le panneau gauche, que la base homeassistant a \u00e9t\u00e9 cr\u00e9\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il reste \u00e0 attribuer les privil\u00e8ges globaux \u00e0 votre nom d&rsquo;utilisateur:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sur l&rsquo;interface phphmyadmin, cliquez sur \u00ab\u00a0comptes utilisateurs\u00a0\u00bb, sur \u00ab\u00a0editer les privil\u00e8ges\u00a0\u00bb de votre nom d&rsquo;utilisateur, cocher \u00ab\u00a0privileges globaux tout cocher\u00a0\u00bb<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"306\" height=\"53\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-22_09-18-28.png\" alt=\"\" class=\"wp-image-225\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-22_09-18-28.png 306w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-22_09-18-28-300x52.png 300w\" sizes=\"auto, (max-width: 306px) 100vw, 306px\" \/><figcaption class=\"wp-element-caption\">Puis cliquer \u00ab\u00a0ex\u00e9cuter\u00a0\u00bb en bas \u00e0 droite<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration de HA<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le fichier \u00ab\u00a0configuration.yaml\u00a0\u00bb, ajouter les commandes suivantes:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>recorder:\n  db_url: !secret db_mysql\n  auto_purge: true\n  commit_interval: 15\n  include:\n    domains:\n      - binary_sensor\n      - input_boolean\n      - input_datetime\n      - input_number\n      - input_select\n      - sensor\n      - switch\n      - person\n      - device_tracker\n      - light\n  exclude:\n    domains:\n      - camera\n      - zone\n      - automation\n      - sun\n      - weather\n      - cover\n      - group\n      - script\n      - pool_pump<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Dans votre fichier secrets.yaml, d\u00e9finissez db_url<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Base de donn\u00e9es mariadb\ndb_mysql: mysql:\/\/votreusername:votremotdepasse@core-mariadb\/homeassistant?charset=utf8mb4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Avec le<strong> votreusername<\/strong> et <strong>votremotdepasse<\/strong> tel que d\u00e9finis dans la configuration de mariadb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimisation de la BD<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les trois options suivantes sont de mon point de vue indispensables, elles permettent de limiter la taille de la BD. En effet si vous ne prenez pas de disposition, celle ci va s\u2019accro\u00eetre ind\u00e9finiment et alt\u00e9rer les performances du syst\u00e8me.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>auto_purge: Purge automatiquement la base tous les matins \u00e0 04h12 ( heure locale ).<\/li>\n\n\n\n<li>purge_keep_days: Indication du nombre de jours d\u2019historique \u00e0 conserver dans la BD apr\u00e8s la purge ( par d\u00e9faut 10 ).<\/li>\n\n\n\n<li>EXCLUDE et INCLUDE permettent de s\u00e9lectionner les domaines \u00e0 exclure ou inclure dans la bd.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La liste des domaines \u00e9tant propres \u00e0 chaque installation, vous pouvez en copiant\/collant les lignes de code ci-dessous dans \u00ab\u00a0outils de d\u00e9veloppement\/mod\u00e8les\u00a0\u00bb lister les domaines de votre syst\u00e8me et faire votre choix.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{%- set unique_domains = states | map(attribute='domain') |list | unique | list -%}\n{%- for domain in unique_domains -%}\n- {{domain + \"\\n\"}}\n{%- endfor -%}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"527\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-53-36-1.png\" alt=\"\" class=\"wp-image-222\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-53-36-1.png 900w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-53-36-1-300x176.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/03\/Capture-decran_2021-03-21_16-53-36-1-768x450.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption class=\"wp-element-caption\">En exemple la liste de mes domaines<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">D&rsquo;autres options sont disponibles, se reporter \u00e0 la <a href=\"https:\/\/www.home-assistant.io\/integrations\/recorder\">documentation HA<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois ces modifications apport\u00e9es, v\u00e9rifier votre configuration et red\u00e9marrer HA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une notification vous informera d&rsquo;un probl\u00e8me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Connecter vous \u00e0 PHMmyAdmin, visualiser votre BD \u00ab\u00a0home_assistant\u00a0\u00bb, HA a automatiquement ajouter les tables et commencent \u00e0 ajouter des enregistrements<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"315\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/12\/image-5-1024x315.png\" alt=\"\" class=\"wp-image-1145\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/12\/image-5-1024x315.png 1024w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/12\/image-5-300x92.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/12\/image-5-768x237.png 768w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2021\/12\/image-5.png 1224w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Cette modification qui est de mon point de vue, indispensable, vous apportera une souplesse d&rsquo;utilisation dans la gestion de votre bd. Vous pouvez aussi vous int\u00e9resser \u00e0 <a href=\"https:\/\/www.phpmyadmin.net\/\">phpMyAdmin<\/a> et ses nombreuses possibilit\u00e9s dans la manipulation des bases de donn\u00e9es.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro Home Assistant utilise&nbsp;SQLAlchemy&nbsp;, qui est un Object Relational Mapper (ORM).&nbsp;Cela signifie que vous pouvez utiliser&nbsp;n&rsquo;importe quel&nbsp;backend SQL pour l&rsquo;enregistreur pris en charge par SQLAlchemy, comme&nbsp;MySQL&nbsp;,&nbsp;MariaDB&nbsp;,&nbsp;PostgreSQL&nbsp;ou&nbsp;MS SQL Server&nbsp;. Le moteur &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-108","post","type-post","status-publish","format-link","hentry","category-homeassistant","post_format-post-format-link"],"_links":{"self":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":2,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"predecessor-version":[{"id":3165,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/108\/revisions\/3165"}],"wp:attachment":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}