a:6:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:4:"
  
";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:113:"
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:12:"My Canaletto";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:20:"http://canaletto.fr/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"docs";a:1:{i:0;a:5:{s:4:"data";s:41:"http://www.rssboard.org/rss-specification";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:22:"BlogEngine.NET 3.3.8.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"language";a:1:{i:0;a:5:{s:4:"data";s:5:"en-US";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:10:{i:0;a:6:{s:4:"data";s:145:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:22:"Mini Workstation MS-01";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7992:"<p style="text-align: justify;">Il y a deux ans j'avais &eacute;chang&eacute; ma Workstation HP Z230 par un Nuc 9. J'ai d'ailleurs un autre Nuc 9 qui me sert de serveur VMWare ESXi. Ma Workstation HP faisait le job, mais en plafonnant &agrave; 32 GO de RAM j'&eacute;tait un peu juste. Si j'y ai gagn&eacute; en RAM, j'y ait perdu en silence car le Nuc peut s'av&eacute;rer bruyant, et avec du recul j'aurais du simplement migrer vers une Z240 qui supporte 64 GO de RAM. J'y reviendrait peut &ecirc;tre, 64 GO me vont bien et le Xeon E3-1225v5 me suffisent.</p>
<p style="text-align: center;"><img style="text-align: center;" src="http://canaletto.fr/image.axd?picture=/images/ms-01_0.png" width="600" /></p>
<p style="text-align: justify;">Nouvelle exp&eacute;rience en 2024, j'ai craqu&eacute; pour le <a href="https://amzn.to/3xxcAke" target="_blank" rel="noopener">MS-01 de chez MiniForum</a> auquel j'ai ajout&eacute; <a href="https://amzn.to/4eEBxuE" target="_blank" rel="noopener">deux m&eacute;moires de 48 GO</a>. Cette machine est int&eacute;ressante, il y a de la puissance avec un Intel Core i9-13900H, 96 GO de RAM, de nombreux slots pour des SSD NVME (U2 et M2), des cartes r&eacute;seaux multiples en Ethernet 2.5 Gbps et SFP+ 10 GBps. J'ai voulu essayer d'en faire mon PC de bureau en me disant que je pourrais toujours la recycler en serveur (ESXi et Proxmox support&eacute;s).</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ms-01-2.png" width="600" /></p>
<p style="text-align: justify;">Cette machine est un monstre de puissance et de fonctionnalit&eacute;s, le revers de la m&eacute;daille c'est le bruit ! En l'&eacute;tat dans le boitier d'origine les ventilateurs sont bien trop petits pour absorber la chaleur dissip&eacute;e tout en restant &agrave; un niveau sonore acceptable. Pour un serveur dans un garage &ccedil;a peut le faire, pour un desktop sur mon bureau c'est no way !</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://canaletto.fr/image.axd?picture=/images/ms-01_1.jpeg" width="800" /></p>
<p style="text-align: justify;">Sous Windows 10, qui g&egrave;re &ccedil;a tr&egrave;s mal, on est sans confront&eacute; face &agrave; une mont&eacute;e / descente de la ventilation ce qui est absolument insupportable. Je pense que les hyperviseurs ESXi et Proxmox g&egrave;rent bien mieux la chose, mais pour mon Windows bien charg&eacute; la temp&eacute;rature oscille de 60 &agrave; 85&deg;, et de fait la ventilation devient rapidement importante, malgr&eacute; le fait que j'ai <a href="https://amzn.to/3xx6Zuc" target="_blank" rel="noopener">remplac&eacute; la p&acirc;te thermique d'origine</a>. Bref, insupportable.</p>
<h3 style="text-align: justify;">La solution</h3>
<p style="text-align: justify;">A deux doigts de cliquer sur le bouton retour chez Amazon, j'ai pourtant trouv&eacute; une solution : D&eacute;sactiver le mode turbo. Cela implique la perte importante de puissance (au moins 40%), mais le silence est enfin de retour avec les valeurs de ventilation d'origine (bios). Et en ajustant les ventilateurs &agrave; l'aide de <a href="https://getfancontrol.com/" target="_blank" rel="noopener">Fan Control</a> il est devenu parfaitement silencieux avec une temp&eacute;rature constante autour des 55&deg; et les pics de ventilation ne sont plus pr&eacute;sents.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ms-01_3.png" width="400" /></p>
<p style="text-align: justify;">La puissance perdue est acceptable car il reste dans ce mode plus puissant que mon ancien Nuc 9.</p>
<h3 style="text-align: justify;">Migration</h3>
<p style="text-align: justify;">Au d&eacute;part je pensais juste d&eacute;placer mon SSD du Nuc vers le MS-01. Au final j'ai voulu tester ma configuration et j'ai restaur&eacute; la sauvegarde image (Veeam Agent) du Nuc 9 vers le MS-01 en laissant donc intact le Nuc 9 afin de pouvoir y revenir le cas &eacute;ch&eacute;ant. Windows ajuste les param&egrave;tres et il suffit d'installer quelques nouveaux drivers et le tour est jou&eacute;. Je suis conscient que ce n'est pas la solution id&eacute;ale qui consisterait de partir d'une installation propre, mais je n'ai aucune envie de passer des semaines &agrave; perdre du temps &agrave; r&eacute;installer mes outils.</p>
<p style="text-align: justify;">A ce PC je connecte 3 &eacute;crans 4K, l'un en HDMI et les deux autres avec des adaptateurs sur les sorties USB-C qui supportent le mode Display Port. Ca manque un peu de ports USB pour les accessoires, mais deux petits hubs auto aliment&eacute;s font l'affaire.</p>
<h3 style="text-align: justify;">Conclusion</h3>
<p style="text-align: justify;">Je ne sais pas si je conserverais ce PC sur mon bureau, il est possible qu'il finisse sa course dans mon garage en tant que serveur avec un hyperviseur, et je pourrais alors profiter de toute sa puissance. Mais pour l'instant il fait le job.</p>
<h3 style="text-align: justify;">Sources</h3>
<ul style="list-style-type: circle;">
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://store.minisforum.com/products/minisforum-ms-01" target="_blank" rel="noopener">https://store.minisforum.com/products/minisforum-ms-01</a></span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://www.minimachines.net/actu/minisforum-ms-01-123900" target="_blank" rel="noopener">https://www.minimachines.net/actu/minisforum-ms-01-123900</a></span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://williamlam.com/2024/02/esxi-on-minisforum-ms-01.html" target="_blank" rel="noopener">https://williamlam.com/2024/02/esxi-on-minisforum-ms-01.html</a>&nbsp;</span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://www.youtube.com/watch?v=J9DjGTc5gNY" target="_blank" rel="noopener">https://www.youtube.com/watch?v=J9DjGTc5gNY</a></span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://forums.servethehome.com/index.php?threads/minisforum-ms-01-pcie-card-and-ram-compatibility-thread.42785/" target="_blank" rel="noopener">https://forums.servethehome.com/index.php?threads/minisforum-ms-01-pcie-card-and-ram-compatibility-thread.42785/</a></span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://www.servethehome.com/minisforum-ms-01-review-the-10gbe-with-pcie-slot-mini-pc-intel/5/" target="_blank" rel="noopener">https://www.servethehome.com/minisforum-ms-01-review-the-10gbe-with-pcie-slot-mini-pc-intel/5/</a></span></li>
<li style="text-align: justify;"><span style="font-size: 10pt;"><a href="https://www.notebookcheck.biz/Test-du-Minisforum-MS-01-Core-i9-13900H-mais-pas-de-carte-graphique-dediee.837521.0.html" target="_blank" rel="noopener">https://www.notebookcheck.biz/Test-du-Minisforum-MS-01-Core-i9-13900H-mais-pas-de-carte-graphique-dediee.837521.0.html</a></span></li>
</ul>
<h3 style="text-align: justify;">TVA</h3>
<p style="text-align: justify;">Les vendeurs chinois sur Amazon qui exp&eacute;dient depuis l'Europe ne sont pas tr&egrave;s clairs avec la TVA. Normalement, vu que j'ai un num&eacute;ro de TVA ils doivent faire une facture hors taxes et c'est mon comptable qui la paie par le jeu d'&eacute;quilibre recettes d&eacute;penses. Sauf que j'ai re&ccedil;u une facture aux prix TTC pr&eacute;sent&eacute;e comme &eacute;tant HT. Apr&egrave;s plusieurs &eacute;changes ils ont simplement corrig&eacute; le PDF (ce que j'aurais pu faire) et je ne pense pas qu'ils s'acquittent r&eacute;ellement des taxes, la facture n'&eacute;tant par ailleurs pas conforme &agrave; la l&eacute;gislation fran&ccedil;aise ou / et europ&eacute;enne qui impose une adresse dans la CE et le num&eacute;ro de TVA du client. Apr&egrave;s un dialogue de sourds j'ai fini par laisser tomber, j'esp&egrave;re qu'ils assurent mieux au niveau du SAV.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:30:"http://canaletto.fr/post/ms-01";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:38:"http://canaletto.fr/post/ms-01#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=f5fec7cd-1f09-45c4-b8a3-74604f2629ad";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"mer., 26 juin 2024 17:06:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:2:"IT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:6:{i:0;a:5:{s:4:"data";s:5:"MS-01";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:5:"Noise";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:11:"Workstation";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:4:"ESXi";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:7:"Proxmox";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:10:"MinisForum";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=f5fec7cd-1f09-45c4-b8a3-74604f2629ad";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"3";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=f5fec7cd-1f09-45c4-b8a3-74604f2629ad";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:38:"http://canaletto.fr/post/ms-01#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=f5fec7cd-1f09-45c4-b8a3-74604f2629ad";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:145:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:33:"Home Assistant &amp; Aqara Hub M3";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:4444:"<blockquote>
<p style="text-align: justify;"><span style="background-color: #fbeeb8;">Produit en cours de test et article en cours d'&eacute;criture.</span></p>
</blockquote>
<p style="text-align: justify;">Dans la s&eacute;rie des clic compulsifs d'un soir, voici le dernier <a href="https://amzn.to/3wIZPlY" target="_blank" rel="noopener">Hub d'Aqara, le M3</a>. Je parle de clic car je ne re&ccedil;oit pas ces produits d'un quelconque service de presse qui me presserait d'&ecirc;tre gentil, mais je les ach&egrave;tes, quitte parfois &agrave; les retourner &agrave; ce cher Amazon. Et en plus, contrairement &agrave; pas mal de <em>sites "pute &agrave; clics"</em>, je les teste vraiment.</p>
<p style="text-align: justify;">Ca vaut 130 &euro; et il y a un code promo de 20% qui traine.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/aqara_hub3_1.png" /></p>
<p style="text-align: justify;">Ce produit offre <a href="https://www.aqara.com/en/product/hub-m3/" target="_blank" rel="noopener">de grandes promesses</a> sur papier glac&eacute; et il est m&ecirc;me annonc&eacute; officiellement compatible avec Home Assistant. Mais la r&eacute;alit&eacute; est un peu diff&eacute;rente...</p>
<ul>
<li style="text-align: justify;"><strong>Connectivit&eacute; POE :</strong> la promesse est tenue et c'est bien pratique, &ccedil;a permet de le poser n'importe ou sans un horrible chargeur et si le switch est secouru &ccedil;a sera sans coupure &eacute;lectrique.</li>
<li style="text-align: justify;"><strong>Du WI-FI bi bande :</strong> C'est la moindre des choses. WPA3 inside.</li>
<li style="text-align: justify;"><strong>Alimentation USB C :</strong> plus pratique, et peu &eacute;nergivore (1.6 W mesur&eacute;s).</li>
<li style="text-align: justify;"><strong>Zigbee :</strong> Ne vois y trompez pas, si la plaquette annonce bien le support de 127 devices, il s'agit de devices Aqara. N'esp&eacute;rez donc pas remplacer votre passerelle Zigbee habituelle. Il n'en reste pas moins que c'est int&eacute;ressant, certains devices Aqara n'&eacute;tant pas tout &agrave; fait &agrave; la norme Zigbee 3, ils seront mieux g&eacute;r&eacute;s ici (actuellement je les g&egrave;re avec <a href="https://amzn.to/3yencoa" target="_blank" rel="noopener">cette passerelle</a> peu couteuse qui fonctionne tr&egrave;s bien avec <a href="https://github.com/AlexxIT/XiaomiGateway3" target="_blank" rel="noopener">cette int&eacute;gration</a>).</li>
<li style="text-align: justify;"><strong>Bluetooth :</strong> aucun device ne remonte (sondes Xiaomi par exemple).</li>
<li style="text-align: justify;"><strong>IR :</strong> Ca fonctionne mais la fonctionnalit&eacute; reste sur le Hub, l'int&eacute;r&ecirc;t aurait &eacute;t&eacute; que &ccedil;a remonte sur Home Assistant via Matter ou HK.</li>
<li style="text-align: justify;"><strong>HomeKit :</strong> Les devices reconnus remontent bien dans Home Assistant et probablement sur les produits Apple.</li>
<li style="text-align: justify;"><strong>Matter &amp; Thread :</strong> Si j'arrive bien &agrave; faire remonter dans Home Assistant les devices Zigbee, je n'ai pas r&eacute;ussit &agrave; associer de device Matter (test&eacute; avec une Nuki 4 et un capteur d'ouverture Aqara P2, ce qui est un comble).</li>
</ul>
<h3>Conclusion (temporaire)</h3>
<p style="text-align: justify;">Une fois de plus dans une industrie qui va tr&egrave;s vite on se retrouve avec un hardware de bonne facture avec du software &agrave; la traine.</p>
<p style="text-align: justify;">Je ne pense pas que cette passerelle acceptera des devices Zigbee d'autres marques, sauf peut &ecirc;tre des accords avec des leaders genre Philips Hue, mais il ne faut pas trop r&ecirc;ver. Par contre on peu penser qu'ils termineront la partie Matter et esp&eacute;rer que les remont&eacute;es vers Home Assistant ne se limitent pas au strict minimum.</p>
<p style="text-align: justify;">Pour l'instant il est donc urgent d'attendre...</p>
<h3 style="text-align: justify;">EDIT 16/06/2024</h3>
<p style="text-align: justify;">Comme souvent les pas mal de sites ont encens&eacute; le communiqu&eacute; de presse de ce produit sans vraiment le tester. Depuis mon premier test il n'y a pas d'&eacute;volution cot&eacute; firmware. Hier soir j'ai ajout&eacute; le TVOC Aqara pour voir, h&eacute;las &ccedil;a ne remonte pas en Matter vers HA, heureusement qu'il y a HomeKit</p>
<p>&nbsp;</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:56:"http://canaletto.fr/post/home-assistant-and-aqara-hub-m3";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:64:"http://canaletto.fr/post/home-assistant-and-aqara-hub-m3#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=0fcbac1f-a87c-418f-b507-aab8b71207b4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:32:"lun., 13 mai 2024 17:50:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:9:"Domotique";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"IP & Co";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:5:{i:0;a:5:{s:4:"data";s:6:"zigbee";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:6:"Matter";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:6:"Thread";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:5:"Aqara";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:6:"Hub M3";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=0fcbac1f-a87c-418f-b507-aab8b71207b4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=0fcbac1f-a87c-418f-b507-aab8b71207b4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:64:"http://canaletto.fr/post/home-assistant-and-aqara-hub-m3#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=0fcbac1f-a87c-418f-b507-aab8b71207b4";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:131:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:25:"Home Assistant &amp; Nuki";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:8460:"<p style="text-align: justify;">Ca me travaillait depuis un moment, automatiser la porte d'entr&eacute;e ! L'objectif &eacute;tant que la porte se verrouille quand je part (process d'alarme, fermeture des volets, etc.) et se d&eacute;verrouille quand j'arrive avec le process inverse. Accessoirement permettre &agrave; des tiers d'ouvrir (clavier et tags), ou moi m&ecirc;me d'ouvrir et fermer &agrave; distance.</p>
<p style="text-align: justify;">J'ai regard&eacute; un peu le march&eacute; et j'ai trouv&eacute; :</p>
<ul>
<li style="text-align: justify;"><strong><a href="https://www.yalehome.com/ma/fr/products/gamme-yale-access/serrure-connectee-linus-yale" target="_blank" rel="noopener">Linus Yale</a> :</strong> un peu trop am&eacute;ricaine, et de fait encombrante ! (lien <a href="https://amzn.to/3JXzxQh" target="_blank" rel="noopener">Amazon</a>)</li>
<li style="text-align: justify;"><a href="https://tedee.com/fr/product-info/tedee-pro/" target="_blank" rel="noopener"><strong>Tedee</strong></a> <strong>:</strong> tentant mais un peu jeune (test <a href="https://haade.fr/fr/blog/test-de-la-serrure-connectee-tedee-go-et-des-accessoires" target="_blank" rel="noopener">ici</a> et lien <a href="https://amzn.to/3Qh3zSf" target="_blank" rel="noopener">Amazon</a>)</li>
<li style="text-align: justify;"><a href="https://danalock.com/" target="_blank" rel="noopener"><strong>Danalock</strong></a><strong> :</strong> on dirait qu'ils ne bougent plus trop...</li>
<li style="text-align: justify;"><strong><a href="https://nuki.io/fr/" target="_blank" rel="noopener">Nuki</a> :</strong> mon choix par d&eacute;faut ! (lien <a href="https://amzn.to/44eSKpT" target="_blank" rel="noopener">Amazon</a>)</li>
<li style="text-align: justify;"><a href="https://eu.switch-bot.com/products/switchbot-lock-pro" target="_blank" rel="noopener"><strong>Switchbot :</strong></a> La nouvelle Pro &agrave; l'air plus int&eacute;ressante de l'ancienne... (lien <a href="https://amzn.to/3JDaAsY" target="_blank" rel="noopener">Amazon</a>)</li>
<li style="text-align: justify;">Et enfin beaucoup de chinoiseries que je pr&eacute;f&egrave;re &eacute;viter pour ce genre d'objets...</li>
</ul>
<p style="text-align: justify;">Apr&egrave;s avoir bien creus&eacute; le sujet et &eacute;cout&eacute; les conseils d'autrui j'ai port&eacute; mon choix sur une Nuki Pro 4.0, en y voyant comme avantage :</p>
<ul style="text-align: justify;">
<li>Du WIFI int&eacute;gr&eacute; afin d'&eacute;viter un bridge suppl&eacute;mentaire</li>
<li>Un bloc de batterie rechargeable</li>
<li>Une meilleure finition</li>
<li>Matter, enfin, un jour peut &ecirc;tre...</li>
</ul>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/nuki_2.png" /></p>
<p style="text-align: justify;">Je fait l'impasse de l'installation qui est effectivement facile, mais qui m'a tout de m&ecirc;me cout&eacute; un <a href="https://www.serrurier-romand.ch/comment-mesurer-changer-cylindre-barillet-serrure-porte/#:~:text=Mesurer%20le%20cylindre%20%2F%20barillet%20de%20serrure&amp;text=Pour%20mesure%20votre%20cylindre%20vous,une%20longueur%20totale%20de%20110mm." target="_blank" rel="noopener">cylindre d&eacute;brayable</a> (lien <a href="https://amzn.to/4b8NR4p" target="_blank" rel="noopener">Amazon</a>). Et on passe &agrave; la configuration.</p>
<p style="text-align: justify;">Je n'ai pas grand chose &agrave; redire sur la mise en &oelig;uvre via l'application, c'est plut&ocirc;t bien fait, tout comme Nuki Web ou l'acc&egrave;s &agrave; distance depuis un smartphone. L&agrave; ou &ccedil;a va se compliquer c'est pour int&eacute;grer &ccedil;a &agrave; Home Assistant, et c'&eacute;tait le but ! Il existe plusieurs solutions et je veux bien comprendre que les d&eacute;butants soient perdus.</p>
<h3 style="text-align: justify;">Int&eacute;gration du Core HA</h3>
<p style="text-align: justify;">On me l'a d&eacute;conseill&eacute; et j'en ai lu du mal, j'ai donc zapp&eacute;.</p>
<h3 style="text-align: justify;">Int&eacute;gration <a href="https://github.com/kvj/hass_nuki_ng" target="_blank" rel="noopener">Nuki NG</a></h3>
<p style="text-align: justify;">Ca semble bien fait, mais c'est un fail. Je pense qu'il vaut mieux disposer du bridge Nuki.</p>
<h3 style="text-align: justify;">Int&eacute;gration <a href="https://github.com/ronengr/hass_nuki_bt" target="_blank" rel="noopener">Nuki BT</a></h3>
<p style="text-align: justify;">Il s'agit d'un fork de Nuki NG qui a la particularit&eacute; de se connecter directement au Nuki en Bluetooth. A priori parfait pour mon usage. Sauf que je n'ai jamais r&eacute;ussit &agrave; appairer le Nuki &agrave; cette int&eacute;gration.</p>
<h3 style="text-align: justify;">MQTT</h3>
<p style="text-align: justify;">Propos&eacute; comme la solution officielle pour connecter Nuki &agrave; Home Assistant, je me suis dit que &ccedil;a serait facile. En effet la configuration est simple et les information de base (Look/Unlook et batterie) remontent bien dans Home Assistant. Il faut laisser le WIFI actif, &ccedil;a consommera un peu plus mais &ccedil;a devrait aller.</p>
<p style="text-align: justify;">Oui, mais ! Il y a un tout petit probl&egrave;me : entre l'envoi d'une commande, l'action et le retour d'&eacute;tat il peut se passer de 1 &agrave; 3 minutes (quand &ccedil;a fonctionne). Et je ne me voit pas passer 3 minutes &agrave; attendre devant la porte... Que se passe t'il ? Direction le forum Nuki, et la c'est le bug ! Probl&egrave;me plus ou moins connu, r&eacute;curent, bref les utilisateurs ne sont pas contents et j'aurais du lire &ccedil;a avant. Bien sur Nuki explique que &ccedil;a vient du Wi-Fi des utilisateurs, sauf que j'ai test&eacute; avec mon Unifi de base et 3 AP d'autres marques, avant de me dire que si l'application Nuki connect&eacute;e sur un smartphone en 4G fonctionnait bien, le probl&egrave;me n'&eacute;tait pas li&eacute; au Wi-Fi mais &agrave; l'impl&eacute;mentation MQTT. Un peu d&eacute;gout&eacute;, je me suis dit qu'ils voulaient vendre leur bridge et que n'y couperait pas !</p>
<h4 style="text-align: justify;">MQTT via ESP <a href="https://github.com/technyon/nuki_hub" target="_blank" rel="noopener">Nuki HUB</a></h4>
<p style="text-align: justify;">Dans mes p&eacute;r&eacute;grinations j'a commenc&eacute; par tester sans succ&egrave;s un <a href="https://github.com/uriyacovy/ESPHome_nuki_lock" target="_blank" rel="noopener">projet bas&eacute; sur espHome</a> avant de tomber sur Nuki Hub, un projet tr&egrave;s complet qui cr&eacute;e un bridge avec un ESP. Nuki Hub communique avec un Nuki Lock, un Opener et un clavier via Bluetooth (BLE) et utilise MQTT pour s'int&eacute;grer &agrave; d'autres syst&egrave;mes. Il expose l'&eacute;tat de verrouillage (et bien plus encore) via MQTT et permet d'ex&eacute;cuter des commandes telles que le verrouillage et le d&eacute;verrouillage via MQTT (n'h&eacute;sitez pas &agrave; bien lire la doc qui est une mine d'informations).</p>
<p style="text-align: justify;">Un petit flash plus loin j'ai r&eacute;ussit &agrave; associer mon Nuki &agrave; ce bridge DIY, il remonte toutes les informations utiles, voire plus, et surtout il permet de verrouiller / d&eacute;verrouiller rapidement la serrure, ce qui est tout de m&ecirc;me la base.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/nuki_1.png" /></p>
<p style="text-align: justify;">Par contre il faut savoir une chose, chez Nuki c'est fromage ou dessert, pas le deux ! En gros pour activer un bridge, qu'il soit Nuki ou DIY, il faut d&eacute;sactiver le Wi-Fi du Nuki. Ce qui concr&egrave;tement veut dire qu'on ne pourra plus le commander &agrave; distance depuis l'application Nuki et que si on veut utiliser localement cette application il faudra se rapprocher du Nuki, la port&eacute;e du Bluetooth de cet objet &eacute;tant tr&egrave;s faible (j'ai du mal dans mon bureau qui est &agrave; 3 m&egrave;tres de la porte d'entr&eacute;e...).</p>
<h3 style="text-align: justify;">Conclusion</h3>
<p style="text-align: justify;">Ou moralit&eacute; ! Je crois que j'ai achet&eacute; une version 4 et Pro pour rien. En effet le Wi-Fi int&eacute;gr&eacute; ne me servira &agrave; rien et une v3 standard aurait parfaitement fait le job pour pas cher (il y a plein sur le Bon Coin !</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/enjoyit.png" width="237" height="237" /></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:48:"http://canaletto.fr/post/home-assistant-and-nuki";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:56:"http://canaletto.fr/post/home-assistant-and-nuki#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=d08b4f42-5a36-43cd-b75b-a5cec512fafd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"jeu., 25 avr. 2024 03:36:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:9:"Domotique";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:4:{i:0;a:5:{s:4:"data";s:4:"Nuki";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:4:"HASS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:14:"Home Assistant";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:4:"MQTT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=d08b4f42-5a36-43cd-b75b-a5cec512fafd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=d08b4f42-5a36-43cd-b75b-a5cec512fafd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:56:"http://canaletto.fr/post/home-assistant-and-nuki#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=d08b4f42-5a36-43cd-b75b-a5cec512fafd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:131:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"Home Assistant &amp; WebRTC";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:7966:"<p style="text-align: justify;">Comme d'aucuns ont pu le remarquer, le flux des cam&eacute;ras sous Home Assistant &agrave; tendance parfois &agrave; laguer et ne pas &ecirc;tre tr&egrave;s r&eacute;actif. On pourrait penser que &ccedil;a vient de la qualit&eacute; des cam&eacute;ras, pourtant j'utilise un syst&egrave;me Unifi Protect tr&egrave;s bien int&eacute;gr&eacute; &agrave; Home Assistant et parfois j'ai l'impression d'avoir les m&ecirc;mes lags que sur une chinoiserie achet&eacute;e pas cher sur Ali ! En fait Home Assistant utilise le protocole RSTP afin de communiquer avec les cam&eacute;ras ou dans mon cas le NVR et en l'&eacute;tat le r&eacute;sultat n'est pas &agrave; la hauteur de ce que j'obtiens avec l'appli Unifi Protect. Sauf que je veux avoir &ccedil;a dans HA car &ccedil;a m'apporte plein d'options int&eacute;ressantes. <span style="background-color: #fbeeb8;">Voir la version simple &agrave; la fin !</span></p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/Go2RTC_0.png" width="1032" height="516" /></p>
<p style="text-align: justify;">Afin de contourner ce probl&egrave;me il y a WebRTC que les d&eacute;veloppeurs connaissent bien. Et l'un d'eux, <a href="https://github.com/AlexxIT" target="_blank" rel="noopener">Alex</a>, qui est &eacute;galement l'auteur d'autres tr&egrave;s bonnes int&eacute;gration, a d&eacute;velopp&eacute; <a href="https://github.com/AlexxIT/go2rtc" target="_blank" rel="noopener">Go2RTC</a> qui va de fa&ccedil;on transparente nous permettre d'utiliser WebRTC pour visualiser nos cam&eacute;ras.</p>
<p style="text-align: justify;">J'avais d&eacute;j&agrave; lu quelques sujets sur WebRTC et HA, mais ce qui m'a donn&eacute; subitement envie de l'int&eacute;grer est la vid&eacute;o de ce jeune homme :</p>
<p style="text-align: center;"><iframe src="https://www.youtube.com/embed/mVX3qoaAHNE?t=334s" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>
<p style="text-align: justify;">Ceux qui me suivent savent que je ne suis pas fan des tutoriaux vid&eacute;o, surement une question de g&eacute;n&eacute;ration (<em>je suis vieux !</em>), mais passer du temps &agrave; faire play / pause m'agace et me fait perdre du temps. Ceci &eacute;tant il explique clairement l'essentiel que je vais reprendre ici en l'adaptant &agrave; l'infrastructure Unifi Protect.</p>
<p style="text-align: justify;">Le probl&egrave;me est document&eacute; et sera probablement corrig&eacute; dans une prochaine version de Go2RTC, en attendant il faut le contourner. L'int&eacute;gration Unifi Protect int&egrave;gre les cam&eacute;ras en se basant sur le flux RSTPS, ce qui va nous donner &ccedil;a :</p>
<blockquote>
<p style="text-align: justify;"><code>"url": "rtsps://192.168.10.1:7441/2sgdfdsgdfgf3DNu5F?enableSrtp"</code></p>
</blockquote>
<p style="text-align: justify;">Sauf que Go2RTC ne supporte pas SRTP, et donc c'est le bug ! La bonne URL est donc celle ci :</p>
<blockquote>
<p style="text-align: justify;"><code>"url": "rtsps://192.168.10.1:7441/2sgdfdsgdfgf3DNu5F"</code></p>
</blockquote>
<p style="text-align: justify;">Je n'ai pas trop cherch&eacute;, mais je n'ai pas trouv&eacute; ou faire la modification et comme Go2RTC recr&eacute;e les liens lors de chaque d&eacute;marrage, j'ai contourn&eacute; le probl&egrave;me en cr&eacute;ant dans HA des cam&eacute;ras g&eacute;n&eacute;riques bas&eacute;es sur la bonne URL (on pense &agrave; d&eacute;cocher la v&eacute;rification du certificat car il est g&eacute;n&eacute;ralement bidon et on n'entre pas d'authentification puisque le lien est open bar).</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/Go2RTC_1.png" /></p>
<p style="text-align: justify;">On r&eacute;p&egrave;te &ccedil;a sur toutes les cam&eacute;ras et on pense &agrave; les renommer proprement.</p>
<p style="text-align: justify;">L'&eacute;tape suivant va consister &agrave; installer l'addon Go2RTC. Pour &ccedil;a on va dans les addons HA et on ajoute l'adresse du d&eacute;p&ocirc;t idoine dans les sources et on installe :</p>
<blockquote>
<p style="text-align: justify;"><code>https://github.com/AlexxIT/hassio-addons</code></p>
</blockquote>
<p style="text-align: justify;">Une fois cet addon install&eacute; et lanc&eacute; on va ajouter l'int&eacute;gration RTSPtoWebRTC &agrave; Home Assistant que l'on fera pointer sur :</p>
<blockquote>
<p style="text-align: justify;"><code>http://localhost:1984</code></p>
</blockquote>
<p style="text-align: justify;">Et c'est presque tout, miracle vos cam&eacute;ras sont maintenant bien plus r&eacute;actives !</p>
<p style="text-align: justify;">A ce stade les barbus vont me dire, oui, mais tous ces ports passent bien en local, mais depuis l'ext&eacute;rieur ? Ouvrir des ports n'&eacute;tant pas conseill&eacute; (j'utilise Nabu Casa ou Cloudflared), on va tuneliser en utilisant le service <a href="https://ngrok.com/" target="_blank" rel="noopener">Ngrok</a> sur lequel on va devoir cr&eacute;er un compte. Une fois le compte cr&eacute;&eacute; et valid&eacute; , on r&eacute;cup&egrave;re le token d'authentification que l'on vient coller dans la console de Go2RTC :</p>
<pre style="text-align: justify;"><code>ngrok:</code><br /><code>&nbsp; command: ngrok tcp 8555 --authtoken &lt;token&gt;</code><br /><code>&nbsp; &nbsp;</code><br /><code>webrtc:</code><br /><code>&nbsp; listen: ":8555" # external TCP/UDP port</code><br /><code>&nbsp; candidates:</code><br /><code>&nbsp; &nbsp; - stun:8555</code></pre>
<p style="text-align: justify;">Ensuite on va configurer l'option dans l'int&eacute;gration RTSPtoWebRTC :</p>
<blockquote>
<p style="text-align: justify;"><code>stun.l.google.com:19302</code></p>
</blockquote>
<p style="text-align: justify;">Voil&agrave;, c'est fini. La suite de la vid&eacute;o nous parle de Frigate et Fully Kiosk. Deux sujets que j'aborderais une autre fois.</p>
<h3 style="text-align: justify;">Version simple</h3>
<p style="text-align: justify;">A la base je voulais juste un affichage plus fluide de mes cam&eacute;ras et j'ai install&eacute; toute cette usine qui a certainement un int&eacute;r&ecirc;t dans un contexte Frigate. Mais si l'on souhaite uniquement un peu de fluidit&eacute; dans l'affichage et profiter de WebRTC simplement, et bien il y a plus simple.</p>
<p style="text-align: justify;">Dans ce cas le seul composant &agrave; installer est l'int&eacute;gration <a href="https://github.com/AlexxIT/WebRTC" target="_blank" rel="noopener">WebRTC Camera</a> depuis HACS et de le configurer en l'ajoutant aux int&eacute;grations.</p>
<p style="text-align: justify;">Ensuite on peu ajouter une carte Lovelace tr&egrave;s simplement :</p>
<pre>type: 'custom:webrtc-camera'<br />url: 'rtspx://192.168.6.1:7441/3jurvIekaWvpee222'</pre>
<p>Ou aller plus loin avec quelques option :</p>
<pre>type: custom:webrtc-camera<br />streams:<br />  - url: ''<br />  - url: 'rtspx://192.168.6.1:7441/3jurvIekaWee222'<br />shortcuts:<br />&nbsp; - name: Privacy<br />&nbsp; &nbsp; icon: mdi:cctv-off<br />&nbsp; &nbsp; service: switch.toggle<br />&nbsp; &nbsp; service_data:<br />&nbsp; &nbsp; &nbsp; entity_id: switch.terrasse_nord_privacy_mode<br />ui: true<br />poster: https://demo.home-assistant.io/stub_config/bedroom.png<br />muted: true</pre>
<p style="text-align: justify;">La doc est tr&egrave;s compl&egrave;te et &ccedil;a remplacera efficacement la carte Picture Glance pour afficher les cam&eacute;ras. Ca fonctionne mais &ccedil;a reste un peu pauvre, alors m&ecirc;me si vous n'utilisez pas Frigate rien n'emp&ecirc;che d'utiliser <a href="https://github.com/dermotduffy/frigate-hass-card" target="_blank" rel="noopener">leur carte</a> qui est bien plus riche et permettra par exemple de caster le rendu vers un t&eacute;l&eacute;viseur...</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/enjoy2.jpg" width="275" height="184" /></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:50:"http://canaletto.fr/post/home-assistant-and-webrtc";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:58:"http://canaletto.fr/post/home-assistant-and-webrtc#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=7a4a311f-6e49-42c4-9167-ec4ccd5527a5";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"sam., 13 avr. 2024 19:58:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:9:"Domotique";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"IP & Co";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:3:{i:0;a:5:{s:4:"data";s:6:"WebRTC";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:6:"Go2RTC";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:13:"Unifi Protect";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=7a4a311f-6e49-42c4-9167-ec4ccd5527a5";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=7a4a311f-6e49-42c4-9167-ec4ccd5527a5";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:58:"http://canaletto.fr/post/home-assistant-and-webrtc#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=7a4a311f-6e49-42c4-9167-ec4ccd5527a5";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:138:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"IPBan pour Windows Serveur.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:9012:"<p style="text-align: justify;">M&ecirc;me s'il est pr&eacute;f&eacute;rable (et je vous le recommande) de ne pas exposer directement des serveurs sur internet, l'id&eacute;al est faire &ccedil;a avec un reverse proxy, on n'a parfois pas le choix. Le confinement l'a d&eacute;montr&eacute; ou en urgence pas mal d'entreprises n'ont eu d'autres choix que d'exposer &agrave; la va-vite des serveurs RDP sur Internet &agrave; des fin de t&eacute;l&eacute;travail. La moindre des chose serait d'utiliser un VPN ou une passerelle RDP comme <a href="http://canaletto.fr/post/rdp-and-guacamole" target="_blank" rel="noopener">Guacamole</a>, mais si ce n'est pas possible il faut s&eacute;curiser au maximum, RDP, pour ne citer que lui &eacute;tant tr&egrave;s vuln&eacute;rable.</p>
<p style="text-align: justify;"><img src="http://canaletto.fr/image.axd?picture=/images/ipban_2.png" /></p>
<p style="text-align: justify;">Je ne vais pas parler de ce qui est &agrave; faire sous Linux mais pour les serveurs Windows.</p>
<p style="text-align: justify;">On a deux &eacute;tapes :</p>
<ul style="text-align: justify;">
<li>Le firewall int&eacute;gr&eacute;</li>
<li>La protection des applications</li>
</ul>
<h3 style="text-align: justify;">Le firewall</h3>
<p style="text-align: justify;">Contrairement &agrave; une l&eacute;gende urbaine, le firewall int&eacute;gr&eacute; &agrave; Windows est solide, &agrave; condition toutefois de le configurer correctement et de n'exposer que ce qui est r&eacute;ellement utile.</p>
<p style="text-align: justify;">Il y a 3 cat&eacute;gorie auxquelles on affecte les r&egrave;gles : Public, Private et Domain (&eacute;quivalent Private si on est connect&eacute; &agrave; un domaine Active Directory).</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ipban_3.png" /></p>
<p style="text-align: justify;">Si on expose un Windows sur Internet la premi&egrave;re chose &agrave; consid&eacute;rer est que l'interface expos&eacute;e doit se trouver en mode <strong>Public</strong> :</p>
<pre class="language-yaml"><code>PS C:\Users\Administrator&gt; Get-NetConnectionProfile

Name             : Network 5
InterfaceAlias   : WAN
InterfaceIndex   : 3
NetworkCategory  : Private
IPv4Connectivity : Internet
IPv6Connectivity : Internet</code></pre>
<p style="text-align: justify;">Si ce n'est pas le cas, comme dans cet exemple on ajuste avec :</p>
<pre class="language-yaml"><code>PS C:\&gt; Set-NetConnectionProfile -InterfaceIndex 3 -NetworkCategory Public</code></pre>
<p style="text-align: justify;">Cette consid&eacute;ration &eacute;tant prise en compte, de base tr&egrave;s peu de choses sont expos&eacute;es en Public et on pourra ouvrir un port pour laisser passer un service. Et id&eacute;alement s'il s'agit de RDP on va restreindre cette exposition aux IP des clients... Id&eacute;alement, car dans la pratique peu de client disposent d'IP fixes et certains services doivent &ecirc;tres accessibles de fa&ccedil;on universelle.</p>
<p style="text-align: justify;">L'interface du firewall de Windows datant du si&egrave;cle dernier on pourra avantageusement se servir de eu se servir de <a href="https://www.binisoft.org/wfc" target="_blank" rel="noopener">WFC</a> (<em>r&eacute;cemment acquis par Malwarebytes</em>) afin de le g&eacute;rer plus facilement.</p>
<p style="text-align: justify;">A ce stade on teste avec avec un scan externe afin de s'assurer que seul le ports utiles sont ouverts (<a href="https://www.advanced-port-scanner.com/" target="_blank" rel="noopener">Advanced port Scanner</a> ou <a href="https://nmap.org/" target="_blank" rel="noopener">NMap</a> par exemple)</p>
<p style="text-align: justify;">Mails il va donc falloir renforcer cette s&eacute;curit&eacute; par d'autres moyens !</p>
<p style="text-align: justify;">Sous Windows il existe une seconde couche de d&eacute;fense moins connue : <a href="https://en.wikipedia.org/wiki/Windows_Filtering_Platform" target="_blank" rel="noopener">WFP</a> (Windows Filtering Platform). Si WFP peut &ecirc;tre tr&egrave;s efficace, sa configuration est d&eacute;licate et se passe en PowerShell, ce qui la rend peu accessible. Et c'est ici que va rentrer en action IPBan qui un peu &agrave; la mani&egrave;re de <a href="https://fr.wikipedia.org/wiki/Fail2ban" target="_blank" rel="noopener">Fail2ban</a> disponible sous Linux va nous permettre d'ajouter une ligne de d&eacute;fense suppl&eacute;mentaire.</p>
<h3 style="text-align: justify;">IPBan</h3>
<p style="text-align: justify;">D'abord une petite pr&eacute;cision, il existe deux versions d'IPBan :</p>
<ul>
<li style="text-align: justify;">Une <a href="https://github.com/DigitalRuby/IPBan" target="_blank" rel="noopener">version gratuite</a> sans interface qui travaille uniquement avec un fichier de configuration XML qui donne mal au crane et surtout qui s'appuie uniquement sur le firewall de Windows.</li>
<li style="text-align: justify;">Une <a href="https://ipban.com/" target="_blank" rel="noopener">version pro et payante</a> qui dispose d'une interface et s'appuie sur WFP pour plus de r&eacute;activit&eacute;. Cette interface peut &ecirc;tre locale ou centralis&eacute;e afin de g&eacute;rer plusieurs serveurs.</li>
</ul>
<p style="text-align: justify;">C'est la version Pro &agrave; laquelle on va s'int&eacute;resser ici. Son cout annuel n'est pas prohibitif ($ 29.00 pour un serveur et $ 99.00 pour tous vos serveurs) si on le compare &agrave; d'autres produits qui en font moins pour bien plus cher. Cerise sur la g&acirc;teau, le support par mail ou sur <a href="https://discord.com/invite/GRmbCcKFNR" target="_blank" rel="noopener">Discord</a> est vraiment tr&egrave;s r&eacute;actif !</p>
<p style="text-align: justify;">La fonction de base d'IPBan est d'interdire l'acc&egrave;s &agrave; une IP apr&egrave;s x tentatives infructueuses de connexion.&nbsp;</p>
<p style="text-align: justify;">De base il va surveiller les applications suivantes gr&acirc;ce aux Events de Windows, mais &eacute;gaiement aux logs des applications :</p>
<ul>
<li>OpenSSH</li>
<li>Microsoft Exchange</li>
<li>SmarterMail</li>
<li>MailEnable</li>
<li>Apache Tomcat</li>
<li>RDP</li>
<li>Microsoft SQL</li>
<li>MySQL</li>
<li>Postgre SQL</li>
<li>PhpMyAdmin</li>
<li>VNC</li>
<li>RRAS</li>
<li>SVN</li>
</ul>
<p style="text-align: justify;">Mais ce n'est pas limitatif et l'administrateur peut &eacute;galement ajouter ses propres surveillances en lui demandant d'aller scanner events et logs. Le GitHub de l'&eacute;diteur <a href="https://github.com/DigitalRuby/IPBan/tree/master/Recipes" target="_blank" rel="noopener">h&eacute;berge</a> d'ailleurs un certain nombre d'int&eacute;grations personnalis&eacute;e qui vous faciliteront la tache, en voici un exemple pour surveiller le serveur FTP de Filezilla :</p>
<pre class="language-yaml"><code>&lt;LogFile&gt;
	&lt;Source&gt;Filezilla&lt;/Source&gt;
	&lt;PathAndMask&gt;C:\Program Files (x86)\FileZilla Server\Logs&lt;/PathAndMask&gt;
	&lt;FailedLoginRegex&gt;
		&lt;![CDATA[
			(?&lt;timestamp&gt;[^\s]+)\s.*\s\[FTP\sSession\s[0-9]+\s(?&lt;ipaddress&gt;[^\]]+)\]\sUSER\s(?&lt;username&gt;[^\n]+)\n.*\sspecify\sthe\spassword[^\n]*\n.*\sPASS\s[^\n]*\n.*\s(?&lt;log&gt;Login\s(?:or\spassword\s)?incorrect)[^\n]*
		]]&gt;
	&lt;/FailedLoginRegex&gt;
	&lt;FailedLoginRegexTimestampFormat&gt;&lt;/FailedLoginRegexTimestampFormat&gt;
	&lt;SuccessfulLoginRegex&gt;
		&lt;![CDATA[
			(?&lt;timestamp&gt;[^\s]+)\s.*\s\[FTP\sSession\s[0-9]+\s(?&lt;ipaddress&gt;[^\]]+)\]\sPASS\s[^\n]*\n.*\[FTP\sSession\s[0-9]+\s[^\s]+\s(?&lt;username&gt;[^\]]+)\].*Login\ssuccessful[^\n]*
		]]&gt;
	&lt;/SuccessfulLoginRegex&gt;
	&lt;SuccessfulLoginRegexTimestampFormat&gt;&lt;/SuccessfulLoginRegexTimestampFormat&gt;
	&lt;PlatformRegex&gt;Windows&lt;/PlatformRegex&gt;
	&lt;PingInterval&gt;10000&lt;/PingInterval&gt;
	&lt;MaxFileSize&gt;0&lt;/MaxFileSize&gt;
	&lt;FailedLoginThreshold&gt;0&lt;/FailedLoginThreshold&gt;
&lt;/LogFile&gt;</code></pre>
<p style="text-align: justify;">Au del&agrave; de ce blocage d'IP via WFP, il est &eacute;galement possible de :</p>
<ul>
<li style="text-align: justify;">Visualiser facilement les connections valides</li>
<li style="text-align: justify;">G&eacute;rer des listes blanches et noires</li>
<li style="text-align: justify;">Vous notifier</li>
<li style="text-align: justify;">Bloquer ou autoriser les connections en provenance de certains pays (GeoIP)</li>
<li style="text-align: justify;">Bloquer certains ASN</li>
<li style="text-align: justify;">Bloquer des listes d'IP de r&eacute;putation douteuse en s'abonant &agrave; des listes partag&eacute;es.</li>
<li style="text-align: justify;">Se synchroniser avec le reverse proxy de Cloudflare</li>
<li style="text-align: justify;">...</li>
</ul>
<p style="text-align: justify;">En conclusion c'est l'outil indispensable pour qui doit exposer un serveur directement sur Internet !</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ipban_4.png" /></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:51:"http://canaletto.fr/post/ipban-pour-windows-serveur";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:59:"http://canaletto.fr/post/ipban-pour-windows-serveur#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=f9cc3409-8a29-40d0-96fc-bf6907ae08cb";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:35:"mar., 20 févr. 2024 15:35:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:7:"IP & Co";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:2:"IT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:4:{i:0;a:5:{s:4:"data";s:3:"IP ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:5:"IPBan";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:8:"fail2ban";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:8:"firewall";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=f9cc3409-8a29-40d0-96fc-bf6907ae08cb";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=f9cc3409-8a29-40d0-96fc-bf6907ae08cb";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:59:"http://canaletto.fr/post/ipban-pour-windows-serveur#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=f9cc3409-8a29-40d0-96fc-bf6907ae08cb";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:166:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:18:"IPv6 @ Scaleway...";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:9801:"<p style="text-align: justify;">Depuis plus de 20 ans tout le monde parle d'IPv6, mais dans la pratique ce n'est pas encore l'euphorie au niveau de l'adoption. En France, une fois n'es pas coutume, on est un peu en avance, Free en t&ecirc;te qui a pass&eacute; tout son r&eacute;seau fibre en IPv6. En fait du <em>4rd</em> pleinement document&eacute; dans le <a href="https://tools.ietf.org/html/rfc7600" target="_blank" rel="noopener">RFC 7600</a>. Dans la pratique c'est du tunneling (donc 2 clients qui discutent en IPv4 le font par un tunnel direct au dessus de leur IPv6, ca ne passe par une passerelle).&nbsp; Par contre &agrave; ce que j'ai pu lire la sortie IPv4 vers le reste du monde ce fait via des 'Border Relay 4rd' ou du NAT64+. Et l&agrave; si ces &eacute;quipement ne sont pas suffisamment dimensionn&eacute;s &ccedil;a peut cr&eacute;er un goulot d'&eacute;tranglement.</p>
<p style="text-align: justify;">Il y a quelques temps je me suis aper&ccedil;u que l'un de nos serveurs h&eacute;berg&eacute; chez Scaleway pr&eacute;sentait en soir&eacute;e une importance latence, voire des lags pour les clients Free, ce qui est un comble car Free et Scaleway font partie de la m&ecirc;me boutique !</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ipv6-0.png" width="400" /></p>
<p style="text-align: justify;">Il semble donc qu'il y ait un entonnoir au niveau de la passerelle de sortie vers l'IPv6. Je ne connais pas les d&eacute;tails de l'infrastructure Free, mais je me suis dit qu'en rendant mon serveur accessible en IPv6 je pourrais contourner le probl&egrave;me, et que de toutes fa&ccedil;ons il &eacute;tait temps que je passe ma part d'IPv6 !</p>
<p style="text-align: justify;">Sauf que ce n'est pas si simple, d'une par je n'ai jamais pratiqu&eacute;, et d'autre par la documentation fournie par Scaleway est obsol&egrave;te.</p>
<p style="text-align: justify;">Chez Scaleway j'ai deux types d'approche, des serveurs lou&eacute;s (D&eacute;dibox) et une infra avec les propres serveurs install&eacute;s dans une baie lou&eacute;e (D&eacute;dirack). Mon serveur &eacute;tant une VM sous Windows 2019 sur un serveur D&eacute;dibox je me suis bas&eacute; sur la <a href="https://www.scaleway.com/en/docs/dedibox-network/ipv6/how-to/configure-ipv6-windows/" target="_blank" rel="noopener">documentation officielle</a> qui fait r&eacute;f&eacute;rence &agrave; la fourniture d'un DUID (sur la console Online) apr&egrave;s avoir demand&eacute; un bloc IPv6 et pass&eacute; le serveur en SLAAC. Au vu des captures d'&eacute;crans cette doc doit dater de l'&eacute;poque Windows NT (si&egrave;cle dernier), j'esp&egrave;re qu'ils vont&nbsp; la mettre &agrave; jour, aussi je mets les copies d'&eacute;cran de la version actuelle ici : <a href="http://canaletto.fr/image.axd?picture=/images/Scaleway_IPv6_Windows%20Server_1.png" target="_blank" rel="noopener">1</a> | <a href="http://canaletto.fr/image.axd?picture=/images/Scaleway_IPv6_Windows%20Server_2.png" target="_blank" rel="noopener">2</a> .</p>
<p style="text-align: justify;">Cette documentation mets en avant l'utilisation du DUID en modifiant une cl&eacute; de registre de Windows. Hors changer le DUID dans l'impl&eacute;mentation Windows est devenu impossible comme l&rsquo;expliquent ces deux articles parmi tant d&rsquo;autres <a href="https://insinuator.net/2017/01/ipv6-properties-of-windows-server-2016-windows-10" target="_blank" rel="noopener">1</a> | <a href="https://discussions.citrix.com/topic/410267-non-persistent-dhcpv6-client-gets-a-new-ipv6-address-at-each-reboot" target="_blank" rel="noopener">2</a>.</p>
<p style="text-align: justify;">Le DUID change maintenant &agrave; chaque reboot en se basant sur l'adresse MAC de l&rsquo;interface. C'est maintenant le comportement normal et attendu. Cette doc n'a donc plus lieu d'&ecirc;tre dans sa version actuelle !</p>
<blockquote>
<p style="text-align: justify;">En fait pour obtenir une IPv6 sous Windows il n'y a rien de plus &agrave; faire que d'activer le stack IPv6 de Windows par d&eacute;faut (client DHCP) (apr&egrave;s avoir demand&eacute; un bloc IPv6 /48). Et c'est tout, l'obtention de l'IPv6 se fait via le serveur DHCPv6 de l'infrastructure Scaleway (il est &eacute;galement possible de renseigner une adresse prise dans le bloc).</p>
</blockquote>
<h3 style="text-align: justify;">Alors, pourquoi toute cette gal&egrave;re depuis des mois ?</h3>
<p style="text-align: justify;">Je me suis obstin&eacute; sur l'utilisation du DUID que la documentation mets en avant ! Normal j'ai appris &agrave; lire. Et d&rsquo;autres sites y font r&eacute;f&eacute;rence. Ensuite il se trouve que cette machine avait un firewall plut&ocirc;t blind&eacute;, et comme elle n'utilisait pas d'IPv6 auparavant tous les entr&eacute;es Core Networking IPv6 &eacute;taient d&eacute;sactiv&eacute;es, donc les &eacute;changes avec le DHCPv6 et RA ne pouvaient pas se faire correctement. Je les ai r&eacute;activ&eacute;s d&egrave;s lors que j&rsquo;ai compris que la premi&egrave;re option &eacute;tait obsol&egrave;te.</p>
<p style="text-align: justify;">A aucun moment le support Scaleway n'a su me dire qu'il ne fallait pas poursuivre dans la voie du DUID, ce qui aurait &eacute;vit&eacute; une perte de temps de toutes parts ! Le ticket de support n&rsquo;est surement pas remont&eacute; aupr&egrave;s des bonnes personne et la culture Windows pas tr&egrave;s pr&eacute;sente, et meme si je les comprends il est impossible aujourd'hui d'ignorer le monde Microsoft !</p>
<p style="text-align: justify;">Par contre de base Windows g&eacute;n&egrave;re une IPv6 al&eacute;atoire, ce qui peut &ecirc;tre utile sur un client mais g&ecirc;nante sur un serveur, on d&eacute;sactive en PS:</p>
<p style="text-align: justify;"><code>&nbsp; Set-NetIPv6Protocol -RandomizeIdentifiers Disabled</code></p>
<p style="text-align: justify;">Ou :</p>
<p style="text-align: justify;"><code>&nbsp; netsh interface ipv6 set global randomizeidentifiers=disabled store=active</code><br /><code>&nbsp; netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent</code><br /><code>&nbsp; netsh interface ipv6 set privacy state=disabled store=active</code><br /><code>&nbsp; netsh interface ipv6 set privacy state=disabled store=persistent</code></p>
<p style="text-align: justify;">On peut &eacute;galement d&eacute;sactiver l'utilisation d'une IPv6 temporaire :</p>
<p style="text-align: justify;"><code>&nbsp; Set-NetIPv6Protocol -UseTemporaryAddresses Disabled</code></p>
<p style="text-align: justify;">Voil&agrave;, en esp&eacute;rant que Scaleway clarifie son article car si le passage de l'utilisation d'un DUID &agrave; du full DHCPv6 facilite largement la t&acirc;che, encore faut-il l'expliquer !&nbsp;Je n'ai pas test&eacute; sous Linux, mais sous pfsense ou OPNsense la proc&eacute;dure est relativement identique.</p>
<h3 style="text-align: justify;">Et dans un D&eacute;dirack ?</h3>
<p style="text-align: justify;">On aurait pu penser au vu de la console Online qui affiche sur une m&ecirc;me pages les infos r&eacute;seau de mon D&eacute;dirack (IPv4) et de mon bloc IPv6 /48 que ce bloc soit &eacute;galement utilisable dans la baie D&eacute;dirack. Mais non, apr&egrave;s avoir lourdement insist&eacute; aupr&egrave;s du support j'ai enfin eu la r&eacute;ponse :</p>
<p style="text-align: justify;">Pour faire de l'IPv6 dans un D&eacute;dirack (offre housing de Scaleway), il faut demander au support un bloc /48 et <strong>ensuite le g&eacute;rer en statique</strong> &agrave; sa convenance. Ca ne s'invente pas.</p>
<p style="text-align: justify;">Et &ccedil;a fonctionne ? Et bien non, car il aura fallu plusieurs jours et plusieurs personnes pour que l'on s'aper&ccedil;oive que quelqu'un ne sais pas faire de copi&eacute;/coll&eacute; chez eux (ou un farceur ?), et que dans le bloc /48 que l'on m'a fourni il y avait un <code>C00D</code> qu'il fallait lire <code>C00C</code> !</p>
<h3 style="text-align: justify;">Et sur l'offre Elastic Metal ?</h3>
<p style="text-align: justify;">Je n'ai pas encore test&eacute;, mais j'y ai install&eacute; un serveur ESXi et je crois savoir que la proc&eacute;dure est encore diff&eacute;rente.</p>
<h3 style="text-align: justify;">Sources et liens</h3>
<ul style="list-style-type: circle;">
<li style="text-align: justify;"><a href="https://lafibre.info/scaleway/dedibox-ipv6-sur-windows-seveur/" target="_blank" rel="noopener">https://lafibre.info/scaleway/dedibox-ipv6-sur-windows-seveur/</a></li>
<li style="text-align: justify;"><a href="https://www.scaleway.com/en/docs/dedibox-network/ipv6/how-to/" target="_blank" rel="noopener">https://www.scaleway.com/en/docs/dedibox-network/ipv6/how-to/</a></li>
<li style="text-align: justify;"><a href="https://www.scaleway.com/en/docs/dedibox-network/ipv6/quickstart/" target="_blank" rel="noopener">https://www.scaleway.com/en/docs/dedibox-network/ipv6/quickstart/</a></li>
<li style="text-align: justify;"><a href="https://www.scaleway.com/en/docs/dedibox-network/ipv6/how-to/configure-ipv6-windows/" target="_blank" rel="noopener">https://www.scaleway.com/en/docs/dedibox-network/ipv6/how-to/configure-ipv6-windows/</a></li>
<li style="text-align: justify;"><a href="https://lemp.io/how-to-enable-slaac-on-windows/" target="_blank" rel="noopener">https://lemp.io/how-to-enable-slaac-on-windows/</a></li>
<li style="text-align: justify;"><a href="https://www.calculator.net/ip-subnet-calculator.html?c6subnet=48&amp;c6ip=2001%3ABC8%3AC00D%3A%3A%2F48&amp;ctype=ipv6&amp;x=Calculate#ipv6" target="_blank" rel="noopener">https://www.calculator.net/ip-subnet-calculator.html?c6subnet=48&amp;c6ip=2001%3ABC8%3AC00D%3A%3A%2F48&amp;ctype=ipv6&amp;x=Calculate#ipv6</a></li>
</ul>
<p style="text-align: justify;">&nbsp;</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:38:"http://canaletto.fr/post/ipv6-scaleway";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:46:"http://canaletto.fr/post/ipv6-scaleway#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=cc0d019e-37d2-4a1d-9951-2064672ec6aa";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:34:"mer., 31 janv. 2024 02:25:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:2:{i:0;a:5:{s:4:"data";s:7:"IP & Co";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:2:"IT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:8:{i:0;a:5:{s:4:"data";s:4:"IPv6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:8:"Scaleway";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:8:"Dedirack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:7:"Dedibox";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:6:"Online";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:6:"DHCPv6";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:6;a:5:{s:4:"data";s:5:"SLAAC";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:7;a:5:{s:4:"data";s:4:"DUID";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=cc0d019e-37d2-4a1d-9951-2064672ec6aa";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=cc0d019e-37d2-4a1d-9951-2064672ec6aa";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:46:"http://canaletto.fr/post/ipv6-scaleway#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=cc0d019e-37d2-4a1d-9951-2064672ec6aa";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:145:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:41:"Home Assistant &amp; Versatile thermostat";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:16734:"<p style="text-align: justify;">J'ai souvent parl&eacute; ici de thermostats et de la planification de ceux ci. Si le mod&egrave;le basic (<code>climate:</code>) a &eacute;t&eacute; <a href="http://canaletto.fr/post/home-assistant-and-thermostats" target="_blank" rel="noopener">am&eacute;lior&eacute; au fil du temps</a>, il manquait h&eacute;las toujours quelque chose, ce que le nouveau Versatile Thermostat vient combler. Je vais donc m'int&eacute;resser &agrave; celui ci afin de g&eacute;rer mon climatiseur. Les int&eacute;grations de climatiseurs se calquent en g&eacute;n&eacute;ral sur leur thermostat int&eacute;gr&eacute;, et de facto de la sonde qui y est int&eacute;gr&eacute;. Celle ci plac&eacute;e &agrave; l'int&eacute;rieur de celui ci n'apporte pas la justesse d'une sonde externe qui elle sera plac&eacute;e &agrave; un emplacement plus idoine. On peut &eacute;galement imaginer une sonde virtuelle calculant la moyenne de plusieurs sondes physiques. C'est la principale utilit&eacute; que je trouve &agrave; ce nouveau thermostat qui dans mon cas d'usage va commander le thermostat d'origine de mon climatiseur, mais VT peut &eacute;galement fonctionner de fa&ccedil;on plus classique en commandant le switch ou le fil pilote d'un classique convecteur ou une vanne thermostatique. Et en plus c'est made in France !</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://canaletto.fr/image.axd?picture=/images/vt_00.jpg" /></p>
<h3 style="text-align: justify;">Les plus du Versatile Thermostat :</h3>
<ul style="text-align: justify;">
<li>La gestion d'une sonde externe (mais &eacute;galement de la temp&eacute;rature ext&eacute;rieure qui semble prise en compte dans son algorithme).</li>
<li>La gestion des ouvertures (encore que dans le cas d'un climatiseur je n'appr&eacute;cie pas trop qu'il le passe &agrave; OFF plut&ocirc;t qu'en ECO ou HG. Une &eacute;volution est en cours sur ce point).</li>
<li>La gestion de la pr&eacute;sence et de l'occupation. Dans mon approche je g&egrave;re d&eacute;j&agrave; &ccedil;a autrement avec <code>proximity:</code> et je ne vais pas m'en servir pour l'instant. Mais &agrave; terme certainement, ce qui me permettra de supprimer du code.</li>
<li>Le mode <a href="https://support.salus-tech.com/portal/en/kb/articles/tpi" target="_blank" rel="noopener">TPI</a> (<em>Time Proportional Interval</em>). TPI est une fonction d'algorithme qui garantit que le dispositif s'allume le moins longtemps possible afin d'atteindre et de maintenir le bon au niveau de confort s&eacute;lectionn&eacute; en fonction de la sonde (tr&egrave;s utile avec un climatiseur ou si on se contente de lui demander 21&deg; il travaillera en fonction de sa sonde interne). Ce mode demande &agrave; faire &eacute;voluer les r&eacute;glages apr&egrave;s quelques semaines d'utilisation en fonction des r&eacute;sultats obtenus. De plus les climatiseurs se g&egrave;rent en g&eacute;n&eacute;ral par paliers de 1&deg;, avec VT on pourra utiliser des consignes interm&eacute;diaires.</li>
<li>La s&eacute;curisation, qui manque cruellement aux autres thermostats et peut conduire &agrave; des situations dangereuses et couteuses : si VT ne re&ccedil;oit pas d'informations de la sonde dans un d&eacute;lais ajustable, il passe en mode s&eacute;curit&eacute; et abaisse la temp&eacute;rature, voire coupe le convecteur.</li>
<li>La gestion des pr&eacute;r&eacute;glages. Incomplet pour mon usage, mais cependant assez logique.&nbsp;</li>
<li>Une carte Lovelace, qui est le fork de celle d'un autre thermostat. Louable et utile, mais j'aurais pr&eacute;f&eacute;r&eacute; que Jean-Marc fasse un fork de <a href="https://github.com/nervetattoo/simple-thermostat" target="_blank" rel="noopener">celle-ci</a> qui semble laiss&eacute;e &agrave; l'abandon.</li>
<li>Le d&eacute;lestage, inutile dans mon cas, mais qui sera un gros plus quand on a que des convecteurs.</li>
</ul>
<h3 style="text-align: justify;">Les pr&eacute;r&eacute;glages (preset)</h3>
<p style="text-align: justify;">Que ce soit manuellement ou avec une planification, il y a deux fa&ccedil;ons de g&eacute;rer un appareil de chauffage, &agrave; la fran&ccedil;aise ou on d&eacute;fini des modes (ECO/CONFORT/BOOST) et l'on s'en tient &agrave; ceux ci, soit on fait varier dynamiquement la temp&eacute;rature de consigne. Personnellement je fait varier la temp&eacute;rature de consigne avec la planification dont j'ai parl&eacute; plusieurs fois ici. C'est &eacute;galement ce qui est utilis&eacute; dans les pays nordiques ou les variation de temp&eacute;rature sont importantes.</p>
<p style="text-align: justify;">L'objectif &eacute;tant de mettre &agrave; disposition de l'utilisateur final une interface la plus claire possible, les pr&eacute;r&eacute;glages disponibles dans VT peuvent m'&ecirc;tre utiles. On peu par exemple imaginer l'utilisateur qui avoir besoin de booster le chauffage, il le fera alors avec le passage en mode BOOST depuis l'interface.</p>
<p style="text-align: justify;">Se posent alors plusieurs questions :</p>
<ul style="text-align: justify;">
<li>Il faut d&eacute;sactiver la planification dynamique qui toutes les 5 minutes va r&eacute;ajuster le thermostat, et donc repasser le thermostat avec les param&egrave;tres planifi&eacute;s.</li>
<li>Il faut &eacute;galement pr&eacute;voir le mode de sortie du mode BOOST (que je consid&egrave;re comme une d&eacute;rogation) :
<ul>
<li>Sortie manuelle imm&eacute;diate : il faut un bouton</li>
<li>Sortie lors du prochain &eacute;v&egrave;nement (tranche horaire planifi&eacute;e, couch&eacute;, sortie, etc...) ou non : il faut pouvoir donner &agrave; l'utilisateur la possibilit&eacute; de choisir : il faut un bouton !</li>
</ul>
</li>
</ul>
<p>Dans ma logique j'aimerais placer ces boutons dans la carte du thermostat. Mais on peut les placer ailleurs.</p>
<h4 style="text-align: justify;">Sortie manuelle d'un <em>preset</em></h4>
<p style="text-align: justify;">Dans mon cas je r&eacute;active simplement l'automation qui g&egrave;re la planification.</p>
<p style="text-align: justify;">L'id&eacute;al aurait &eacute;t&eacute; de disposer d'un preset AUTO dont je pourrais r&eacute;cup&eacute;rer l'&eacute;tat et ainsi r&eacute;activer la planification. Il n'est pas possible d'utiliser le preset NONE/MANUAL car celui ci change d'&eacute;tat d&egrave;s lors que l'on change la consigne.</p>
<p style="text-align: justify;">Faute de disposer d'un preset AUTO (...), le seul preset que je peux d&eacute;tourner est donc celui du mode FROST (hors gel) dont je n'ai pas l'utilit&eacute;. Je d&eacute;tecte l'action via l'&eacute;tat du VT et je r&eacute;active l'automation qui g&egrave;re la planification (dans la m&ecirc;me automation qui me permet de d&eacute;sactiver la planification lorsque je choisit ECO/COMFORT/BOOST), mais &eacute;galement les autres modes du climatiseur (FAN/DRY, etc.).</p>
<pre class="language-yaml"><code>- id: 56dd275e-3f52-4d8gjk862-5eeft5708a82
  description: Comfort - AC - Mode Auto Versatile
  alias: "Comfort - AC - Mode Auto Versatile"
  mode: restart
  trigger:
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'off' }}"
      id: "off"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'dry' }}"
      id: "off"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'fan_only' }}"
      id: "off"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'heat_cool' }}"
      id: "off"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'heat' and state_attr('climate.ac_versatile', 'preset_mode') in ['boost', 'comfort', 'eco'] }}"
      id: "heat_boost_comfort_eco"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'heat' and state_attr('climate.ac_versatile', 'preset_mode') == 'frost' }}"
      id: "heat_frost"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'heat' and state_attr('climate.ac_versatile', 'preset_mode') == 'none' }}"
      id: "heat_none"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'cool' and state_attr('climate.ac_versatile', 'preset_mode') in ['boost', 'comfort', 'eco'] }}"
      id: "cool_boost_comfort_eco"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'cool' and state_attr('climate.ac_versatile', 'preset_mode') == 'frost' }}"
      id: "cool_frost"
    - platform: template
      value_template: "{{ state_attr('climate.ac_versatile', 'hvac_mode') == 'cool' and state_attr('climate.ac_versatile', 'preset_mode') == 'none' }}"
      id: "cool_none"
  action:
    - choose:
        - conditions: "{{ trigger.id in ['off', 'heat_boost_comfort_eco', 'cool_boost_comfort_eco'] }}" # D&eacute;rogation, on coupe le schedulle
          sequence:
            - service: automation.turn_off
              target:
                entity_id: automation.comfort_ac_immediate
              data:
                stop_actions: true                
    - choose:
        - conditions: "{{ trigger.id in ['heat_frost', 'cool_frost'] }}"
          sequence:
            - service: automation.turn_on
              target:
                entity_id: automation.comfort_ac_immediate
            - service: automation.trigger
              target:
                entity_id: automation.comfort_ac_immediate
              data:
                skip_condition: true</code></pre>
