{"id":37407,"date":"2019-10-31T22:17:29","date_gmt":"2019-10-31T19:17:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\/"},"modified":"2019-10-31T22:17:29","modified_gmt":"2019-10-31T19:17:29","slug":"esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","title":{"rendered":"Esp8266 control over the internet via MQTT protocol.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Esp8266 control over the internet via MQTT protocol.\" src=\"\/wp-content\/uploads\/2019\/08\/f2625ae58efb259417096af88f094e54.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n Hello everyone! This article will provide a detailed explanation and demonstration of how to set up remote control of the ESP8266 module using an Android application via the MQTT protocol in just 20 minutes of free time.<\/p>\n<p> The idea of remote control and monitoring has always fascinated those passionate about electronics and programming. The ability to receive or send necessary data at any time, regardless of location, offers vast possibilities. In my previous articles ( <noindex><a rel=\"nofollow\" href=\"https:\/\/geektimes.ru\/post\/255546\/\">Article 1<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/geektimes.ru\/post\/258504\/\">Article 2<\/a><\/noindex>) I attempted to explore several accessible and relatively simple options for implementing remote control of microcontrollers over the internet. However, time and the world never stand still \u2013 progress continues its relentless march forward. In this short time, the ESP8266 module has gained wide popularity thanks to its low cost and built-in Wi-Fi, becoming one of the key components of the \u201cSmart Home.\u201d<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCurrently, MQTT is the leading and most popular protocol for data transmission between individual devices within \u201cSmart Home\u201d systems. It has several advantages over other protocols:<br \/>\n \u2014 low traffic consumption;<br \/>\n \u2014 the connection between client and server is always open;<br \/>\n \u2014 it does not overload the internet channel;<br \/>\n \u2014 no delays in data transmission;<br \/>\n \u2014 a convenient subscription system for topics;<br \/>\n All of this allows for real-time monitoring and control. However, MQTT requires its own server, which acts as a mediator between clients on the network. There are two options: either create your own server or use third-party services.<\/p>\n<p>The mentioned management system consists of two main parts: the MQTT server (which is usually one) and clients, which can be quite numerous. In our case, the clients will be the Android application and the ESP8266 module itself.<\/p>\n<p>The system works as follows. Clients connect to the server, and immediately after connecting, each subscribes to their relevant topics. All communication between clients passes transitively through the server, which redirects data to other clients based on their subscriptions.<\/p>\n<p><b>MQTT server. <\/b><\/p>\n<p>In our case, we will use a highly convenient service <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex> that has a free tariff plan (Cute Cat), which will fully cover the requirements for implementing a small smart home system.<br \/>\n<img decoding=\"async\" alt=\"Esp8266 control over the internet via MQTT protocol.\" src=\"\/wp-content\/uploads\/2019\/08\/4dc16e68af75fb268a7a77b04b76d0d1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n We will register on the website and obtain the necessary data for accessing the server. When configuring clients, you need to use the usual port (without SSL and TLS).<br \/>\n<img decoding=\"async\" alt=\"Esp8266 control over the internet via MQTT protocol.\" src=\"\/wp-content\/uploads\/2019\/08\/48655ceaaffd45dd414300dd03b7fb09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>The application on Android.<\/b><\/p>\n<p>Our application will act as a remote control for the microcontroller and will also receive and display all information from the esp8266.<\/p>\n<p>The application is called <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&amp;hl=ru\">IoT MQTT Dashboard<\/a><\/noindex> and is a ready-made mqtt client with a small number of very convenient widgets. You can find more details about working with the application in the video.<\/p>\n<p><b>Esp8266.<\/b><\/p>\n<p>The module is programmed in the Arduino programming environment, but I want to note that the module has firmware issues in the latest versions of Arduino, so I recommend using version 1.6.4.<br \/>\nAs an example, an LED (pin 5) and a DS18B20 temperature sensor (pin 2) are connected to the esp8266.<br \/>\nSince it is necessary to receive data to control the LED, the esp should subscribe to the corresponding topic \"test\/led\" after connection, otherwise all sent data will bypass our microcontroller.<br \/>\nTo send temperature data, subscription is not needed, but when transmitting temperature values, you must specify the topic to which this data will go.<\/p>\n<p>Below is a sketch with detailed comments.<\/p>\n<p><b class=\"spoiler_title\">Sketch Esp8266_mqtt.ino<\/b><code>\/\/ \u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043f\u043e\u0434\u043b\u043a\u044e\u0447\u0435\u043d \u043a 5 \u043f\u0438\u043d\u0443<br \/>\n\/\/ \u0414\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b ds18b20 \u043a 2 \u043f\u0438\u043d\u0443<\/p>\n<p>#include &lt;ESP8266WiFi.h&gt;<br \/>\n#include &lt;PubSubClient.h&gt;<br \/>\n#include &lt;OneWire.h&gt;<br \/>\n#include &lt;DallasTemperature.h&gt;<\/p>\n<p>#define ONE_WIRE_BUS 2<br \/>\nOneWire oneWire(ONE_WIRE_BUS);<br \/>\nDallasTemperature sensors(&amp;oneWire);<\/p>\n<p>const char *ssid = \"AIRPORT\"; \/\/ Name of the WiFi access point<br \/>\nconst char *pass = \"PASSWORD\"; \/\/ Password for the access point<\/p>\n<p>const char *mqtt_server = \"server\"; \/\/ Name of the MQTT server<br \/>\nconst int mqtt_port = 11140; \/\/ Port for connecting to the MQTT server<br \/>\nconst char *mqtt_user = \"Login\"; \/\/ Login for the server<br \/>\nconst char *mqtt_pass = \"Pass\"; \/\/ Password for the server<\/p>\n<p>#define BUFFER_SIZE 100<\/p>\n<p>bool LedState = false;<br \/>\nint tm=300;<br \/>\nfloat temp=0;<\/p>\n<p>\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<p>void callback(const MQTT::Publish&amp; pub)<br \/>\n{<br \/>\n Serial.print(pub.topic()); \/\/ output the topic name to the serial port<br \/>\n Serial.print(\" =&gt; \");<br \/>\n Serial.print(pub.payload_string()); \/\/ output the received data value to the serial port<\/p>\n<p> String payload = pub.payload_string();<\/p>\n<p> if(String(pub.topic()) == \"test\/led\") \/\/ checking if data came from the required topic <br \/>\n {<br \/>\n int stled = payload.toInt(); \/\/ convert the received data to integer type<br \/>\n digitalWrite(5,stled); \/\/ turn the LED on or off depending on the received data values<br \/>\n }<br \/>\n}<\/p>\n<p>WiFiClient wclient; <br \/>\nPubSubClient client(wclient, mqtt_server, mqtt_port);<\/p>\n<p>void setup() {<\/p>\n<p> sensors.begin();<br \/>\n Serial.begin(115200);<br \/>\n delay(10);<br \/>\n Serial.println();<br \/>\n Serial.println();<br \/>\n pinMode(5, OUTPUT);<br \/>\n}<\/p>\n<p>void loop() {<br \/>\n \/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a wi-fi<br \/>\n if (WiFi.status() != WL_CONNECTED) {<br \/>\n Serial.print(\"Connecting to \");<br \/>\n Serial.print(ssid);<br \/>\n Serial.println(\"...\");<br \/>\n WiFi.begin(ssid, pass);<\/p>\n<p>if (WiFi.waitForConnectResult() != WL_CONNECTED)<br \/>\n return;<br \/>\n Serial.println(\"WiFi connected\");<br \/>\n }<\/p>\n<p>\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a MQTT \u0441\u0435\u0440\u0432\u0435\u0440\u0443<br \/>\n if (WiFi.status() == WL_CONNECTED) {<br \/>\n if (!client.connected()) {<br \/>\n Serial.println(\"Connecting to MQTT server\");<br \/>\n if (client.connect(MQTT::Connect(\"arduinoClient2\")<br \/>\n .set_auth(mqtt_user, mqtt_pass))) {<br \/>\n Serial.println(\"Connected to MQTT server\");<br \/>\n client.set_callback(callback);<br \/>\n client.subscribe(\"test\/led\"); \/\/ subscribing to the topic with data for the LED<br \/>\n } else {<br \/>\n Serial.println(\"Could not connect to MQTT server\"); <br \/>\n }<br \/>\n }<\/p>\n<p>if (client.connected()){<br \/>\n client.loop();<br \/>\n TempSend();<br \/>\n }<\/p>\n<p>}<br \/>\n} \/\/ end of the main loop<\/p>\n<p>\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0441 \u0442\u0435\u0440\u043c\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430<br \/>\nvoid TempSend(){<br \/>\n if (tm==0)<br \/>\n {<br \/>\n sensors.requestTemperatures(); \/\/ obtaining temperature value from the sensor<br \/>\n float temp = sensors.getTempCByIndex(0);<br \/>\n client.publish(\"test\/temp\",String(temp)); \/\/ sending the temperature value to the topic for the temperature sensor<br \/>\n Serial.println(temp);<br \/>\n tm = 300; \/\/ pause between sending temperature values for about 3 seconds<br \/>\n }<br \/>\n tm--; <br \/>\n delay(10); <br \/>\n}<br \/>\n<\/code><\/p>\n<p>\nAs a result, we have a convenient tool for remote control and data monitoring, which is quite easy to master and will be accessible even to beginners.<\/p>\n<p><b>A video demonstrating the operation of the control system<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"q36C4rYAKVA\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/q36C4rYAKVA\/hqdefault.jpg\" alt=\"Play video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>Detailed video instructions for setting up the system<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"PTPZv15Td58\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/PTPZv15Td58\/hqdefault.jpg\" alt=\"Play video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>One of the options for controlling the esp8266 via the MQTT protocol<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"0GcrRmu15HM\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/0GcrRmu15HM\/hqdefault.jpg\" alt=\"Play video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>Controlling an LED strip over the internet<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"ESSKNfxiSRY\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/ESSKNfxiSRY\/hqdefault.jpg\" alt=\"Play video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>If you have any questions about this material, I recommend watching the second part of the video, where the material is presented more visually.<\/p>\n<p>The archive contains the sketch and all necessary libraries for flashing the microcontroller with the example sketch.<br \/>\nPlease note that the library ESP8266WiFi.h is not included in this archive, it is installed through the Boards manager in the Arduino environment.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.mail.ru\/public\/44nnTMk9dBFu\/Files.zip\"><b>ARCHIVE<\/b><\/a><\/noindex><\/p>\n<p>MQTT server \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex><\/p>\n<p>Link to the IoT MQTT Dashboard application \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&#038;hl=ru\">play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&amp;hl=en<\/a><\/noindex><\/p>\n<p>Thank you all for your attention.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/393277\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 20 \u043c\u0438\u043d\u0443\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u043c esp8266 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Android \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT. \u0418\u0434\u0435\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u043e\u0440\u0430\u0436\u0438\u043b\u0430 \u0443\u043c\u044b \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u044e\u0434\u0435\u0439. \u0412\u0435\u0434\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\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\/en\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\udd47Esp8266 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\" \/>\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=\"2019-10-31T19:17:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:29+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\udd47Esp8266 control over the internet via MQTT protocol | ProHoster","description":"Hello everyone!","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\udd47Esp8266 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","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":"2019-10-31T19:17:29+00:00","article:modified_time":"2019-10-31T19:17:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37407","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":"2026-01-23 17:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:27:26","updated":"2026-01-23 17:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=37407"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37407\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/28068"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=37407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=37407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=37407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}