{"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\/da\/blog\/news\/lytko-obedinyaet","title":{"rendered":"Lytko forener","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>For nogle tid siden pr\u00e6senterede vi for dig <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474420\/\">den smarte termostat<\/a><\/noindex>. Denne artikel var oprindeligt t\u00e6nkt som en demonstration af dens firmware og styringssystem. Men for at forklare logikken bag termostatens funktion og hvad vi har implementeret, er det n\u00f8dvendigt at skitsere hele konceptet som helhed.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" 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>Om automatisering<\/h3>\n<p>\nGenerelt kan al automatisering opdeles i tre kategorier:<br \/>\n<u>Kategori 1<\/u> \u2014 enkeltst\u00e5ende \"smarte\" enheder. Du k\u00f8ber p\u00e6rer, kedler osv. fra forskellige producenter. Fordele: hver enhed udvider funktionerne og \u00f8ger komforten. Ulemper: for hver ny producent kr\u00e6ves der sin app. Protokoller for enheder fra forskellige producenter er ofte ikke kompatible med hinanden.<\/p>\n<p><u>Kategori 2<\/u> \u2014 installation af en enkelt board PC eller x86 kompatibel enhed. Dette fjerner begr\u00e6nsningerne for beregningskraft, og p\u00e5 denne maskine installeres MajorDoMo eller en anden serverdistribution til styring af det smarte hjem. P\u00e5 denne m\u00e5de forbindes enheder fra de fleste producenter i et samlet informationsrum. Dvs. der oprettes en egen Server for det smarte hjem. Fordele: kompatibilitet under et centralt system, hvilket giver udvidede muligheder for styring. Ulemper: ved serverfejl falder hele systemet tilbage til fase 1, dvs. det bliver fragmenteret eller bliver ubrugeligt.<\/p>\n<p><u>Kategori 3<\/u> \u2014 den mest hardcore mulighed. I renoveringsfasen l\u00e6gges alle kommunikationer, og alle systemer duplikeres. Fordele: alt bliver gjort til perfektion, og s\u00e5 bliver hjemmet virkelig smart. Ulemper: ekstremt h\u00f8j pris sammenlignet med kategorierne 1 og 2, behovet for at planl\u00e6gge alt p\u00e5 forh\u00e5nd og tage h\u00f8jde for hver lille detalje.<\/p>\n<p>De fleste brugere v\u00e6lger mulighed et og overgang til mulighed to. Og senere n\u00e5r de mest vedholdende op til mulighed tre. <\/p>\n<p>Men der findes en mulighed, som man kan kalde et distribueret system: hver enkelt enhed vil v\u00e6re b\u00e5de server og klient. I bund og grund er dette et fors\u00f8g p\u00e5 at kombinere mulighed 1 og mulighed 2. At tage alle deres fordele og udelukke ulemperne, finde den gyldne middelvej. <\/p>\n<p>Nogle vil m\u00e5ske sige, at en s\u00e5dan l\u00f8sning allerede findes. Men s\u00e5danne l\u00f8sninger er sn\u00e6vert fokuserede; for dem, der har programmeringskendskab. Vores m\u00e5l er at s\u00e6nke indgangen til s\u00e5danne distribuerede systemer b\u00e5de i form af slutbrugerenheder og ved at integrere eksisterende enheder i vores system. I tilf\u00e6lde af termostaten fjerner brugeren blot sin gamle termostat, installerer en smart enhed, og tilslutter sine eksisterende sensorer til den. Uden nogen yderligere handlinger.<\/p>\n<p>Lad os overveje integrationen i vores system ved hj\u00e6lp af et eksempel. <\/p>\n<p>Forestil dig, at vi har 8 Sonoff-moduler i vores netv\u00e6rk. Nogle brugere vil v\u00e6re tilfredse med at styre gennem Sonoff-cloud (kategori 1). Nogle vil begynde at bruge tredjepartsfirmware og gradvist skifte til kategori 2. De fleste tredjepartsfirmwares fungerer efter det samme princip: overf\u00f8rsel af data til en MQTT-server. OpenHub, Majordomo eller enhver anden server tjener et form\u00e5l \u2013 at samle disparate enheder i et samlet informationsrum, der er placeret enten p\u00e5 internettet eller i et lokalt netv\u00e6rk. Derfor er tilstedev\u00e6relsen af en Server n\u00f8dvendig. Her opst\u00e5r hovedproblemet \u2013 n\u00e5r Serveren svigter, stopper hele systemet med at fungere autonomt. For at forhindre dette bliver systemerne mere komplekse, og der tilf\u00f8jes manuelle kontrolmetoder, der duplicerer automatikken i tilf\u00e6lde af Serverfejl. <\/p>\n<p>Vi har dog valgt en anden vej, hvor hver enhed er selvforsynende. P\u00e5 denne m\u00e5de spiller Serveren ikke en afg\u00f8rende rolle, men udvider blot funktionaliteten.<\/p>\n<p>Lad os vende tilbage til tankeeksperimentet. Lad os igen tage de samme 8 Sonoff-moduler og installere Lytko-firmware i dem. I alle Lytko-firmwares er funktionen implementeret <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Simple_Service_Discovery_Protocol\">SSDP<\/a><\/noindex>. SSDP \u2013 en netv\u00e6rksprotokol, der er baseret p\u00e5 et s\u00e6t internetprotokoller, der bruges til at annoncere og opdage netv\u00e6rkstjenester. Svaret p\u00e5 foresp\u00f8rgslen kan v\u00e6re b\u00e5de standard og udvidet. Vi har lagt, at dette svar, ud over standardfunktioner, ogs\u00e5 indeholder en liste over enheder i netv\u00e6rket. P\u00e5 den m\u00e5de finder enhederne selv hinanden, og hver af dem vil have en s\u00e5dan liste. Eksempel p\u00e5 SSDP-liste:<\/p>\n<pre><code class=\"json\">\"ssdpList\": \n\t{\n\t\t\"id\": 94967291,  \n\t\t\"ip\": \"192.168.x.x\",\n                \"type\": \"termostat\"\n\t}, \n\t{\n\t\t\"id\": 94967282,\n\t\t\"ip\": \"192.168.x.x\",\n                \"type\": \"termostat\"\n\t}<\/code><\/pre>\n<p>\nSom det fremg\u00e5r af eksemplet, inkluderer listen id'er for enheder, ip-adressen i netv\u00e6rket, enhedstypen (i vores tilf\u00e6lde en thermostat baseret p\u00e5 Sonoff). Denne liste opdateres hvert andet minut (denne tidsramme er tilstr\u00e6kkelig til at reagere p\u00e5 dynamiske \u00e6ndringer i antallet af enheder i netv\u00e6rket). P\u00e5 den m\u00e5de overv\u00e5ger vi tilf\u00f8jelsen, \u00e6ndringen og frakoblingen af enheder uden nogen handling fra brugerens side. Listen sendes til browseren eller mobilappen, og scriptet opretter automatisk en side med det angivne antal blokke. Hver blok svarer til en enhed\/sensor\/kontroller. Visuelt ser listen s\u00e5ledes ud:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/743abfe57e451aac901db58ed5d81a00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen hvis andre radiosensorer er tilsluttet esp8266\/esp32 via cc2530 (ZigBee) eller nrf24 (MySensors)? <\/p>\n<h3>Om projekterne<\/h3>\n<p>\nP\u00e5 markedet findes der forskellige distribuerede systemer. Vores system g\u00f8r det muligt at integrere med de mest popul\u00e6re. <\/p>\n<p>Nedenfor er projekter, der p\u00e5 en eller anden m\u00e5de fors\u00f8ger at \u00e6ndre situationen med inkompatibilitet mellem forskellige producenter. Det er for eksempel: <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> eller <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/zesp32\">ZESP32<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.zigbee2mqtt.io\/\">ZigBee2MQTT <\/a><\/noindex> er bundet til MQTT-serveren, s\u00e5 det passer ikke til eksemplet. <\/p>\n<p>En af m\u00e5derne at implementere MySensors p\u00e5 er en gateway baseret p\u00e5 ESP8266. De \u00f8vrige eksempler er p\u00e5 ESP32. Og i dem kan vi implementere vores arbejdsprincips metode til detektering og oprettelse af en liste over enheder. <\/p>\n<p>Lad os foretage endnu et tankeeksperiment. Vi har ZESP32, SLS Gateway eller MySensors. Hvordan kan vi samle dem i et samlet informationsrum? Til standardfunktionerne i disse gateways tilf\u00f8jer vi SSDP-protokolbiblioteket. N\u00e5r der anmodes om denne controller via SSDP, tilf\u00f8jer den en liste over de enheder, der er tilsluttet den, til det standardm\u00e6ssige svar. Baseret p\u00e5 disse oplysninger vil browseren oprette en side. Generelt vil det se s\u00e5dan ud:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/8fba0ebb6be1ee35db010a819e87425c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Web-interface<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/627baaf58524b92261c55408479606d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>PWA-applikation<\/i><\/p>\n<pre><code class=\"json\">\"ssdpList\": \n{\n   \"id\": 94967291, \/\/ unik identifikator for enheden\n   \"ip\": \"192.168.x.x\", \/\/ ip-adresse i netv\u00e6rket\n   \"type\": \"termostat\" \/\/ enhedstype\n},\n{\n   \"id\": 94967292,\n   \"ip\": \"192.168.x.x\",\n   \"type\": \"termostat\"\n},\n{\n   \"id\": 94967293,\n   \"ip\": \"192.168.x.x\",\n   \"type\": \"termostat\"\n},\n{  \n   \"id\": 13587532, \n   \"type\": \"switch\"  \n},\n{  \n   \"id\": 98412557, \n   \"type\": \"r\u00f8g\"\n},\n{  \n   \"id\": 57995113, \n   \"type\": \"kontakt_sensor\"\n},\n{  \n   \"id\": 74123668,\n   \"type\": \"temperatur_fugtighed_tryksensor\"\n},\n{\n    \"id\": 74621883, \n    \"type\": \"temperatur_fugtighed_sensor\"\n}\n<\/code><\/pre>\n<p>\nEksemplet viser, at enheder tilf\u00f8jes uafh\u00e6ngigt af hinanden. Der er tilsluttet 3 termostater med deres egne IP-adresser og 5 forskellige sensorer med unikke id'er. Hvis sensoren er tilsluttet et Wi-Fi-netv\u00e6rk, vil den have sin egen IP, og hvis den er tilsluttet en gateway, vil enhedens IP-adresse v\u00e6re gatewayens IP-adresse.<\/p>\n<p>Vi anvender WebSocket til kommunikation med enhederne. Dette minimerer ressourceomkostningerne i forhold til GET-anmodninger og muligg\u00f8r dynamisk modtagelse af information ved tilslutning eller \u00e6ndring. <\/p>\n<p>Dataene hentes direkte fra den enhed, som blokken tilh\u00f8rer, uden at g\u00e5 gennem serveren. Dermed forts\u00e6tter systemet med at fungere, selv hvis en enhed svigter. Den webbaserede gr\u00e6nseflade viser kun ikke det enhed, der er forsvundet fra listen. Men meddelelser om tab vil, hvis n\u00f8dvendigt, komme som en notifikation i brugerens applikation. <\/p>\n<p>Det f\u00f8rste fors\u00f8g p\u00e5 at implementere en s\u00e5dan tilgang var en PWA-applikation. Dette muligg\u00f8r opbevaring af databasen af blokke p\u00e5 brugerens enhed og kun anmode om n\u00f8dvendige data. Men p\u00e5 grund af strukturens s\u00e6regenheder er denne mulighed utilstr\u00e6kkelig. Den eneste l\u00f8sning er native apps til Android og IOS, som i \u00f8jeblikket er under aktiv udvikling. Som standard vil appen kun fungere i det interne netv\u00e6rk. Hvis n\u00f8dvendigt kan alt skiftes til ekstern kontrol. N\u00e5r brugeren forlader det lokale netv\u00e6rk, skifter appen automatisk til skyen. <\/p>\n<p>Den eksterne kontrol er en fuld duplication af siden. N\u00e5r siden aktiveres, kan brugeren logge ind p\u00e5 serveren og styre enhederne via sin personlige konto. Derved udvider serveren funktionaliteten, hvilket g\u00f8r det muligt at styre enhederne uden for hjemmet og ikke v\u00e6re bundet til port forwarding eller dedikeret IP.<\/p>\n<p>Dermed er den ovenfor beskrevne mulighed fri for serverens ulemper og har ogs\u00e5 en r\u00e6kke fordele i form af fleksibilitet i tilslutning af nye enheder.<\/p>\n<h3>Om termostaten<\/h3>\n<p>\nLad os se p\u00e5 et eksempel p\u00e5 vores termostat.<\/p>\n<p>Beregnet til:<\/p>\n<ol>\n<li>Regulering af temperaturen for hver termostat (vises som en separat blok);<\/li>\n<li>Indstilling af tidsplan for termostatens drift (morgen, dag, aften, nat);<\/li>\n<li>Valg af Wi-Fi-netv\u00e6rk og tilslutning af enheden dertil;<\/li>\n<li>Opdatering af enheden \"over luften\";<\/li>\n<li>Indstilling af MQTT;<\/li>\n<li>Ops\u00e6tning af netv\u00e6rket, som enheden er tilsluttet.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/a25f2a8daeabdeba36aa11557eacab0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUdover at styre via webgr\u00e6nsefladen er der ogs\u00e5 klassisk betjening \u2014 ved tryk p\u00e5 sk\u00e6rmen. Der er monteret en Nextion NX3224T024 2,4 tommer sk\u00e6rm. Valget faldt p\u00e5 den p\u00e5 grund af den enkle betjening af enheden. Derudover er der en egen monitor under udvikling baseret p\u00e5 STM32. Dens funktionalitet er ikke ringere end Nextion, men den vil v\u00e6re billigere, hvilket vil have en positiv indvirkning p\u00e5 den endelige pris for enheden.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/ad98f51863dce7cbee1f1ea88891599f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom enhver respektabel termostat-sk\u00e6rm kan vores Nextion:<\/p>\n<ul>\n<li>indstille den \u00f8nskede temperatur til brugeren (ved knapperne til h\u00f8jre);<\/li>\n<li>t\u00e6nde og slukke for driftsmode i henhold til skemaet (N-knappen);<\/li>\n<li>vise rel\u00e6ets aktivitet (pil til venstre);<\/li>\n<li>have b\u00f8rnesikring (fysiske tryk er blokeret, s\u00e5 l\u00e6nge l\u00e5sen ikke er deaktiveret);<\/li>\n<li>vise WiFi-signalkvalitet.<\/li>\n<\/ul>\n<p>\nDerudover kan monitoret:<\/p>\n<ul>\n<li>v\u00e6lge typen af den installerede sensor for brugeren;<\/li>\n<li>styre b\u00f8rnesikringsfunktionen;<\/li>\n<li>opdatere firmware.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/efe3a84ba7e8c95212323ad1370550e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVed at klikke p\u00e5 WiFi-baren kan brugeren f\u00e5 oplysninger om det tilsluttede netv\u00e6rk. QR-koden bruges til at parre enheden i HomeKit-firmware.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/79f55d4872f73a7c03a9f855be8089dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDemo-arbejde med sk\u00e6rmen:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko forener\" src=\"\/wp-content\/uploads\/2020\/01\/bf8ed3d7ae06b0364b393fc442e3556b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi har udviklet <noindex><a rel=\"nofollow\" href=\"http:\/\/demo.lytko.com\">en demo-side<\/a><\/noindex> med tre tilsluttede termostater.<\/p>\n<p>Du sp\u00f8rger: \u201cHvad er s\u00e6rligt ved din termostat?\u201d Der er mange termostater p\u00e5 markedet med Wi-Fi-funktion, tidsplanstyring, touch-betjening. Entusiaster har skrevet moduler til interaktion med de fleste popul\u00e6re smarte hussystemer (Majordomo, HomeAssistant osv.). <\/p>\n<p>Vores termostat er kompatibel med s\u00e5danne systemer og har alle de n\u00e6vnte funktioner. Men det, der adskiller sig, er, at termostaten konstant opdateres takket v\u00e6re systemets fleksibilitet. Med hver opdatering vil funktionaliteten blive udvidet. Ud over den standard m\u00e5de at styre systemet p\u00e5 (if\u00f8lge tidsplanen) vil vi tilf\u00f8je en adaptiv m\u00e5de. Appen g\u00f8r det muligt at f\u00e5 brugerens geolocation. Takket v\u00e6re dette vil systemet dynamisk \u00e6ndre driftsmoduser afh\u00e6ngigt af brugerens placering. Og vejrmodulet sikrer tilpasning til vejrforholdene. <\/p>\n<p>Og skalerbarhed. Enhver, der \u00f8nsker det, kan nemt erstatte den installerede almindelige termostat med vores. Med minimale anstrengelser. Vi har valgt 5 af de mest popul\u00e6re sensorer p\u00e5 markedet og tilf\u00f8jet deres underst\u00f8ttelse. Men selv i tilf\u00e6lde af eksklusive sensorfunktioner kan brugeren tilslutte den til vores termostat. For dette skal termostaten kalibreres til at arbejde med den specifikke sensor. Vi leverer instruktioner.<\/p>\n<p>N\u00e5r du tilslutter termostaten eller en anden enhed, vises den automatisk overalt: b\u00e5de i webgr\u00e6nsefladen og i PWA-applikationen. Tilf\u00f8jelsen af enheden sker automatisk: det er nok kun at tilslutte den til Wi-Fi-netv\u00e6rket. <\/p>\n<p>Vores system har ikke brug for en server, og i tilf\u00e6lde af serverfejl forvandler det sig ikke til en gr\u00e6sk punk. Selv ved fejl p\u00e5 en af komponenterne begynder systemet ikke at arbejde efter en n\u00f8dscenarie. Controllere, sensorer, enheder \u2014 hvert element er b\u00e5de server og klient, og derfor helt autonomt. <\/p>\n<p>For de interesserede \u2014 vores sociale medier: <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\">Telegram Nyheder<\/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>E-mail: shop@lytko.com<\/p>\n<p><b>P. S.<\/b> Vi opfordrer ikke til at opgive serveren. Vi har ogs\u00e5 st\u00f8tte til MQTT-servere og har vores eget cloud. Vores m\u00e5l er at bringe stabiliteten og p\u00e5lideligheden af systemet til et kvalitetsniveau. S\u00e5 serveren ikke bliver det svage punkt, men supplerer funktionaliteten og g\u00f8r systemet mere brugervenligt.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/news\/lytko-obedinyaet\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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 kombinerer | ProHoster","description":"For nogen tid siden pr\u00e6senterede vi den smarte termostat for dig.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/lytko-obedinyaet","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/55356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=55356"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/55356\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=55356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=55356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=55356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}