<h4 style="text-align: justify;">Sortie automatique d'un preset</h4>
<p style="text-align: justify;">Il s'agit ici de savoir si le prochain &eacute;v&egrave;nement (plage horaire, lever/coucher, g&eacute;oloc, etc...) va repasser le thermostat dans le mode planifi&eacute; ou pas.</p>
<p style="text-align: justify;">L&agrave; je vais utiliser une automation d&eacute;clench&eacute;e par mes diff&eacute;rents triggers, automation qui sera ON ou OFF selon la volont&eacute; de l'utilisateur.</p>
<pre class="language-yaml"><code>- id: 56efdfd5e-3f52-4ddd-a862-5e21f5708a82
  description: Comfort - AC - Restart
  alias: "Comfort - AC - Restart"
  mode: restart
  trigger:
    - platform: state
      entity_id:
        - binary_sensor.heating_ac_1
        - binary_sensor.heating_ac_2
        - binary_sensor.heating_ac_3
        - binary_sensor.heating_ac_4
        - binary_sensor.heating_ac_1_d
        - binary_sensor.heating_ac_2_d
        - binary_sensor.heating_ac_3_d
        - binary_sensor.heating_ac_4_d
        - input_boolean.to_away
        - binary_sensor.life_windows_and_doors_delayed
        - input_boolean.presence_ac
        - input_boolean.to_sleep # eco heat off cool
        - input_boolean.thermostats_ac_on_off
        - binary_sensor.lionel_geo # eco heat off cool
        - input_boolean.thermostats_away
        - input_select.comfort_ac
  condition:
    - condition: state
      entity_id: automation.comfort_ac_immediate
      state: "off"
    - condition: state
      entity_id: input_boolean.thermostats_ac_on_off
      state: "on"
  action:
    - service: automation.turn_on
      target:
        entity_id: automation.comfort_ac_immediate
    - service: automation.trigger
      target:
        entity_id: automation.comfort_ac_immediate
      data:
        skip_condition: true</code></pre>
