{"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\/no\/blog\/news\/lytko-obedinyaet","title":{"rendered":"Lytko kombinerer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>For some time now, we have introduced you to <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474420\/\">a smart thermostat<\/a><\/noindex>. The current article was initially intended as a demonstration of its firmware and control system. However, to explain the logic of the thermostat's operation and what we have implemented, it is necessary to outline the entire concept as a whole.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" 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>About automation<\/h3>\n<p>\nConditionally, all automation can be divided into three categories:<br \/>\n<u>Category 1<\/u> \u2014 individual \u201csmart\u201d devices. You purchase bulbs, kettles, etc., from different manufacturers. Pros: each device expands capabilities and increases comfort. Cons: each new manufacturer requires its own application. The protocols of devices from different manufacturers are often not compatible with each other.<\/p>\n<p><u>Category 2<\/u> \u2014 installing a single-board PC or x86 compatible one. This removes limitations on computing power, and a MajorDoMo or any other server distribution for smart home management is installed on this machine. Thus, devices from most manufacturers connect within a unified information space. That is, a Smart Home Server is created. Pros: compatibility under a single center, which provides expanded control capabilities. Cons: in case of server failure, the entire system reverts to stage 1, i.e., it becomes fragmented or turns useless.<\/p>\n<p><u>Category 3<\/u> \u2014 the most hardcore option. During the renovation stage, all communications are laid out and all systems are duplicated. Pros: everything is perfected, and then the home truly becomes smart. Cons: extremely high cost compared to categories 1 and 2, the necessity to plan everything ahead and take every little detail into account.<\/p>\n<p>Most users choose option one and then gradually transition to option two. Eventually, the most persistent reach option three. <\/p>\n<p>But there is an option that can be called a distributed system: each individual device will be both a server and a client. Essentially, this is an attempt to combine option 1 and option 2, to take all their advantages and eliminate the drawbacks, to find a golden mean. <\/p>\n<p>Kanskje noen vil si at en slik l\u00f8sning allerede er utviklet. Men slike l\u00f8sninger er spesialiserte; for folk med programmeringskunnskap. V\u00e5rt m\u00e5l er \u00e5 senke inngangsbarrieren for slike distribuerte systemer, b\u00e5de n\u00e5r det gjelder sluttbrukerenheter og n\u00e5r det gjelder integrasjonen av eksisterende enheter i systemet v\u00e5rt. N\u00e5r det gjelder termostaten, fjerner brukeren ganske enkelt sin gamle termostat, installerer den smarte, og kobler de eksisterende sensorene til den. Uten ytterligere tiltak.<\/p>\n<p>La oss se p\u00e5 integrasjon i systemet v\u00e5rt med et eksempel. <\/p>\n<p>La oss anta at vi har 8 Sonoff-moduler i nettverket. Noen brukere vil v\u00e6re forn\u00f8yd med styring via Sonoff-skyen (kategori 1). Andre vil bruke tredjeparts firmware og gradvis g\u00e5 over til kategori 2. Hoveddelen av tredjepartsfirmware fungerer etter samme prinsipp: dataoverf\u00f8ring til en MQTT-server. OpenHub, Majordomo eller enhver annen tjener ett m\u00e5l \u2013 \u00e5 samle forskjellige enheter i et enhetlig informasjonsrom, enten p\u00e5 Internett eller i lokalt nettverk. F\u00f8lgelig er tilstedev\u00e6relsen av en server obligatorisk. Her oppst\u00e5r det st\u00f8rste problemet \u2013 ved serverfeil slutter hele systemet \u00e5 fungere autonomt. For \u00e5 forhindre dette, kompliseres systemene, og manuelle kontrollmetoder som dupliserer automatikken legges til i tilfelle serverfeil. <\/p>\n<p>Vi valgte imidlertid en annen tiln\u00e6rming, der hver enhet er selvforsynt. Dermed spiller serveren ikke en avgj\u00f8rende rolle, men utvider bare funksjonaliteten.<\/p>\n<p>La oss g\u00e5 tilbake til tankeksperimentet. La oss igjen ta de samme 8 Sonoff-modulene og installere Lytko-firmware i dem. Alle Lytko-firmwarene har implementert funksjonen <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Simple_Service_Discovery_Protocol\">SSDP<\/a><\/noindex>. SSDP er en nettverksprotokoll basert p\u00e5 et sett med internettprotokoller, som brukes til \u00e5 kunngj\u00f8re og oppdage nettverkstjenester. Svaret p\u00e5 foresp\u00f8rselen kan v\u00e6re b\u00e5de standard og utvidet. Vi har inkludert i dette svaret, i tillegg til standardfunksjoner, opprettelsen av en liste over enheter i nettverket. Dermed finner enhetene hverandre selv, og hver av dem vil ha en slik liste. Eksempel p\u00e5 SSDP-liste:<\/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;termostat&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;termostat&quot;\n\t}<\/code><\/pre>\n<p>\nSom det fremg\u00e5r av eksemplet, inkluderer listen id-ene til enhetene, ip-adressen i nettverket, blokktypen (i v\u00e5rt tilfelle \u2013 en termostat basert p\u00e5 Sonoff). Denne listen oppdateres hver andre minutt (denne tidsrammen er tilstrekkelig for \u00e5 reagere p\u00e5 dynamiske endringer i antallet enheter i nettverket). Dermed kan vi spore tillegg, endringer og frakoblinger av enheter uten noen handling fra brukerens side. Denne listen sendes til nettleseren eller mobilappen, og skriptet lager selv siden med det angitte antallet blokkene. Hver blokk tilsvarer \u00e9n enhet\/sensor\/aktuator. Visuelt ser listen slik ut:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/743abfe57e451aac901db58ed5d81a00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen hva hvis andre radiosensorer er koblet til esp8266\/esp32 via cc2530 (ZigBee) eller nrf24 (MySensors)? <\/p>\n<h3>Om prosjekter<\/h3>\n<p>\nDet finnes ulike distribuerte systemer p\u00e5 markedet. V\u00e5rt system tillater integrasjon med de mest popul\u00e6re. <\/p>\n<p>Nedenfor er prosjekter som, p\u00e5 en eller annen m\u00e5te, pr\u00f8ver \u00e5 endre situasjonen med inkompatibilitet mellom ulike produsenter. Dette inkluderer 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 knyttet til MQTT-serveren, s\u00e5 det passer ikke som eksempel. <\/p>\n<p>En av implementeringsalternativene for MySensors er en gateway basert p\u00e5 ESP8266. De andre eksemplene er basert p\u00e5 ESP32. I dem kan vi integrere v\u00e5r arbeidsmetode for oppdagelse og opprettelse av enhetslisten. <\/p>\n<p>Vi vil utf\u00f8re et tankeeksperiment til. Vi har en gateway ZESP32 eller SLS Gateway, eller MySensors. Hvordan kan vi kombinere dem i et enkelt informasjonssystem? Til de standardfunksjonene til disse gatewayene legger vi til SSDP-protokollbiblioteket. N\u00e5r vi henvender oss til denne kontrolleren via SSDP, vil den i sitt standardrespons legge til listen over enheter som er koblet til den. Basert p\u00e5 denne informasjonen vil nettleseren lage en side. I generell form vil dette se slik ut:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/8fba0ebb6be1ee35db010a819e87425c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nettgrensesnitt<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/627baaf58524b92261c55408479606d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>PWA-applikasjon<\/i><\/p>\n<pre><code class=\"json\">&quot;ssdpList&quot;: \n{\n   &quot;id&quot;: 94967291, \/\/ unik identifikator av enheten\n   &quot;ip&quot;: &quot;192.168.x.x&quot;, \/\/ ip-adresse i nettverket\n   &quot;type&quot;: &quot;termostat&quot; \/\/ typen av enhet\n},\n{\n   &quot;id&quot;: 94967292,\n   &quot;ip&quot;: &quot;192.168.x.x&quot;,\n   &quot;type&quot;: &quot;termostat&quot;\n},\n{\n   &quot;id&quot;: 94967293,\n   &quot;ip&quot;: &quot;192.168.x.x&quot;,\n   &quot;type&quot;: &quot;termostat&quot;\n},\n{  \n   &quot;id&quot;: 13587532, \n   &quot;type&quot;: &quot;bryter&quot;  \n},\n{  \n   &quot;id&quot;: 98412557, \n   &quot;type&quot;: &quot;r\u00f8yk&quot;\n},\n{  \n   &quot;id&quot;: 57995113, \n   &quot;type&quot;: &quot;kontakt_sensor&quot;\n},\n{  \n   &quot;id&quot;: 74123668,\n   &quot;type&quot;: &quot;temperatur_fuktighet_trykk_sensor&quot;\n},\n{\n    &quot;id&quot;: 74621883, \n    &quot;type&quot;: &quot;temperatur_fuktighet_sensor&quot;\n}\n<\/code><\/pre>\n<p>\nFra eksempelet kan vi se at enhetene legges til uavhengig av hverandre. Tre termostater med egne IP-adresser og fem forskjellige sensorer med unike ID-er er koblet til. Hvis sensoren er tilkoblet et Wi-Fi-nettverk, vil den ha sin egen IP, og hvis den er tilkoblet en gateway, vil enhetens IP-adresse v\u00e6re IP-adressen til gatewayen.<\/p>\n<p>Vi bruker WebSocket for kommunikasjon med enhetene. Dette gj\u00f8r at vi kan minimere ressursbruken sammenlignet med GET-foresp\u00f8rslene og motta informasjon dynamisk ved tilkobling eller endring. <\/p>\n<p>Dataene hentes direkte fra den enheten som blokken tilh\u00f8rer, uten \u00e5 g\u00e5 om serveren. Dermed fortsetter systemet \u00e5 fungere selv om noen av enhetene feiler. P\u00e5 webgrensesnittet vil bare den tapte enheten ikke bli vist i listen. Men en varsling om tapet vil komme til brukeren i appen om n\u00f8dvendig. <\/p>\n<p>Den f\u00f8rste fors\u00f8ket p\u00e5 \u00e5 implementere en slik tiln\u00e6rming var en PWA-app. Dette gj\u00f8r at man kan lagre blokkdata p\u00e5 brukerens enhet og bare be om n\u00f8dvendige data. Men p\u00e5 grunn av strukturens s\u00e6rheter er denne varianten utilstrekkelig. L\u00f8sningen er native apper for Android og iOS, som n\u00e5 er under aktiv utvikling. Som standard vil appen bare fungere i det interne nettverket. Om n\u00f8dvendig kan alt overf\u00f8res til ekstern kontroll. Dermed, n\u00e5r brukeren forlater det lokale nettverket, vil appen automatisk bytte til skyen. <\/p>\n<p>Ekstern kontroll er en fullstendig duplisering av siden. N\u00e5r siden aktiveres, kan brukeren logge inn p\u00e5 serveren og styre enhetene gjennom sin brukerkonto. P\u00e5 denne m\u00e5ten utvider serveren funksjonaliteten, slik at man kan kontrollere enhetene fra utsiden av huset, uten \u00e5 v\u00e6re avhengig av portforwarding eller dedikert IP.<\/p>\n<p>Dermed er den ovenfor beskrevne varianten fri for servertiln\u00e6rmingens ulemper og har en rekke fordeler i form av fleksibilitet ved tilkobling av nye enheter.<\/p>\n<h3>Om termostaten<\/h3>\n<p>\nLa oss se p\u00e5 kontrolleringssystemet ved hjelp av v\u00e5rt termostat-eksempel.<\/p>\n<p>Forutsatt:<\/p>\n<ol>\n<li>Regulering av temperaturen for hver termostat (vist som en egen blokk);<\/li>\n<li>Innstilling av timeplan for termostatens drift (morgen, dag, kveld, natt);<\/li>\n<li>Valg av Wi-Fi-nettverk og tilkobling av enheten til det;<\/li>\n<li>Oppdatering av enheten \"over luft\";<\/li>\n<li>Innstilling av MQTT;<\/li>\n<li>Innstilling av nettverket som enheten er koblet til.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/a25f2a8daeabdeba36aa11557eacab0e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI tillegg til styring via webgrensesnittet har vi ogs\u00e5 lagt til den klassiske metoden \u2013 ber\u00f8ringer p\u00e5 skjermen. Den har en Nextion NX3224T024 2,4 tommers skjerm om bord. Valget falt p\u00e5 den p\u00e5 grunn av enkelheten i \u00e5 bruke enheten. Men vi utvikler ogs\u00e5 en egen skjerm basert p\u00e5 STM32. Funksjonaliteten vil ikke v\u00e6re noe mindre enn Nextion, men den vil koste mindre, noe som vil ha en positiv innvirkning p\u00e5 den endelige prisen p\u00e5 enheten.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/ad98f51863dce7cbee1f1ea88891599f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom enhver respektabel termostat-skjerm, kan v\u00e5r Nextion:<\/p>\n<ul>\n<li>stille inn \u00f8nsket temperatur for brukeren (med knappene til h\u00f8yre);<\/li>\n<li>skru av og p\u00e5 driftsmodusen etter timeplan (knapp H);<\/li>\n<li>vise aktiviteten til rel\u00e9et (pil til venstre);<\/li>\n<li>ha barnesikring (fysiske trykk er blokkert inntil l\u00e5sen er fjernet);<\/li>\n<li>vise niv\u00e5et p\u00e5 WiFi-signalet.<\/li>\n<\/ul>\n<p>\nI tillegg kan skjermen:<\/p>\n<ul>\n<li>velge typen sensor som er installert hos brukeren;<\/li>\n<li>kontrollere barnesikringsfunksjonen;<\/li>\n<li>oppdatere programvaren.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/efe3a84ba7e8c95212323ad1370550e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVed \u00e5 klikke p\u00e5 WiFi-baren f\u00e5r brukeren informasjon om det tilkoblede nettverket. QR-koden brukes for \u00e5 pare enheten i HomeKit-firmware.<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/79f55d4872f73a7c03a9f855be8089dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDemo av skjermen i bruk:<\/p>\n<p><img decoding=\"async\" alt=\"Lytko kombinerer\" src=\"\/wp-content\/uploads\/2020\/01\/bf8ed3d7ae06b0364b393fc442e3556b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi har utviklet <noindex><a rel=\"nofollow\" href=\"http:\/\/demo.lytko.com\">en demostrationsside<\/a><\/noindex> med tre tilkoblede termostater.<\/p>\n<p>Du sp\u00f8r: \u201cHva er spesielt med din termostat?\u201d Det finnes mange termostater p\u00e5 markedet med Wi-Fi-funksjon, tidsplanfunksjon og ber\u00f8ringsstyring. Og entusiaster har skrevet moduler for interaksjon med de fleste popul\u00e6re smarthus-systemer (Majordomo, HomeAssistant, osv.). <\/p>\n<p>V\u00e5r termostat er kompatibel med slike systemer og har alle de nevnte funksjonene. Men den unike egenskapen er at termostaten kontinuerlig forbedres, takket v\u00e6re systemets fleksibilitet. Med hver oppdatering vil funksjonaliteten bli utvidet. I tillegg til den standard m\u00e5ten \u00e5 styre systemet p\u00e5 (etter timeplan), vil vi legge til en adaptiv metode. Appen gj\u00f8r det mulig \u00e5 hente brukerens geolokasjon. Takket v\u00e6re dette vil systemet dynamisk endre driftsmoduser avhengig av brukerens plassering. Og v\u00e6rmodulen vil tilpasse seg v\u00e6rforholdene. <\/p>\n<p>Og utvidbarheit. Alle som \u00f8nskjer kan bytte ut den vanlege termostaten sin med v\u00e5r. Med minimal innsats. Vi har valgt 5 av de mest popul\u00e6re sensorane som er tilgjengelege p\u00e5 markedet, og lagt til st\u00f8tte for dei. Men sj\u00f8lv om sensorane har eksklusive spesifikasjonar, kan brukaren koble dei til v\u00e5r termostat. For dette vil det vere n\u00f8dvendig \u00e5 kalibrere termostaten for \u00e5 arbeide med den spesifikke sensoren. Vi vil gi instruksjonar.<\/p>\n<p>N\u00e5r du koplar til termostaten eller ei anna enhet, viser den seg automatisk overalt: b\u00e5de i nettgrensesnittet og i PWA-appen. Legging av enheten skjer automatisk: det er berre \u00e5 koble den til Wi-Fi-nettverket. <\/p>\n<p>Systemet v\u00e5rt treng ikkje ein server, og i tilfelle av eit feilbrytande scenario blir det ikkje til ein gresskar. Sj\u00f8lv om ein av komponentane sviktar, g\u00e5r ikkje systemet over til ein n\u00f8dmodus. Kontrollar, sensorar, enheter \u2014 kvar enkelt del er b\u00e5de server og klient, s\u00e5 det er heilt autonomt. <\/p>\n<p>For dei interesserte \u2014 v\u00e5re sosiale 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 Nyheter<\/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-post: shop@lytko.com<\/p>\n<p><b>P. S.<\/b> Vi oppfordrar ikkje til \u00e5 gi opp serveren. Vi har ogs\u00e5 st\u00f8tte for MQTT-server og har v\u00e5rt eige sky. M\u00e5let v\u00e5rt er \u00e5 heve stabiliteten og p\u00e5litelegheita til systemet til eit kvalitativt nytt niv\u00e5. Slik at serveren ikkje er det svake punktet, men supplerer funksjonaliteten og gjer systemet meir brukervennleg.<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.5 - 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\/no\/blog\/news\/lytko-obedinyaet\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\/no\/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 saman med | ProHoster","description":"For ein tid tilbake presenterte vi den smarte termostaten for deg.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/news\/lytko-obedinyaet","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\/no\/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\/no\/wp-json\/wp\/v2\/posts\/55356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=55356"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/55356\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=55356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=55356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=55356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}