{"id":55356,"date":"2020-01-18T00:00:00","date_gmt":"2020-01-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/lytko-obedinyaet"},"modified":"2020-02-18T14:03:28","modified_gmt":"2020-02-18T11:03:28","slug":"lytko-obedinyaet","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/lytko-obedinyaet","title":{"rendered":"Lytko unit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Il y a quelque temps, nous vous avons pr\u00e9sent\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474420\/\">un thermostat intelligent<\/a><\/noindex>. Cet article \u00e9tait initialement pr\u00e9vu comme une d\u00e9monstration de son firmware et de son syst\u00e8me de gestion. Mais pour expliquer la logique de fonctionnement du thermostat et ce que nous avons mis en \u0153uvre, il est n\u00e9cessaire de d\u00e9crire l'ensemble du concept.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/2cb26fc59fd6708614e52873f2b5fd22.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Concernant l'automatisation<\/h3>\n<p>\nOn peut classer l'automatisation en trois cat\u00e9gories :<br \/>\n<u>Cat\u00e9gorie 1<\/u> \u2014 dispositifs \u00ab intelligents \u00bb individuels. Vous achetez des ampoules, des bouilloires, etc., aupr\u00e8s de diff\u00e9rents fabricants. Avantages : chaque appareil \u00e9tend les fonctionnalit\u00e9s et am\u00e9liore le confort. Inconv\u00e9nients : chaque nouveau fabricant n\u00e9cessite sa propre application. Les protocoles des appareils de diff\u00e9rents fabricants sont souvent incompatibles entre eux.<\/p>\n<p><u>Cat\u00e9gorie 2<\/u> \u2014 installation d'un PC monocarte ou compatible x86. Cela \u00e9limine les limites de puissance de calcul, et sur cette machine, on installe MajorDoMo ou toute autre distribution serveur pour la gestion de la maison intelligente. Ainsi, les dispositifs de la plupart des fabricants se connectent dans un espace d'information unique. C'est-\u00e0-dire qu'un serveur pour la maison intelligente est cr\u00e9\u00e9. Avantages : compatibilit\u00e9 sous un centre unique, ce qui offre des possibilit\u00e9s \u00e9tendues de gestion. Inconv\u00e9nients : en cas de panne du serveur, tout le syst\u00e8me revient \u00e0 l'\u00e9tat 1, c'est-\u00e0-dire qu'il devient disjoint ou inutilisable.<\/p>\n<p><u>Cat\u00e9gorie 3<\/u> \u2014 l'option la plus hardcore. Lors de la r\u00e9novation, toutes les communications sont int\u00e9gr\u00e9es et tous les syst\u00e8mes sont doubl\u00e9s. Avantages : tout est pouss\u00e9 \u00e0 la perfection et la maison devient v\u00e9ritablement intelligente. Inconv\u00e9nients : co\u00fbt extr\u00eame par rapport aux cat\u00e9gories 1 et 2, n\u00e9cessit\u00e9 de tout planifier \u00e0 l'avance et de prendre en compte chaque d\u00e9tail.<\/p>\n<p>La plupart des utilisateurs choisissent l'option un, puis passent progressivement \u00e0 l'option deux. Et finalement, les plus tenaces atteignent l'option 3. <\/p>\n<p>Mais il existe une option que l'on pourrait appeler un syst\u00e8me distribu\u00e9 : chaque appareil sera \u00e0 la fois un serveur et un client. En essence, c'est une tentative de combiner l'option 1 et l'option 2. Prendre tous leurs avantages et exclure les inconv\u00e9nients, trouver le juste milieu. <\/p>\n<p>Certaines personnes pourraient dire qu'une telle option a d\u00e9j\u00e0 \u00e9t\u00e9 d\u00e9velopp\u00e9e. Mais ces solutions sont \u00e9troites; elles s'adressent \u00e0 des personnes ayant des comp\u00e9tences en programmation. Notre objectif est d'abaisser le seuil d'entr\u00e9e dans de tels syst\u00e8mes distribu\u00e9s, tant en termes d'appareils finaux qu'en int\u00e9gration des dispositifs existants dans notre syst\u00e8me. Dans le cas d'un thermostat, l'utilisateur retire simplement son ancien thermostat, installe un intelligent et connecte les capteurs qu'il poss\u00e8de. Sans aucune action suppl\u00e9mentaire.<\/p>\n<p>Consid\u00e9rons l'int\u00e9gration dans notre syst\u00e8me \u00e0 titre d'exemple. <\/p>\n<p>Imaginons que notre r\u00e9seau comporte 8 modules Sonoff. Certains utilisateurs se contenteront d\u2019un contr\u00f4le via le cloud Sonoff (cat\u00e9gorie 1). D'autres utiliseront un firmware tiers et passeront progressivement \u00e0 la cat\u00e9gorie 2. La majorit\u00e9 des firmwares tiers fonctionnent selon le m\u00eame principe : transmission des donn\u00e9es \u00e0 un serveur MQTT. OpenHub, Majordomo ou tout autre service ont un objectif commun : regrouper des appareils disparates dans un espace d'information unifi\u00e9, situ\u00e9 soit sur Internet, soit sur un r\u00e9seau local. Par cons\u00e9quent, la pr\u00e9sence d'un serveur est indispensable. D'o\u00f9 d\u00e9coule le principal probl\u00e8me \u2013 en cas de panne du serveur, tout le syst\u00e8me cesse de fonctionner de mani\u00e8re autonome. Pour \u00e9viter cela, les syst\u00e8mes se complexifient, des m\u00e9thodes de contr\u00f4le manuelles sont ajout\u00e9es pour dupliquer l'automatisation en cas de d\u00e9faillance du serveur. <\/p>\n<p>Nous avons opt\u00e9 pour une autre voie, o\u00f9 chaque appareil est autonome. Ainsi, le serveur ne joue pas un r\u00f4le crucial, mais sert seulement \u00e0 \u00e9largir les fonctionnalit\u00e9s.<\/p>\n<p>Revenons \u00e0 l'exp\u00e9rience de pens\u00e9e. Prenons \u00e0 nouveau ces m\u00eames 8 modules Sonoff et installons-y le firmware Lytko. Toutes les firmwares Lytko comportent la fonction <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Simple_Service_Discovery_Protocol\">SSDP<\/a><\/noindex>. SSDP est un protocole r\u00e9seau bas\u00e9 sur un ensemble de protocoles Internet, servant \u00e0 annoncer et \u00e0 d\u00e9couvrir des services r\u00e9seau. La r\u00e9ponse \u00e0 une requ\u00eate peut \u00eatre standard ou \u00e9tendue. Nous avons int\u00e9gr\u00e9 dans cette r\u00e9ponse, en plus des fonctions standard, la cr\u00e9ation d'une liste des appareils sur le r\u00e9seau. De cette fa\u00e7on, les appareils se d\u00e9couvrent mutuellement, et chacun d'eux disposera d'une telle liste. Exemple de liste SSDP :<\/p>\n<pre><code class=\"json\">&quot;ssdpList&quot;: \n\t{\n\t\t&quot;id&quot;: 94967291,  \n\t\t&quot;ip&quot;: &quot;192.168.x.x&quot;,\n                &quot;type&quot;: &quot;thermostat&quot;\n\t}, \n\t{\n\t\t&quot;id&quot;: 94967282,\n\t\t&quot;ip&quot;: &quot;192.168.x.x&quot;,\n                &quot;type&quot;: &quot;thermostat&quot;\n\t}<\/code><\/pre>\n<p>\nComme indiqu\u00e9 dans l'exemple, la liste comprend les identifiants des appareils, l'adresse IP dans le r\u00e9seau, le type de module (dans notre cas, un thermostat bas\u00e9 sur Sonoff). Cette liste est mise \u00e0 jour toutes les deux minutes (ce d\u00e9lai est suffisant pour r\u00e9agir aux changements dynamiques du nombre d'appareils dans le r\u00e9seau). Ainsi, nous suivons l'ajout, la modification et la d\u00e9sactivation des appareils sans aucune action de l'utilisateur. Cette liste est envoy\u00e9e au navigateur ou \u00e0 l'application mobile, et le script g\u00e9n\u00e8re lui-m\u00eame la page avec le nombre de blocs sp\u00e9cifi\u00e9. Chaque bloc correspond \u00e0 un appareil\/senseur\/contr\u00f4leur. Visuellement, la liste ressemble \u00e0 ceci :<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/743abfe57e451aac901db58ed5d81a00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMais si des capteurs radio suppl\u00e9mentaires sont connect\u00e9s au esp8266\/esp32 via cc2530 (ZigBee) ou nrf24 (MySensors) ? <\/p>\n<h3>\u00c0 propos des projets<\/h3>\n<p>\nDivers syst\u00e8mes distribu\u00e9s sont pr\u00e9sents sur le march\u00e9. Notre syst\u00e8me permet de s'int\u00e9grer avec les plus populaires. <\/p>\n<p>Voici quelques projets qui essaient d'am\u00e9liorer la situation d'incompatibilit\u00e9 entre diff\u00e9rents fabricants. Par exemple, <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/slsys\">SLS Gateway<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/mysensors\">MySensors <\/a><\/noindex> ou <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/zesp32\">ZESP32<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.zigbee2mqtt.io\/\">ZigBee2MQTT <\/a><\/noindex> li\u00e9 \u00e0 un serveur MQTT, il ne convient donc pas comme exemple. <\/p>\n<p>Une des impl\u00e9mentations de MySensors est une passerelle bas\u00e9e sur l'ESP8266. Les autres exemples sont bas\u00e9s sur l'ESP32. Dans ceux-ci, nous pouvons int\u00e9grer notre principe de d\u00e9tection et de cr\u00e9ation de la liste des appareils. <\/p>\n<p>Faisons une autre exp\u00e9rience mentale. Nous avons une passerelle ZESP32 ou SLS Gateway ou MySensors. Comment peut-on les unir dans un espace d'information commun ? Aux fonctions standard de ces passerelles, nous ajouterons une biblioth\u00e8que pour le protocole SSDP. Lorsqu'on interroge ce contr\u00f4leur par SSDP, il ajoutera \u00e0 la r\u00e9ponse standard la liste des appareils qui lui sont connect\u00e9s. Sur la base de ces informations, le navigateur g\u00e9n\u00e9rera la page. En g\u00e9n\u00e9ral, cela ressemblera \u00e0 ceci :<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/8fba0ebb6be1ee35db010a819e87425c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interface web<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/627baaf58524b92261c55408479606d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Application PWA<\/i><\/p>\n<pre><code class=\"json\">&quot;ssdpList&quot;: \n{\n   &quot;id&quot;: 94967291, \/\/ identifiant unique de l'appareil\n   &quot;ip&quot;: &quot;192.168.x.x&quot;, \/\/ adresse IP dans le r\u00e9seau\n   &quot;type&quot;: &quot;thermostat&quot; \/\/ type d'appareil\n},\n{\n   &quot;id&quot;: 94967292,\n   &quot;ip&quot;: &quot;192.168.x.x&quot;,\n   &quot;type&quot;: &quot;thermostat&quot;\n},\n{\n   &quot;id&quot;: 94967293,\n   &quot;ip&quot;: &quot;192.168.x.x&quot;,\n   &quot;type&quot;: &quot;thermostat&quot;\n},\n{  \n   &quot;id&quot;: 13587532, \n   &quot;type&quot;: &quot;switch&quot;  \n},\n{  \n   &quot;id&quot;: 98412557, \n   &quot;type&quot;: &quot;smoke&quot;\n},\n{  \n   &quot;id&quot;: 57995113, \n   &quot;type&quot;: &quot;contact_sensor&quot;\n},\n{  \n   &quot;id&quot;: 74123668,\n   &quot;type&quot;: &quot;temperature_humidity_pressure_sensor&quot;\n},\n{\n    &quot;id&quot;: 74621883, \n    &quot;type&quot;: &quot;temperature_humidity_sensor&quot;\n}\n<\/code><\/pre>\n<p>\nL'exemple montre que les appareils sont ajout\u00e9s ind\u00e9pendamment les uns des autres. Trois thermostats sont connect\u00e9s avec leurs propres adresses IP et cinq capteurs diff\u00e9rents avec des ID uniques. Si un capteur est connect\u00e9 au r\u00e9seau Wi-Fi, il aura sa propre adresse IP ; s'il est connect\u00e9 \u00e0 une passerelle, l'adresse IP de l'appareil sera celle de la passerelle.<\/p>\n<p>Nous utilisons WebSocket pour communiquer avec les appareils. Cela permet de r\u00e9duire au minimum l'utilisation des ressources par rapport aux requ\u00eates GET et d'obtenir des informations dynamiquement lors d'une connexion ou d'un changement. <\/p>\n<p>Les donn\u00e9es sont directement prises de l'appareil auquel appartient le bloc, sans passer par le serveur. Ainsi, en cas de d\u00e9faillance de l'un des appareils, le syst\u00e8me continue de fonctionner. Sur l'interface web, seul l'appareil manquant n'est pas affich\u00e9. Toutefois, un signal de disparition sera envoy\u00e9 sous forme de notification dans l'application de l'utilisateur, si n\u00e9cessaire. <\/p>\n<p>La premi\u00e8re tentative de mise en \u0153uvre de cette approche fut une application PWA. Cela permet de stocker la base des blocs sur l'appareil de l'utilisateur et de ne demander que les donn\u00e9es n\u00e9cessaires. Cependant, en raison des particularit\u00e9s de la structure, cette option est incompl\u00e8te. Il ne reste donc qu'une solution : une application native pour Android et iOS, qui est actuellement en d\u00e9veloppement actif. Par d\u00e9faut, l'application fonctionnera uniquement sur le r\u00e9seau interne. Si n\u00e9cessaire, tout peut \u00eatre transf\u00e9r\u00e9 vers un contr\u00f4le externe. Ainsi, lorsque l'utilisateur quitte le r\u00e9seau local, l'application passe automatiquement au cloud. <\/p>\n<p>Le contr\u00f4le externe consiste en une duplication compl\u00e8te de la page. Lors de l'activation de la page, l'utilisateur peut se connecter au serveur et g\u00e9rer les appareils via son tableau de bord. Ainsi, le serveur \u00e9largit les fonctionnalit\u00e9s, permettant de g\u00e9rer les appareils depuis l'ext\u00e9rieur de la maison et de ne pas \u00eatre li\u00e9 \u00e0 la redirection de ports ou \u00e0 une adresse IP d\u00e9di\u00e9e.<\/p>\n<p>Ainsi, l'option d\u00e9crite ci-dessus est d\u00e9pourvue des inconv\u00e9nients de l'approche serveur et pr\u00e9sente plusieurs avantages en termes de flexibilit\u00e9 pour connecter de nouveaux appareils.<\/p>\n<h3>\u00c0 propos du thermostat<\/h3>\n<p>\nExaminons le syst\u00e8me de gestion \u00e0 travers l'exemple de notre thermostat.<\/p>\n<p>Il est pr\u00e9vu :<\/p>\n<ol>\n<li>R\u00e9gulation de la temp\u00e9rature de chaque thermostat (affich\u00e9e sous la forme d'un bloc s\u00e9par\u00e9) ;<\/li>\n<li>Configuration d'un emploi du temps de fonctionnement du thermostat (matin, jour, soir, nuit) ;<\/li>\n<li>Choix du r\u00e9seau Wi-Fi et connexion de l'appareil \u00e0 celui-ci ;<\/li>\n<li>Mise \u00e0 jour de l'appareil 'par voie a\u00e9rienne' ;<\/li>\n<li>Configuration de MQTT ;<\/li>\n<li>Configuration du r\u00e9seau auquel l'appareil est connect\u00e9.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/a25f2a8daeabdeba36aa11557eacab0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn plus de la gestion via une interface web, nous avons pr\u00e9vu un contr\u00f4le classique \u2014 par des pressions sur l'\u00e9cran. Il est \u00e9quip\u00e9 d'un \u00e9cran Nextion NX3224T024 de 2,4 pouces. Nous avons choisi celui-ci en raison de la facilit\u00e9 d'utilisation de l'appareil. Cependant, un \u00e9cran bas\u00e9 sur STM32 est en cours de d\u00e9veloppement. Ses fonctionnalit\u00e9s ne sont pas inf\u00e9rieures \u00e0 celles du Nextion, mais son co\u00fbt sera moins \u00e9lev\u00e9, ce qui aura un impact positif sur le prix final de l'appareil.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/ad98f51863dce7cbee1f1ea88891599f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nComme tout \u00e9cran de thermostat respectueux, notre Nextion sait :<\/p>\n<ul>\n<li>r\u00e9gler la temp\u00e9rature souhait\u00e9e par l'utilisateur (avec les boutons de droite);<\/li>\n<li>activer et d\u00e9sactiver le mode de fonctionnement selon un emploi du temps (bouton N);<\/li>\n<li>afficher le fonctionnement du relais (fl\u00e8che \u00e0 gauche);<\/li>\n<li>avoir une protection pour enfants (les pressions physiques sont bloqu\u00e9es tant que le verrou n'est pas d\u00e9sactiv\u00e9);<\/li>\n<li>afficher le niveau du signal WiFi.<\/li>\n<\/ul>\n<p>\nDe plus, gr\u00e2ce \u00e0 l'\u00e9cran, on peut :<\/p>\n<ul>\n<li>choisir le type de capteur install\u00e9 par l'utilisateur;<\/li>\n<li>g\u00e9rer la fonction de protection pour enfants;<\/li>\n<li>mettre \u00e0 jour le firmware.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/efe3a84ba7e8c95212323ad1370550e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn cliquant sur la barre WiFi, l'utilisateur peut obtenir des informations sur le r\u00e9seau connect\u00e9. Le code QR est utilis\u00e9 pour appairer l'appareil dans le firmware HomeKit.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/79f55d4872f73a7c03a9f855be8089dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nD\u00e9monstration de fonctionnement avec l'\u00e9cran :<\/p>\n<p><img decoding=\"async\" alt=\"Lytko unit\" src=\"\/wp-content\/uploads\/2020\/01\/bf8ed3d7ae06b0364b393fc442e3556b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNous avons d\u00e9velopp\u00e9 <noindex><a rel=\"nofollow\" href=\"http:\/\/demo.lytko.com\">une page de d\u00e9monstration<\/a><\/noindex> avec trois thermostats connect\u00e9s.<\/p>\n<p>Vous vous demandez : \u00ab Quelle est la particularit\u00e9 de votre thermostat ? \u00bb Actuellement, il existe de nombreux thermostats sur le march\u00e9 avec fonction Wi-Fi, fonctionnement selon un emploi du temps, et contr\u00f4le tactile. Et des passionn\u00e9s ont d\u00e9velopp\u00e9 des modules pour interagir avec la plupart des syst\u00e8mes de maison intelligente populaires (Majordomo, HomeAssistant, etc.). <\/p>\n<p>Notre thermostat est compatible avec ces syst\u00e8mes et poss\u00e8de toutes les fonctionnalit\u00e9s \u00e9nonc\u00e9es ci-dessus. Mais la particularit\u00e9 est que le thermostat est constamment am\u00e9lior\u00e9, gr\u00e2ce \u00e0 la flexibilit\u00e9 du syst\u00e8me. Avec chaque mise \u00e0 jour, les fonctionnalit\u00e9s seront \u00e9largies. Au mode de contr\u00f4le standard (selon un emploi du temps), nous ajouterons un mode adaptatif. L'application permet d'obtenir la g\u00e9olocalisation de l'utilisateur. Gr\u00e2ce \u00e0 cela, le syst\u00e8me changera dynamiquement les modes de fonctionnement en fonction de sa position. Et le module m\u00e9t\u00e9o permettra de s'adapter aux conditions m\u00e9t\u00e9orologiques. <\/p>\n<p>Et l'\u00e9volutivit\u00e9. Quiconque peut remplacer le thermostat standard qu'il a par le n\u00f4tre, avec un minimum d'efforts. Nous avons s\u00e9lectionn\u00e9 5 capteurs parmi les plus populaires sur le march\u00e9 et ajout\u00e9 leur prise en charge. Mais m\u00eame en cas de caract\u00e9ristiques exclusives du capteur, l'utilisateur peut le connecter \u00e0 notre thermostat. Pour cela, il sera n\u00e9cessaire de calibrer le thermostat pour fonctionner avec le capteur sp\u00e9cifique. Nous fournirons les instructions.<\/p>\n<p>En connectant le thermostat ou tout autre appareil, il appara\u00eet simultan\u00e9ment partout : dans l'interface web et dans l'application PWA. L'ajout de l'appareil se fait automatiquement : il suffit de le connecter au r\u00e9seau Wi-Fi. <\/p>\n<p>Notre syst\u00e8me n'a pas besoin de serveur, et en cas de d\u00e9faillance, il ne se transforme pas en citrouille. M\u00eame en cas de d\u00e9faillance d'un des composants, le syst\u00e8me ne commence pas \u00e0 fonctionner en mode d'urgence. Les contr\u00f4leurs, capteurs, dispositifs \u2014 chaque \u00e9l\u00e9ment est \u00e0 la fois un serveur et un client, et par cons\u00e9quent compl\u00e8tement autonome. <\/p>\n<p>Pour ceux qui s'int\u00e9ressent \u2014 nos r\u00e9seaux sociaux : <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/LytkoG\">Telegram<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.instagram.com\/lytko_shop\">Instagram<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/lytko_news\">Nouvelles Telegram<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/lytko_shop\">VK<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/groups\/2055755264635934\">Facebook<\/a><\/noindex>.<\/p>\n<p>Email : shop@lytko.com<\/p>\n<p><b>P. S.<\/b> Nous n'encourageons pas \u00e0 renoncer au serveur. Nous avons \u00e9galement un support pour un serveur MQTT et un cloud propre. Notre objectif est d'\u00e9lever la stabilit\u00e9 et la fiabilit\u00e9 du syst\u00e8me \u00e0 un niveau qualitativement sup\u00e9rieur. Pour que le serveur ne soit pas le point faible, mais compl\u00e8te les fonctionnalit\u00e9s et rende le syst\u00e8me plus pratique.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/484296\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0412\u0430\u043c \u0443\u043c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442. \u041d\u044b\u043d\u0435\u0448\u043d\u044f\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0435\u0433\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442\u0430 \u0438 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u0432 \u0446\u0435\u043b\u043e\u043c. \u041f\u0440\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0423\u0441\u043b\u043e\u0432\u043d\u043e, \u0432\u0441\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0442\u0440\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438: \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f 1 \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u201c\u0443\u043c\u043d\u044b\u0435\u201d \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55356","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0412\u0430\u043c \u0443\u043c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/lytko-obedinyaet\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Lytko \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0412\u0430\u043c \u0443\u043c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/lytko-obedinyaet\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lytko s'unit | ProHoster","description":"Il y a quelque temps, nous vous avons pr\u00e9sent\u00e9 notre thermostat intelligent.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/lytko-obedinyaet","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Lytko \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 | ProHoster","og:description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0412\u0430\u043c \u0443\u043c\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u043e\u0441\u0442\u0430\u0442.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/lytko-obedinyaet","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-17T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55356","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:45:29","updated":"2022-10-02 15:29:28","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/55356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=55356"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/55356\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=55356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=55356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=55356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}