<h4 style="text-align: justify;">Surveillance</h4>
<p style="text-align: justify;">S'agissant d'un "sur thermostat" il est int&eacute;ressant de savoir ce qui se passe et si possible visuellement. Je vais donc cr&eacute;er deux <code>sensor: / template:</code> qui vont me permettre de suivre et comparer l'&eacute;tat de ces deux thermostats.</p>
<pre class="language-yaml"><code>sensor:
- platform: template
  sensors:
    temp_up_th_ac: # Pour History Graph
      friendly_name: "TH AC"
      value_template: &gt; 
        {% if is_state('climate.daikin', 'heat') %}
          Heat {{state_attr ('climate.daikin', 'temperature')}}&deg;
        {% elif is_state('climate.daikin', 'cool') %}
          Cool {{state_attr ('climate.daikin', 'temperature')}}&deg;
        {% else %}
          Off
        {% endif %}
    temp_up_th_ac_vt: # Pour History Graph
      friendly_name: "TH AC Versatile"
      value_template: &gt; 
        {% if is_state('climate.ac_versatile', 'heat') %}
          Heat {{state_attr ('climate.ac_versatile', 'temperature')}}&deg;
        {% elif is_state('climate.ac_versatile', 'cool') %}
          Cool {{state_attr ('climate.ac_versatile', 'temperature')}}&deg;
        {% else %}
          Off
        {% endif %}</code></pre>
<p style="text-align: justify;">Visuellement &ccedil;a me donne deux lignes, la premi&egrave;re repr&eacute;sente le vrai thermostat du climatiseur tandis que la seconde celui du VT. Et l'on voit bien que pour une consigne fix&eacute;e ici &agrave; 22&deg; le VT pousse parfois le climatiseur &agrave; 23&deg;.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/vt_01.png" /></p>
<p style="text-align: justify;">Quand je l'utilisait en direct je lui demandais g&eacute;n&eacute;ralement 23&deg; pour obtenir 22&deg; &agrave; la sonde. C'est plus que <a href="https://www.gouvernement.fr/reduire-notre-consommation-denergie" target="_blank" rel="noopener">les recommandations &eacute;tatiques</a> me direz vous, mais il y a une raison ! Avoir 22&deg; dans le hall / couloir me permet d'avoir de 19&deg; &agrave; 21&deg; dans les pi&egrave;ces adjacentes, dans lesquelles les convecteurs ne se d&eacute;clenchent que tr&egrave;s rarement, au point que cet hiver je les ai laiss&eacute;s tous OFF. Le seul cas ou ils sont maintenant utiles &eacute;tant lorsque mes enfants sont pr&eacute;sents et ferment les portes de leur chambre (il est bien connu que les ados s'isolent... Et encore le, PC gamer de mon fils doit lui assurer une part de chauffage...).</p>
<h4 style="text-align: justify;">Economies</h4>
<p style="text-align: justify;">Ici on entre dans un domaine difficilement mesurable. En effet la consommation d'un climatiseur est fonction d'une multitude de param&egrave;tres, les horaires, le temps qu'il fait, le nombre d'occupants, etc... Il n'en reste pas moins que si je compare la consommation de mon climatiseur avant et apr&egrave;s la mise e place du VT j'ai l'impression d'avoir r&eacute;duit la conso de &plusmn; 10%. C'est subjectif et &ccedil;a demande &agrave; &ecirc;tre affin&eacute;. Par contre ce qui est certain c'est que le fait de ne quasiment plus activer les convecteurs constitue un gain &eacute;norme. Et conjugu&eacute; &agrave; une <a href="https://uniso-isolation.fr/fr/blog/qu-est-ce-que-l-ite-_195.html" target="_blank" rel="noopener">ITE</a> r&eacute;alis&eacute;e en 2022 et l'automatisation des volets roulants en fonction de l'ensoleillement, j'ai grandement gagn&eacute; en confort et en cout.&nbsp;</p>
<h4 style="text-align: justify;">L'interface</h4>
<p style="text-align: justify;">Il y a longtemps que j'utilise la carte <a href="https://github.com/nervetattoo/simple-thermostat" target="_blank" rel="noopener">Simple Thermostat</a> qui est tr&egrave;s mall&eacute;able et permet l'affichage d'une multitude d'informations.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/vt_02.png" /></p>
<p style="text-align: justify;">H&eacute;las cette carte ne semble plus maintenue et je n'ai pas les comp&eacute;tences pour reprendre le d&eacute;veloppement, Jean-Marc si tu me lis...</p>
<h3 style="text-align: justify;">Conclusion</h3>
<p style="text-align: justify;">VT est un vrai plus pour le confort ! Je n'ai pas abord&eacute; ici la partie refroidissement du climatiseur et je le ferait cet &eacute;t&eacute; quand els conditions seront r&eacute;unies.</p>
<p style="text-align: justify;">En plus c'est made in France et vous pouvez communiquer facilement avec <a href="https://fr.linkedin.com/in/jean-marc-collin-2655a275" target="_blank" rel="noopener">Jean-Marc</a> qui en est l'auteur et se montre tr&egrave;s disponible sur le forum <a href="https://forum.hacf.fr/t/nouveau-thermostat-type-proportionnel-avec-gestion-des-presets-portes-et-fenetres-detection-de-mouvement-gestion-de-presence-et-surconsommation/19160" target="_blank" rel="noopener">HACF</a> ou sur <a href="https://github.com/jmcollin78/versatile_thermostat" target="_blank" rel="noopener">GitHub</a>. Merci &agrave; lui !</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/vt_08.jpg" /></p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:64:"http://canaletto.fr/post/home-assistant-and-versatile-thermostat";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:72:"http://canaletto.fr/post/home-assistant-and-versatile-thermostat#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=5ad75bd2-0000-4a17-92b3-9ea3217d8387";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"mar., 2 janv. 2024 21:01:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:9:"Domotique";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:6:{i:0;a:5:{s:4:"data";s:2:"AC";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:10:"Thermostat";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:4:"Clim";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:7:"Climate";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:13:"Climatisation";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:9:"Chauffage";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=5ad75bd2-0000-4a17-92b3-9ea3217d8387";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=5ad75bd2-0000-4a17-92b3-9ea3217d8387";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:72:"http://canaletto.fr/post/home-assistant-and-versatile-thermostat#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=5ad75bd2-0000-4a17-92b3-9ea3217d8387";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:166:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:26:"Chat&#039;s &amp; Business";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:8704:"<p style="text-align: justify;">Petit &agrave; petit les messageries de type <em>chat</em> se sont impos&eacute;es en entreprise, mais &eacute;galement entre les entreprises. Le but &eacute;tant de garder le contact, de proposer / obtenir des r&eacute;ponses rapides et surtout de d&eacute;lester le mail souvent surcharg&eacute; et parfois trait&eacute; qu'une seule fois par jour, un peu comme le facteur qui jadis passait le matin... Au fil de ces derni&egrave;res ann&eacute;es certaines ont bien &eacute;volu&eacute;es, tandis que d'autres s'imposaient par la force. Chacun ses pr&eacute;f&eacute;rences, mais je vais essayer de faire le tour de la question.</p>
<p style="text-align: justify;">Attention, le seule option qui m'int&eacute;resse ici dans ces applications c'est le chat !</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/chats.jpg" width="672" height="459" /></p>
<p style="text-align: justify;">Je vais en retenir seulement quelques une, certaines sont &agrave; r&eacute;server &agrave; la sph&egrave;re priv&eacute;e m&ecirc;me si on les retrouve souvent en usage professionnel :</p>
<ul style="text-align: justify;">
<li><strong>Messenger Facebook</strong> (Meta) : Usage priv&eacute;, &agrave; proscrire en entre pro. Idem pour celle d'<strong>Instagram</strong> !</li>
<li><strong>WhatsApp</strong> (Meta) : Usage priv&eacute;. Je d&eacute;teste quand un client me contacte par ce biais l&agrave;. Je le ressent comme une intrusion. Il n'en reste pas moins que si l'on dispose que d'un seul num&eacute;ro de mobile c'est in&eacute;vitable. Il existe &eacute;galement une version business orient&eacute;e B2C.</li>
<li><strong>Google Chat</strong> : Le renouveau, et mon pr&eacute;f&eacute;r&eacute; !</li>
<li><strong>Microsoft Teams</strong> : Impos&eacute; au forceps, lourd et confus.</li>
<li><strong>Slack</strong> : Bien, mais couteux !</li>
<li><strong>Telegram</strong> : Usage geek (et mafieux ?). L'entreprise n'est pas la cible. Par contre Telegram est beaucoup utilis&eacute; pour des groupes de discutions th&eacute;matiques, usage auquel il est adapt&eacute; et ou il se pose en concurrence avec les forums.</li>
<li><strong>Signal</strong> : A r&eacute;server &agrave; un usage ou l'on recherche un maximum de confidentialit&eacute;. Probablement le meilleur sur ce point. Pas d'int&eacute;gration web.</li>
<li><strong>Olvid</strong> : Il parait qu'il faut laisser cette application &agrave; nos gouvernants, la PM l'ayant impos&eacute;. Curieux pour un produit finalement pas si Fran&ccedil;ais, avec un actionnariat luxembourgeois et un h&eacute;bergement chez AWS...</li>
</ul>
<p style="text-align: justify;">A noter qu'avec le RCS les SMS peuvent s'apparenter &agrave; des messageries Chat. Tout comme l'a fait Apple avec iMessage, et &ccedil;a sera encore plus le cas avec l'adoption par ce dernier du protocole RCS.</p>
<p style="text-align: justify;">Je ne vais pas toutes les traiter car de mon point de vue certains n'ont pas leur place en entreprise ou en B2B. Soit parce que je les estime destin&eacute; &agrave; un usage priv&eacute;, ce qui permet de poser des limites, soit parce que trop sp&eacute;cifiques. Les trois dont je vais parler disposent de clients mobile et desktop, mais &eacute;galement d'une version web qui permet de les int&eacute;grer &agrave; un agr&eacute;gateur d'applications web comme <a href="https://webcatalog.io/fr/" target="_blank" rel="noopener">WebCalatog</a> (que je recommande), <a href="https://www.meetsidekick.com/" target="_blank" rel="noopener">SideKick</a> ou encore <a href="https://ferdium.org/" target="_blank" rel="noopener">Ferdium</a> (il en existe d'autres). Ces utilitaires permettent de rassemble en un seul endroit tous les chat's...</p>
<h4 style="text-align: justify;">Microsoft Teams</h4>
<p style="text-align: justify;">Apr&egrave;s avoir sabot&eacute; MSN Messenger et cannibalis&eacute;e Skype, Microsoft a fini par imposer Teams en profitant du confinement et surtout en l'incluant gratuitement dans toutes les offres 365. La m&eacute;thode est plus que discutable et les diff&eacute;rentes autorit&eacute;s de r&eacute;gulation se sont empar&eacute;es du dossier suite &agrave; une plainte de Slack. Il n'en reste pas moins que Teams est devenu omnipr&eacute;sent et que le ver est dans la pomme. M&ecirc;me si beaucoup l'utilisent que pour du chat ou des r&eacute;unions en visio, Teams va beaucoup plus loin en termes de fonctionnalit&eacute;s, certes utiles dans une multinationale, mais au point de rapidement perdre les utilisateurs. C'est mon cas et je n'utilise que le chat pour communiquer avec des contacts dont c'est le seul canal possible.</p>
<p style="text-align: justify;">Teams a &eacute;t&eacute; con&ccedil;u pour de tr&egrave;s grandes entreprises et les &eacute;changes entre des utilisateurs de tenants diff&eacute;rents sont limit&eacute;s et n&eacute;cessitent une approbation. Essayez donc de faire glisser un document dans une conversation avec un contact externe. Impossible en a d&eacute;cid&eacute; Microsoft, pas plus que vous ne verrez les photos de profil de vos contacts externes. C'est comme &ccedil;a, by design, simplement parce que ce n'est pas la cible. A destination des march&eacute;s SMB, Microsoft avait lanc&eacute; il y a quelques ann&eacute;es Kaizala, une sorte de clone de WhatsApp. Vous ne connaissez pas, normal, car rapidement retir&eacute;e.</p>
<p style="text-align: justify;">Bref, vous l'aurez compris je d&eacute;teste Teams, mais je suis contraint de l'utiliser.</p>
<h4 style="text-align: justify;">Slack</h4>
<p style="text-align: justify;">Comment justifier une licence de 6 &agrave; 12 &euro; par mois et par utilisateur quand l'entreprise dispose d&eacute;j&agrave; de Teams gratuitement ? Slack est un produit tr&egrave;s int&eacute;ressant et bien ficel&eacute;, jadis il &eacute;tait utilisable dans sa formule gratuite, h&eacute;las de plus en plus restrictive (3 mois d'historique seulement), ce qui me pousse &agrave; l'abandonner. Slack n'est toutefois pas exempt de d&eacute;faut, et dans bien des facettes n'est pas vraiment adapt&eacute; &agrave; l'utilisation facile inter entreprise. Slack c'est <a href="https://www.salesforce.com/fr/" target="_blank" rel="noopener">SalesForce</a>, la cible principale n'est pas non plus les petites entreprises. Adieu Slack, je t'aimais bien, avant !</p>
<h4 style="text-align: justify;">Google Chat</h4>
<p style="text-align: justify;">Et puis il y a le cas du (m&eacute;chant) Google. Apr&egrave;s des ann&eacute;es d'errances (Hangouts) et de produits mal ficel&eacute;s, je dois dire que je trouve l'actuelle version de Google Chat tr&egrave;s s&eacute;duisante. Elle n'impose pas de restrictions de communication entre les utilisateurs, qu'il s'agisse d'un simple compte Google personnel et gratuit ou d'un compte Google Workspace d'entreprise. L'interop&eacute;rabilit&eacute; est totale et l'interface claire et simple pour le chat, mais &eacute;galement des espaces de travail comme le propose Microsoft, mais de fa&ccedil;on simple, intuitive et surtout l&eacute;g&egrave;re. On peut dire qu'ils reviennent de loin, mais h&eacute;las Teams a entre temps cueilli le march&eacute; et j'y ai peu de contacts.</p>
<h3 style="text-align: justify;">Alternatives ?</h3>
<p style="text-align: justify;">On ne vas pas ressortir ICQ et tout ce qui fonctionne sur la base IRC ou Jabber, voire <a href="https://trillian.im/" target="_blank" rel="noopener">Trillian</a>. En intra entreprises certains pourront opter pour ce qui est propos&eacute; par Synology ou d'autres applications en auto h&eacute;bergement, mais pas adapt&eacute; au B2B. Il est &eacute;galement possible d'opter pour Discord, au d&eacute;part d&eacute;di&eacute; au gamers, certains l'utilisent en mode professionnel. Tout comme Zoom qui nous rappelle le confinement !</p>
<p style="text-align: justify;">Les suisses proposent &eacute;galement <a href="https://threema.ch/fr" target="_blank" rel="noopener">Threema</a> qui semble un beau produit destin&eacute; tant aux particuliers qu'au entreprise et qui pr&eacute;serve la confidentialit&eacute; et la vie priv&eacute;. Mais personne en connait en France !</p>
<p style="text-align: justify;">Il n'en reste pas moins que le march&eacute; ne propose rien d'universel. La CE travaille &agrave; imposer une interop&eacute;rabilit&eacute; entre les messageries, &agrave; l'instar de ce qui existe pour le mail ou la t&eacute;l&eacute;phonie. Mais je doute fort de voir des r&eacute;sultats rapides et pour un bout de temps on sera encore contraints d'utiliser plusieurs clients.</p>
<p style="text-align: justify;">&nbsp;</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:44:"http://canaletto.fr/post/chat-s-and-business";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:52:"http://canaletto.fr/post/chat-s-and-business#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=b7938413-d923-4a65-871f-adf37f46289d";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"sam., 9 déc. 2023 03:48:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:2:"IT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:9:{i:0;a:5:{s:4:"data";s:4:"Chat";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:5:"Teams";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:5:"Slack";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:11:"Google Chat";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:8:"WhatsApp";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:6:"Signal";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:6;a:5:{s:4:"data";s:8:"Telegram";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:7;a:5:{s:4:"data";s:5:"Olvid";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:8;a:5:{s:4:"data";s:9:"Messenger";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=b7938413-d923-4a65-871f-adf37f46289d";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=b7938413-d923-4a65-871f-adf37f46289d";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:52:"http://canaletto.fr/post/chat-s-and-business#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=b7938413-d923-4a65-871f-adf37f46289d";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:145:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:39:"AutoDiscover &amp; AutoConfig IMAP/SMTP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:12485:"<p style="text-align: justify;">En 2020, pour m'occuper pendant le confinement, j'avais &eacute;crit <a href="http://canaletto.fr/post/configuration-automatique-pop-imap" target="_blank" rel="noopener">un article</a> sur la configuration automatique des clients POP/IMAP. Ca fonctionnait sur Thunderbird, mais pas sur les clients Microsoft... Bon, les clients Microsoft il y en a de plusieurs sorte (Courrier, Outlook nouveau, ancien, 365, jadis Express et j'en passe) et la chose n'est (volontairement ?) pas simple. On va oublier les versions 365 qui m&ecirc;me si elles supportent IMAP le font mal et ne sont pas vraiment destin&eacute;s &agrave; cet usage mais plus &agrave; du MAPI.</p>
<p style="text-align: justify;">Pour cet article j'ai mont&eacute; un serveur <a href="https://www.cloudron.io/" target="_blank" rel="noopener">Cloudron</a>. Ce projet g&egrave;re tr&egrave;s bien le mail dans sa version de base gratuite. H&eacute;las il ne g&egrave;re pas la configuration des clients, ce qui est regrettable car il pourrait tr&egrave;s facilement int&eacute;grer ce qui suit afin d'&ecirc;tre totalement dans la philosophie du projet int&eacute;gr&eacute; !</p>
<p style="text-align: justify;">Il existe plusieurs fa&ccedil;ons de faire de l'AutoDiscovery ou de l'AutoConfig</p>
<h3 style="text-align: justify;">La m&eacute;thode RFC 6186</h3>
<p style="text-align: justify;">Elle se base sur des enregistrements DNS :</p>
<pre class="language-yaml"><code>_imap._tcp 300 IN SRV 0 0 0 .
_imaps._tcp 300 IN SRV 0 1 993 mail.domain.tld.
_pop3._tcp 300 IN SRV 0 0 0 .
_pop3s._tcp 300 IN SRV 10 1 995 mail.domain.tld.
_submission._tcp 300 IN SRV 0 0 0 .
_submissions._tcp 300 IN SRV 0 1 587 mail.domain.tld.</code></pre>
<p style="text-align: justify;"><a href="https://www.rfc-editor.org/rfc/rfc6186" target="_blank" rel="noopener">Normalis&eacute;e</a> mais visiblement trop simple est abandonn&eacute;e. Encore que <a href="https://social.technet.microsoft.com/Forums/en-US/daa5fd1f-883e-4ca9-8ebc-3b25576ced28/autodiscover-for-imap-account-on-outlook-20162019?forum=outlook" target="_blank" rel="noopener">certaines versions d'Outlook</a> utiliseraient &ccedil;a. Etrange.</p>
<h3 style="text-align: justify;">La m&eacute;thode Thunderbird&nbsp;</h3>
<p style="text-align: justify;">Thunderbird va chercher les param&egrave;tres dans un fichier XML sur l'url :<code></code></p>
<p style="text-align: justify;"><code>http://autoconfig.domain.tld/mail/config-v1.1.xml</code></p>
<h3 style="text-align: justify;">La m&eacute;thode Outlook</h3>
<p style="text-align: justify;">Outlook cherche l&rsquo;enregistrement DNS de type SRV :</p>
<p style="text-align: justify;"><code>_autodiscover._tcp.domain.tld 3600 IN SRV 10 10 443 autodiscover.domain.tld.</code></p>
<p style="text-align: justify;">qui va lui donner l'adresse ou interroger le fichier XML, donc un CNAME qui pointe sur le serveur web qui h&eacute;berger le fichier XML, ce qui au final donnera une requ&ecirc;te sur</p>
<p style="text-align: justify;"><code>https://autodiscover.domain.tld/AutoDiscover/AutoDiscover.xml</code></p>
<p style="text-align: justify;">Simple ! Attention &agrave; bien respecter la casse du mot AutoDiscover... Et ne pas oublier que dans le cas Microsoft on travaille en HTTPS. Dans certains cas on pourrait faire pointer &ccedil;a sur n'importe quelle url, mais il semblerait que certaines versions d'Outlook (et il y en a !) cherchent une url qui commence par <code>autodiscover</code>...</p>
<h3 style="text-align: justify;">Un site pour les rassembler</h3>
<p style="text-align: justify;">Dans la m&eacute;thode qui va suivre on va utiliser un seul site capable de r&eacute;pondre aux url <code>autoconfig</code> et <code>autodiscover</code>, on renseignera donc ces enregistrement dans le dns :</p>
<pre class="language-yaml"><code>_autodiscover._tcp.domain.tld 1800 IN SRV 10 10 443 autodiscover.domain.tld.
autoconfig 1800 IN CNAME web_server.domain.tld.
autodiscover 1080 IN CNAME web_server.domain.tld.</code></pre>
<p style="text-align: justify;">Ensuite on cr&eacute;e un site web capable de r&eacute;pondre &agrave; ces deux url pour l'ensemble des domaines de messagerie pour lesquels on souhaite proposer ce service. Le site doit r&eacute;pondre en HTTP et HTTPS, <span style="text-decoration: underline;">mais surtout sans redirection automatique HTTP vers HTTPS</span>. Pour cet exemple j'ai utilis&eacute; un serveur web NGINX avec du PHP.</p>
<p style="text-align: justify;">On va utiliser ce code que j'ai trouv&eacute; <a href="https://david.mercereau.info/autoconfig-thunderbird-autodiscover-outlook-sur-messagerie-heberge-ispconfig/" target="_blank" rel="noopener">ici</a>, je l'ai utilis&eacute; tel que en adaptant les enregistrements DNS et les redirections pour NGINX que l'on verra apr&egrave;s le code. On copie donc ce code PHP dans autoconfig-mail.php :</p>
<pre class="language-php"><code>&lt;?php
 
/*
By David Mercereau
Licence Beerware
*/
 
function extract_domain($domain) {
    if(preg_match("/(?P&lt;domain&gt;[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i", $domain, $matches)) {
        return $matches['domain'];
    } else {
        return $domain;
    }
}
 
$domain = extract_domain($_SERVER['SERVER_NAME']);
$mailServeur='mail.'.$domain;
 
if (preg_match('/^\/mail\/config-v1\.1\.xml/', $_SERVER['REQUEST_URI'])) {
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
    ?&gt;
&lt;clientConfig version="1.1"&gt;
    &lt;emailProvider id="&lt;?= $domain ?&gt;"&gt;
      &lt;domain&gt;&lt;?= $domain ?&gt;&lt;/domain&gt;
      &lt;displayName&gt;&lt;?= $domain ?&gt;&lt;/displayName&gt;
      &lt;displayShortName&gt;&lt;?= $domain ?&gt;&lt;/displayShortName&gt;
      &lt;incomingServer type="imap"&gt;
         &lt;hostname&gt;&lt;?= $mailServeur ?&gt;&lt;/hostname&gt;
         &lt;port&gt;143&lt;/port&gt;
         &lt;socketType&gt;STARTTLS&lt;/socketType&gt;
         &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
         &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
      &lt;/incomingServer&gt;
      &lt;outgoingServer type="smtp"&gt;
         &lt;hostname&gt;&lt;?= $mailServeur ?&gt;&lt;/hostname&gt;
         &lt;port&gt;587&lt;/port&gt;
         &lt;socketType&gt;STARTTLS&lt;/socketType&gt;
         &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
         &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
      &lt;/outgoingServer&gt;
      &lt;documentation url="https://webmail.&lt;?= $domain ?&gt;"&gt;
          &lt;descr lang="fr"&gt;Connexion Webmail&lt;/descr&gt;
          &lt;descr lang="en"&gt;Webmail connexion&lt;/descr&gt;
      &lt;/documentation&gt;
      &lt;documentation url="http://projet.retzo.net/projects/hebergement/wiki"&gt;
        &lt;descr lang="fr"&gt;Documentation&lt;/descr&gt;
        &lt;descr lang="en"&gt;Generic settings page&lt;/descr&gt;
      &lt;/documentation&gt;
    &lt;/emailProvider&gt;
&lt;/clientConfig&gt;
    &lt;?php
} else {
    // Outlook
    //get raw POST data so we can extract the email address
    $data = file_get_contents("php://input");
    preg_match("/\&lt;EMailAddress\&gt;(.*?)\&lt;\/EMailAddress\&gt;/", $data, $matches);
 
    //set Content-Type
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
    echo '&lt;?xml version="1.0" encoding="utf-8" ?&gt;'; 
    ?&gt;
&lt;Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006"&gt;
   &lt;Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a"&gt;
       &lt;Account&gt;
           &lt;AccountType&gt;email&lt;/AccountType&gt;
           &lt;Action&gt;settings&lt;/Action&gt;
           &lt;Protocol&gt;
               &lt;Type&gt;IMAP&lt;/Type&gt;
               &lt;Server&gt;&lt;?= $mailServeur ?&gt;&lt;/Server&gt;
               &lt;Port&gt;993&lt;/Port&gt;
               &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
               &lt;LoginName&gt;&lt;?php echo $matches[1]; ?&gt;&lt;/LoginName&gt;
               &lt;SPA&gt;off&lt;/SPA&gt;
               &lt;SSL&gt;on&lt;/SSL&gt;
               &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
           &lt;/Protocol&gt;
           &lt;Protocol&gt;
               &lt;Type&gt;POP3&lt;/Type&gt;
               &lt;Server&gt;&lt;?= $mailServeur ?&gt;&lt;/Server&gt;
               &lt;Port&gt;995&lt;/Port&gt;
               &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
               &lt;LoginName&gt;&lt;?php echo $matches[1]; ?&gt;&lt;/LoginName&gt;
               &lt;SPA&gt;off&lt;/SPA&gt;
               &lt;SSL&gt;on&lt;/SSL&gt;
               &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
           &lt;/Protocol&gt;
           &lt;Protocol&gt;
               &lt;Type&gt;SMTP&lt;/Type&gt;
               &lt;Server&gt;&lt;?= $mailServeur ?&gt;&lt;/Server&gt;
               &lt;Port&gt;587&lt;/Port&gt;
               &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
               &lt;LoginName&gt;&lt;?php echo $matches[1]; ?&gt;&lt;/LoginName&gt;
               &lt;SPA&gt;off&lt;/SPA&gt;
               &lt;Encryption&gt;TLS&lt;/Encryption&gt;
               &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
               &lt;UsePOPAuth&gt;off&lt;/UsePOPAuth&gt;
               &lt;SMTPLast&gt;off&lt;/SMTPLast&gt;
           &lt;/Protocol&gt;
       &lt;/Account&gt;
   &lt;/Response&gt;
&lt;/Autodiscover&gt;
    &lt;?php
}
 
?&gt;</code></pre>
<p style="text-align: justify;">Ensuite dans configuration NGINX on ajoute les redirections suivantes qui va permettre de servir la bonne version XML selon que la requ&ecirc;te utilise la m&eacute;thode Outlook ou Thunderbird (attention &agrave; la casse...) :</p>
<pre class="language-javascript"><code>location /AutoDiscover {
  rewrite ^/AutoDiscover/AutoDiscover.xml /autoconfig-mail.php;
}
location /mail {
  rewrite ^/mail/config-v1.1.xml /autoconfig-mail.php;
}</code></pre>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/enjoy2.jpg" width="250" height="168" /></p>
<h3 style="text-align: left;">Sources</h3>
<ul style="list-style-type: circle;">
<li style="text-align: left;"><a href="https://github.com/cfoellmann/ISPC-resources/tree/master/guides/autodiscover" target="_blank" rel="noopener">https://github.com/cfoellmann/ISPC-resources/tree/master/guides/autodiscover</a></li>
<li style="text-align: left;"><a href="https://help.directadmin.com/item.php?id=661" target="_blank" rel="noopener">https://help.directadmin.com/item.php?id=661</a></li>
<li style="text-align: left;"><a href="https://testconnectivity.microsoft.com" target="_blank" rel="noopener">https://testconnectivity.microsoft.com</a></li>
<li style="text-align: left;"><a href="https://www.howto-outlook.com/howto/autodiscoverconfiguration.htm#cname" target="_blank" rel="noopener">https://www.howto-outlook.com/howto/autodiscoverconfiguration.htm#cname</a></li>
<li style="text-align: left;">https://www.awsmonster.com/2019/09/how-to-configure-autodiscover.html</li>
<li style="text-align: left;"><a href="https://learn.microsoft.com/fr-fr/exchange/troubleshoot/outlook-issues/issues-when-using-autodiscover-service" target="_blank" rel="noopener">https://learn.microsoft.com/fr-fr/exchange/troubleshoot/outlook-issues/issues-when-using-autodiscover-service</a></li>
<li style="text-align: left;"><a href="https://docs.directadmin.com/other-hosting-services/email/autodiscover.html" target="_blank" rel="noopener">https://docs.directadmin.com/other-hosting-services/email/autodiscover.html</a></li>
<li style="text-align: left;"><a href="https://david.mercereau.info/autoconfig-thunderbird-autodiscover-outlook-sur-messagerie-heberge-ispconfig/" target="_blank" rel="noopener">https://david.mercereau.info/autoconfig-thunderbird-autodiscover-outlook-sur-messagerie-heberge-ispconfig/</a></li>
<li style="text-align: left;"><a href="https://github.com/wdes/mail-autodiscover-autoconfig" target="_blank" rel="noopener">https://github.com/wdes/mail-autodiscover-autoconfig</a> (Apple inside...)</li>
<li style="text-align: left;"><a href="https://blog.ebak.fr/2022/03/05/Auto-configuration-des-clients-mails/#Autoconfig-Thunderbird" target="_blank" rel="noopener">https://blog.ebak.fr/2022/03/05/Auto-configuration-des-clients-mails/#Autoconfig-Thunderbird</a>&nbsp;</li>
</ul>
<p style="text-align: left;"><br />https://github.com/gronke/email-autodiscover<br />https://github.com/SpicyWeb-de/isp-mailConfig</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:62:"http://canaletto.fr/post/autodiscover-and-autoconfig-imap-smtp";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:70:"http://canaletto.fr/post/autodiscover-and-autoconfig-imap-smtp#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=d03374ea-d6e8-464d-a0e8-80f3ef2a3efe";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"lun., 20 nov. 2023 23:08:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:2:"IT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:6:{i:0;a:5:{s:4:"data";s:11:"Thunderbird";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:7:"Outlook";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:4:"Mail";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:4:"IMAP";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:12:"Autodiscover";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:10:"autoconfig";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=d03374ea-d6e8-464d-a0e8-80f3ef2a3efe";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:1:"0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=d03374ea-d6e8-464d-a0e8-80f3ef2a3efe";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:70:"http://canaletto.fr/post/autodiscover-and-autoconfig-imap-smtp#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=d03374ea-d6e8-464d-a0e8-80f3ef2a3efe";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:152:"
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    ";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:7:{s:0:"";a:7:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:36:"Home Assistant, Zigbee &amp; Legrand";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:10200:"<p style="text-align: justify;">On m'a demand&eacute; r&eacute;cemment d'int&eacute;grer des appareils Legrand dans Home Assistant, je l'avais d&eacute;j&agrave; fait pour certains et j'en avais parl&eacute; dans <a href="http://canaletto.fr/post/home-assistant-zha-and-legrand" target="_blank" rel="noopener">cet article</a>. Aujourd'hui il s'agit d'int&eacute;grer des commandes sans fil vue come des t&eacute;l&eacute;commandes dans HA. Vous allez me demander quel est l'int&eacute;r&ecirc;t quand un simple bouton Ikea (E1743) &agrave; moins de 10 fait le job pour mes volets roulants. C'est purement esth&eacute;tique, quand on a un logement &eacute;quip&eacute; en Legrand C&eacute;liane ou Mosaic, on veut parfois que les commandes des volets soient dans la m&ecirc;me collection.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/legrand_vr.jpeg" width="249" height="249" /></p>
<p style="text-align: justify;">Soit, Legrand propose des commandes en Zigbee, il n'y a plus qu'&agrave; !</p>
<p style="text-align: justify;">Dans la pratique on va voir que ce n'est pas si simple, en tous cas bien moins simple qu'avec mon bouton Ikea &agrave; 10 &euro; ! Je pr&eacute;cise le prix car les commandes Legrand sont plut&ocirc;t &agrave; 80 &euro;. Mais quand on aime on ne compte pas.</p>
<p style="text-align: justify;">Il existe plusieurs type d'&eacute;quipements Zigbee chez Legrand</p>
<ul style="text-align: justify;">
<li>Ceux qui sont filaires, j'en ai parl&eacute; <a href="http://canaletto.fr/post/home-assistant-zha-and-legrand" target="_blank" rel="noopener">ici</a> (micro modules, contacteur DIN, prise connect&eacute;e, etc...)</li>
<li>La gamme des commandes sans fil &agrave; pile</li>
<li>La gamme des commandes sans fil sans piles (gamme Self-e). J'y reviendrait certainement, mais d'apr&egrave;s mes infos cette gamme supporte tous les canaux et serait mieux int&eacute;gr&eacute;e ZHA/Z2M.</li>
</ul>
<p style="text-align: justify;">Je me suis donc pench&eacute; sur la gamme avec pile.</p>
<p style="text-align: justify;">Premi&egrave;re observation, ces devices sont g&eacute;n&eacute;ralement livr&eacute;s avec un firmware de niveau 42 qui ne permet que l'utilisation du canal Zigbee 11. Don impossible &agrave; faire fonctionner sur mon ZHA qui est en 15. Je l'ai donc appair&eacute; sur mon Z2M en 11 et &ccedil;a fonctionne. Et l&agrave; je me suis dit que j'allais pouvoir mettre &agrave; jour ce firmware en OTA. Mais non, &ccedil;a ne fonctionne pas et on se retrouve dans la probl&eacute;matique des &eacute;quipements franco Fran&ccedil;ais qui n'int&eacute;ressent pas grand monde au niveau international (on pense par exemple &agrave; tout ce qui est li&eacute; &agrave; l'int&eacute;gration Overkiz...).</p>
<p style="text-align: justify;">Apr&egrave;s moultes lectures des forums de diverses plateformes domotique, la conclusion est que la mise &agrave; jour du firmware ne peut se faire qu'au travers d'une passerelle officielle Legrand !&nbsp;J&rsquo;ai donc achet&eacute; le kit qui comprend :</p>
<ul style="text-align: justify;">
<li>La prise Control qui sert de passerelle</li>
<li>Un inter sans fil</li>
<li>Une ampoule</li>
</ul>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/legrand_pack.jpg" width="532" height="532" /></p>
<p style="text-align: justify;">Il faut bien sur installer l&rsquo;appli Legrand et ensuite tenter d&rsquo;associer la prise au WIFI. Facile ? Non, &ccedil;a m&rsquo;a pris de plombes car vu que leur process est trop long, le mobile qui se connecte &agrave; la prise pour la configurer repasse sur le WIFI normal ou il retrouve Internet, et perd la config en cours. Solution faire &ccedil;a avec un vieux mobile&hellip; Bref, un premier amateurisme car on fait facilement ce genre d'association avec la majorit&eacute; des objets mobile en WIFI !</p>
<p style="text-align: justify;">Bon, la logique de l&rsquo;appli est orient&eacute;e &eacute;lectricien tr&egrave;s grand public, avec une logique d'&eacute;lectricien qui n&rsquo;est pas n&eacute;cessairement la notre. C'est un choix, il faut s'y faire, mais n'oublions pas que nous sommes ici uniquement pour faire un mise &agrave; jour...</p>
<p style="text-align: justify;">Ensuite il faut ajouter les inter. Sauf que la il faut comprendre qu&rsquo;on ne peut pas ajouter un inter seul. Dans la logique Legrand si tu ajoute un inter, en fin de dialogue &ccedil;a te demande ce que tu veux commander, sans quoi &ccedil;a bloque et il n&rsquo;y a plus qu&rsquo;&agrave; forcer le red&eacute;marrage de l&rsquo;appli et recommencer...&nbsp;Je n&rsquo;avais pas de prise Legrand sous la main, mais au bout d&rsquo;un moment j&rsquo;ai fini par penser &agrave; appairer l&rsquo;ampoule. Et la je vois enfin l&rsquo;inter livr&eacute; et mon inter de volet roulant qui ne peut rien commander, c&rsquo;est le m&ecirc;me mais avec un firmware diff&eacute;rent.</p>
<p style="text-align: justify;">Mais souvenons nous que nous somme l&agrave; &agrave; jouer avec ce bazar dans le seul but de mettre &agrave; jour le firmware de ces putains d&rsquo;inter qui au del&agrave; de couter un rein ne fonctionnent (mal) que sur le canal 11.&nbsp;H&eacute;las il n&rsquo;y arien pour faire cette mise &agrave; jour, mon inter de VR apparait en 42 dans l&rsquo;appli et en 002a dans z2m, donc identique l&rsquo;un &eacute;tant en hexa.&nbsp;D&rsquo;apr&egrave;s ce que j&rsquo;ai pu lire, la mise &agrave; jour se fera, un jour, mais on ne peut pas la forcer. Il faut juste laisser branch&eacute;, en esp&eacute;rant que mon inter qui n&rsquo;est pas connect&eacute; &agrave; un appareil se mette &agrave; jour tout seul&hellip;</p>
<p style="text-align: justify;">Donc je laisse branch&eacute;, la suite pour bient&ocirc;t&hellip;</p>
<p style="text-align: justify;"><strong>EDIT un peu plus tard :</strong></p>
<ul style="text-align: justify;">
<li>L&rsquo;inter (0 677 73N) est pass&eacute; de 50 &agrave; 70</li>
<li>L&rsquo;inter VR (0 777 48LA) n&rsquo;a pas boug&eacute;&hellip;</li>
<li>Je testerais si on peut l&rsquo;appairer hors du canal 11 mais je commence &agrave; douter&hellip;</li>
</ul>
<p style="text-align: justify;"><strong>EDIT le lendemain :</strong></p>
<ul style="text-align: justify;">
<li>L&rsquo;inter s&rsquo;appaire bien sur un autre canal apr&egrave;s sa mise &agrave; jour. Test&eacute; en ZHA sur 15, mais ZHA ne le supporte pas et rien ne bouge, aucun event.</li>
<li>L&rsquo;inter VR ne s&rsquo;est toujours pas mis &agrave; jour. Un peu comme s&rsquo;il lui fallait une charge...</li>
</ul>
<p style="text-align: justify;"><strong>EDIT le lendemain soir :</strong></p>
<ul style="text-align: justify;">
<li>L&rsquo;inter VR est bien pass&eacute; de 42 &agrave; 70, mon ZHA qui est sur le canal 15 le voit mais n&rsquo;en fait rien. Quand &agrave; Z2M il n&rsquo;en veut plus ! Pire &ccedil;a me fait planter Z2M&hellip;</li>
</ul>
<p style="text-align: justify;"><strong>EDIT le sur lendemain midi :</strong></p>
<ul style="text-align: justify;">
<li>L&rsquo;inter VR qui ne veut toujours pas de ZHA ou Z2M s&rsquo;est appair&eacute; correctement sur deconz en canal 15, il retourne dans les event les valeurs suivantes :</li>
</ul>
<blockquote>
<p>Mont&eacute;e : <code>1002</code> / Mont&eacute;e puis rel&acirc;ch&eacute; : <code>1002/3002</code><br />Descente : <code>2002</code> / Descente puis rel&acirc;ch&eacute; : <code>2002/3003</code><br />Stop (Les deux en m&ecirc;me temps) : <code>3003</code></p>
</blockquote>
<p style="text-align: justify;">Ce comportement est identique &agrave; ce qu&rsquo;il &eacute;tait sous Z2M et contrairement &agrave; d'autres t&eacute;l&eacute;commandes (le on/off Ikea (E1743 par exemple) il manque le fait qu&rsquo;un second appui bref provoque un stop. Il faut donc bien appuyer au milieu pour faire un &laquo; stop &raquo; et ce n&rsquo;est pas toujours pris en compte (probl&egrave;me physique).</p>
<p style="text-align: justify;">Qu&rsquo;il ne soit pas support&eacute; sur ZHA est un fait, il faudrait d&eacute;velopper un quirk et &ccedil;a me d&eacute;passe. Je ne sais pas pourquoi il ne veut plus s&rsquo;appairer sur Z2M, mais c&rsquo;est peut &ecirc;tre li&eacute; &agrave; mon installation, ma cl&eacute;, que sais-je...</p>
<p style="text-align: justify;">Il y a des chances que l&rsquo;aventure Legrand va prendre fin et je que je retourne fissa ce Kit &agrave; Amazon !</p>
<h3 style="text-align: justify;">Homekit</h3>
<p style="text-align: justify;">A signaler toutefois que cette passerelle est Homekit. Ce qui veut dire que ses &eacute;quipements remontent dans Home Assistant. Mais ne r&ecirc;vez pas trop, si l&rsquo;ampoule remonte bien, et certainement tous les actionneurs connect&eacute;s (prises, modules DIN), <span style="text-decoration: line-through;">pas les inter</span> En fait si, il faut juste attendre un peu. N&eacute;anmoins tout ne semble pas remonter, uniquement une action par bouton ! Mais j&rsquo;avais d&eacute;j&agrave; remarqu&eacute; &ccedil;a avec les t&eacute;l&eacute;commandes Tuya qui ne remontent pas via une passerelle Tuya Homekit. Il y a une forme de logique, Homekit sert &agrave; commander un &eacute;quipement, comme une t&eacute;l&eacute;commande, hors on ne commande pas une t&eacute;l&eacute;commande&hellip;</p>
<p style="text-align: justify;">Par contre &ccedil;a veut dire que les &eacute;quipements reconnus par Legrand vont remonter dans Homekit, ce qui peut &ecirc;tre une solution de contr&ocirc;le facile pour des produit pas reconnus par HA (Profalux, Bubendorf, Aldes, etc&hellip;).</p>
<h3 style="text-align: justify;">La suite</h3>
<p style="text-align: justify;">Je vous propose de poursuivre <a href="https://forum.hacf.fr/t/interrupteur-legrand-volet-roulant-celiane-mosaic/9137/24" target="_blank" rel="noopener">ici</a> et que chacun y apporte ses retours.</p>
<p style="text-align: center;"><img src="http://canaletto.fr/image.axd?picture=/images/ThatsAllFolks.jpg" width="275" height="275" /></p>
<h3 style="text-align: left;">Sources</h3>
<ul>
<li style="text-align: left;">https://developer.legrand.com/production-firmware-download/</li>
</ul>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:58:"http://canaletto.fr/post/home-assistant-zigbee-and-legrand";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:66:"http://canaletto.fr/post/home-assistant-zigbee-and-legrand#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=c9296c49-547e-42ae-b4be-7a9cedd65947";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:33:"dim., 19 nov. 2023 17:14:00 +0200";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:9:"Domotique";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:34:"https://blogengine.io/schemas/tags";a:1:{s:3:"tag";a:7:{i:0;a:5:{s:4:"data";s:14:"Home Assistant";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:1;a:5:{s:4:"data";s:4:"HASS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:2;a:5:{s:4:"data";s:7:"Legrand";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:3;a:5:{s:4:"data";s:6:"zigbee";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:4;a:5:{s:4:"data";s:3:"Z2M";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:5;a:5:{s:4:"data";s:3:"ZHA";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}i:6;a:5:{s:4:"data";s:11:"zigbee2mqtt";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:9:"publisher";a:1:{i:0;a:5:{s:4:"data";s:5:"Admin";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:52:"http://madskills.com/public/xml/rss/module/pingback/";a:2:{s:6:"server";a:1:{i:0;a:5:{s:4:"data";s:32:"http://canaletto.fr/pingback.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:6:"target";a:1:{i:0;a:5:{s:4:"data";s:69:"http://canaletto.fr/post.aspx?id=c9296c49-547e-42ae-b4be-7a9cedd65947";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:38:"http://purl.org/rss/1.0/modules/slash/";a:1:{s:8:"comments";a:1:{i:0;a:5:{s:4:"data";s:2:"14";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:53:"http://madskills.com/public/xml/rss/module/trackback/";a:1:{s:4:"ping";a:1:{i:0;a:5:{s:4:"data";s:73:"http://canaletto.fr/trackback.axd?id=c9296c49-547e-42ae-b4be-7a9cedd65947";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:36:"http://wellformedweb.org/CommentAPI/";a:2:{s:7:"comment";a:1:{i:0;a:5:{s:4:"data";s:66:"http://canaletto.fr/post/home-assistant-zigbee-and-legrand#comment";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:10:"commentRss";a:1:{i:0;a:5:{s:4:"data";s:77:"http://canaletto.fr/syndication.axd?post=c9296c49-547e-42ae-b4be-7a9cedd65947";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}s:45:"http://backend.userland.com/blogChannelModule";a:2:{s:8:"blogRoll";a:1:{i:0;a:5:{s:4:"data";s:28:"http://canaletto.fr/opml.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:5:"blink";a:1:{i:0;a:5:{s:4:"data";s:36:"https://canaletto.fr/syndication.axd";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:2:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:7:"My name";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:12:"My Canaletto";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://www.w3.org/2003/01/geo/wgs84_pos#";a:2:{s:3:"lat";a:1:{i:0;a:5:{s:4:"data";s:8:"0.000000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"long";a:1:{i:0;a:5:{s:4:"data";s:8:"0.000000";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:14:{s:4:"date";s:29:"Mon, 15 Jul 2024 04:54:01 GMT";s:12:"content-type";s:19:"application/rss+xml";s:13:"cache-control";s:6:"public";s:13:"last-modified";s:29:"Thu, 27 Jun 2024 00:47:29 GMT";s:4:"etag";s:22:"W/"638550532490000000"";s:19:"content-disposition";s:24:"inline; filename=rss.xml";s:12:"x-powered-by";s:7:"ASP.NET";s:15:"cf-cache-status";s:7:"DYNAMIC";s:9:"report-to";s:227:"{endpoints:[{url:https:\/\/a.nel.cloudflare.com\/report\/v4?s=KSAgFzPZp8HeG3ANaUNNZ5mUM8G7ZZMzaBxQRqtLYQeGhwaPX%2FDT%2BcOpIfl5pGFwqKVsX3SKsGv1QyhFpbgQxpcZK6qof55D7BFp0gpRTVttdpO6RCTUTLEZ6de4EPE%3D}],group:cf-nel,max_age:604800}";s:3:"nel";s:52:"{success_fraction:0,report_to:cf-nel,max_age:604800}";s:6:"server";s:10:"cloudflare";s:6:"cf-ray";s:20:"8a3726f15fd870ee-MRS";s:16:"content-encoding";s:2:"br";s:7:"alt-svc";s:17:"h3=:443; ma=86400";}s:5:"build";s:14:"20240605153603";s:5:"mtime";i:1721019241;s:3:"md5";s:32:"235bc5d735e5e08631b4d35699747cad";}