{"id":12960,"date":"2026-09-10T18:25:00","date_gmt":"2026-09-10T16:25:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=12960"},"modified":"2026-09-09T13:24:10","modified_gmt":"2026-09-09T11:24:10","slug":"tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/","title":{"rendered":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii"},"content":{"rendered":"<p>Urz\u0105dzenie zg\u0142aszaj\u0105ce si\u0119 przez MQTT robi to jednym komunikatem. Trafia on na temat, kt\u00f3rego Home Assistant i tak nas\u0142uchuje, niesie JSON i musi mie\u0107 flag\u0119 retained &#8211; inaczej istnieje tylko do najbli\u017cszego restartu jednej ze stron.<\/p>\n<p>Utworzenie encji t\u0105 drog\u0105 to sprawa sze\u015bciu linii. Doprowadzenie do tego, by encja zosta\u0142a przyj\u0119ta jako \u017ar\u00f3d\u0142o energii, to sprawa trzech kolejnych &#8211; i w\u0142a\u015bnie tam le\u017cy ca\u0142a praca: ka\u017cde z tych trzech p\u00f3l zostaje po cichu pomini\u0119te, gdy jest ustawione \u017ale, a objaw zawsze wygl\u0105da tak samo, jak pusta lista wyboru.<\/p>\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/discovery-nachricht-pl.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\"\n     alt=\"Po lewej zawarto\u015b\u0107 komunikatu discovery z trzema wyr\u00f3\u017cnionymi liniami, po prawej trzy warunki, kt\u00f3re musz\u0105 by\u0107 spe\u0142nione, aby encja da\u0142a si\u0119 wybra\u0107 w panelu energii\"><figcaption>Encja pojawia si\u0119, gdy tylko zawarto\u015b\u0107 jest poprawnym JSON-em. Trzy wyr\u00f3\u017cnione pola rozstrzygaj\u0105 co innego: czy da si\u0119 j\u0105 wybra\u0107 tak\u017ce jako \u017ar\u00f3d\u0142o energii.<\/figcaption><\/figure>\n<h2>Temat decyduje, gdzie pojawi si\u0119 encja<\/h2>\n<p>Discovery dzia\u0142a przez wzorzec tematu, a nie przez wywo\u0142anie rejestruj\u0105ce. Home Assistant subskrybuje prefiks, a wszystko opublikowane pod nim w odpowiedniej postaci staje si\u0119 encj\u0105.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>homeassistant\/sensor\/kellerzaehler\/energie\/config\n      \u2502          \u2502         \u2502           \u2502\n   prefiks    komponent  node_id    object_id<\/code><\/pre>\n<p>Prefiks brzmi <code>homeassistant<\/code>, dop\u00f3ki nie zosta\u0142 zmieniony w integracji MQTT. Komponent okre\u015bla typ encji i musi odpowiada\u0107 temu, co opisuje zawarto\u015b\u0107 &#8211; <code>sensor<\/code> dla warto\u015bci pomiarowej, <code>binary_sensor<\/code> dla stanu tak-nie, <code>switch<\/code> dla czego\u015b prze\u0142\u0105czalnego.<\/p>\n<p>Node ID i object ID to dowolny tekst s\u0142u\u017c\u0105cy wy\u0142\u0105cznie zachowaniu niepowtarzalno\u015bci tematu. Nie s\u0105 identyfikatorem encji: ten powstaje p\u00f3\u017aniej z nazwy, a temat zmieniony po fakcie tworzy drug\u0105 encj\u0119, zamiast zmieni\u0107 nazw\u0119 pierwszej.<\/p>\n<h2>Najmniejsza zawarto\u015b\u0107, kt\u00f3ra naprawd\u0119 dzia\u0142a<\/h2>\n<p>Cztery klucze wystarcz\u0105, aby encja zaistnia\u0142a. Nazwa, temat z nap\u0142ywaj\u0105cymi pomiarami, jednostka oraz identyfikator przetrwaj\u0105cy restarty.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>{\n  \"name\": \"Licznik w piwnicy\",\n  \"state_topic\": \"dom\/piwnica\/licznik\",\n  \"unit_of_measurement\": \"kWh\",\n  \"unique_id\": \"kellerzaehler_energie\"\n}<\/code><\/pre>\n<p>Z tych czterech szczeg\u00f3lnie op\u0142aca si\u0119 <code>unique_id<\/code>. Bez tego klucza encja wprawdzie si\u0119 pojawia, lecz nie da si\u0119 jej zmieni\u0107 nazwy, przypisa\u0107 do obszaru ani w og\u00f3le wybra\u0107 w panelu energii. Identyfikator musi by\u0107 niepowtarzalny w ca\u0142ej instalacji, dlatego cz\u0119\u015bci tematu dobrze si\u0119 do tego nadaj\u0105.<\/p>\n<p>Blok <code>device<\/code> jest dobrowolny i zwraca si\u0119 natychmiast: encje z tym samym identyfikatorem zostaj\u0105 zebrane w jedno urz\u0105dzenie, a jedno urz\u0105dzenie z o\u015bmioma pomiarami \u017cyje si\u0119 znacznie wygodniej ni\u017c osiem lu\u017anych encji.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>  \"device\": {\n    \"identifiers\": [\"kellerzaehler\"],\n    \"name\": \"Licznik w piwnicy\",\n    \"manufacturer\": \"Eastron\",\n    \"model\": \"SDM630\"\n  }<\/code><\/pre>\n<h2>Trzy pola, kt\u00f3re czyta panel energii<\/h2>\n<p>Encja z liczb\u0105 w \u015brodku to jeszcze nie \u017ar\u00f3d\u0142o energii. Trzy pola musz\u0105 do siebie pasowa\u0107, zanim pojawi si\u0119 na li\u015bcie wyboru, a ka\u017cde z nich opisuje co innego.<\/p>\n<table style=\"width:100%;border-collapse:collapse;table-layout:auto;\">\n<thead>\n<tr>\n<th style=\"white-space:nowrap;vertical-align:top;\">Pole<\/th>\n<th style=\"white-space:nowrap;vertical-align:top;\">Wymagana warto\u015b\u0107<\/th>\n<th style=\"vertical-align:top;\">Znaczenie<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\">device_class<\/td>\n<td style=\"white-space:nowrap;vertical-align:top;\">energy<\/td>\n<td>Liczba jest ilo\u015bci\u0105 energii, nie moc\u0105<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\">unit_of_measurement<\/td>\n<td style=\"white-space:nowrap;vertical-align:top;\">Wh, kWh, MJ lub GJ<\/td>\n<td>Jednostka, w kt\u00f3rej liczona jest ta ilo\u015b\u0107<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top;\">state_class<\/td>\n<td style=\"white-space:nowrap;vertical-align:top;\">total_increasing<\/td>\n<td>Warto\u015b\u0107 ro\u015bnie wy\u0142\u0105cznie w g\u00f3r\u0119<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Najcz\u0119\u015bciej nie pasuj\u0105 do siebie dwa pierwsze. Licznik podaj\u0105cy waty jest czujnikiem mocy: <code>device_class<\/code> power, <code>state_class<\/code> measurement, jednostka W. Taki czujnik jest po\u017cyteczny i poprawny, a mimo to nigdy nie pojawi si\u0119 jako \u017ar\u00f3d\u0142o energii, bo moc nie jest energi\u0105. Panel energii szuka stanu licznika, kt\u00f3ry si\u0119 sumuje.<\/p>\n<p>Trzecie pole rozstrzyga, jak potraktowane zostanie wyzerowanie licznika. Przy <code>total_increasing<\/code> nagle mniejsza warto\u015b\u0107 uchodzi za nowy cykl liczenia, a nie za ujemne zu\u017cycie, i statystyka biegnie dalej. Przy <code>total<\/code> ten sam skok wymaga znacznika czasu <code>last_reset<\/code> do interpretacji, a bez niego z danej godziny robi si\u0119 wyskok. Dla fizycznego licznika, kt\u00f3ry idzie do przodu i czasem zaczyna od nowa, <code>total_increasing<\/code> jest wyborem uczciwym.<\/p>\n<h2>Publikacja r\u0119czna<\/h2>\n<p>Nic z tego nie wymaga urz\u0105dzenia. Jedno polecenie tworzy encj\u0119, a to samo polecenie z inn\u0105 tre\u015bci\u0105 j\u0105 aktualizuje.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>mosquitto_pub -h 192.168.1.10 -u ha -P tajne -r \\\n  -t \"homeassistant\/sensor\/kellerzaehler\/energie\/config\" \\\n  -m '{\n    \"name\": \"Licznik w piwnicy\",\n    \"state_topic\": \"dom\/piwnica\/licznik\",\n    \"unit_of_measurement\": \"kWh\",\n    \"device_class\": \"energy\",\n    \"state_class\": \"total_increasing\",\n    \"unique_id\": \"kellerzaehler_energie\",\n    \"device\": { \"identifiers\": [\"kellerzaehler\"], \"name\": \"Licznik w piwnicy\" }\n  }'\n\nmosquitto_pub -h 192.168.1.10 -u ha -P tajne -r \\\n  -t \"dom\/piwnica\/licznik\" -m \"18234.7\"<\/code><\/pre>\n<p>Prze\u0142\u0105cznik <code>-r<\/code> bywa zapominany, a nale\u017cy si\u0119 obu komunikatom z dw\u00f3ch r\u00f3\u017cnych powod\u00f3w. Na temacie konfiguracyjnym sprawia, \u017ce opis przetrwa restart Home Assistant &#8211; inaczej encja znika a\u017c do przypadkowego ponownego zg\u0142oszenia urz\u0105dzenia. Na temacie stanu sprawia, \u017ce encja ma warto\u015b\u0107 zaraz po restarcie, zamiast sta\u0107 jako niedost\u0119pna do czasu kolejnego pomiaru.<\/p>\n<p>Uwaga co do rozmiaru zawarto\u015bci: firmware m\u00f3wi\u0105cy j\u0119zykiem discovery wysy\u0142a zwykle skr\u00f3cone klucze &#8211; <code>stat_t<\/code>, <code>dev_cla<\/code>, <code>stat_cla<\/code>, <code>unit_of_meas<\/code>, <code>uniq_id<\/code>, <code>dev<\/code>. Obie pisownie dzia\u0142aj\u0105 i wolno je nawet miesza\u0107. Zawarto\u015b\u0107 pisana r\u0119cznie pozostaje czytelniejsza w postaci pe\u0142nej.<\/p>\n<h2>Gdy encja si\u0119 pojawia i zostaje pusta<\/h2>\n<p>Encja, kt\u00f3ra istnieje i nic nie pokazuje, to niemal zawsze rozjazd temat\u00f3w: <code>state_topic<\/code> w zawarto\u015bci i temat, na kt\u00f3rym publikowana jest warto\u015b\u0107, r\u00f3\u017cni\u0105 si\u0119 o jeden znak. Subskrypcja z symbolem wieloznacznym pokazuje obie strony naraz.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>mosquitto_sub -h 192.168.1.10 -u ha -P tajne -v -t \"dom\/#\"<\/code><\/pre>\n<p>Je\u017celi warto\u015b\u0107 dociera, ale tkwi w wi\u0119kszym komunikacie JSON, wyci\u0105ga j\u0105 <code>value_template<\/code> &#8211; <code>\"value_template\": \"{{ value_json.total_kwh }}\"<\/code>. Bez tego encja dostaje ca\u0142y obiekt i zg\u0142asza go jako nieznany.<\/p>\n<p>Do tego ostrze\u017cenie przed polem, kt\u00f3re wygl\u0105da pomocnie: <code>expire_after<\/code> ustawia encj\u0119 jako niedost\u0119pn\u0105, gdy w podanej liczbie sekund nie nadejdzie \u017cadna warto\u015b\u0107. Przy prze\u0142\u0105czniku bywa to u\u017cyteczne. Przy liczniku energii rozrywa statystyk\u0119 d\u0142ugoterminow\u0105, bo ka\u017cda przerwa ko\u0144czy cykl liczenia. Licznik melduj\u0105cy si\u0119 co pi\u0119tna\u015bcie minut radzi sobie lepiej bez tego pola.<\/p>\n<p>Przy ostatnim kroku pomaga cierpliwo\u015b\u0107. Statystyka d\u0142ugoterminowa powstaje w odcinkach pi\u0119ciominutowych, a panel energii zbiera dane godzinami. \u015awie\u017co utworzony czujnik pozostaje wi\u0119c pusty, dop\u00f3ki nie minie pierwsza pe\u0142na godzina. To nie jest usterka, a ponowna publikacja zawarto\u015bci niczego nie przyspiesza.<\/p>\n<h2>Usuni\u0119cie urz\u0105dzenia bez pozostawiania widma<\/h2>\n<p>Skasowanie encji w interfejsie dzia\u0142a do najbli\u017cszego restartu &#8211; wtedy zachowany komunikat konfiguracyjny tworzy j\u0105 ponownie. Usuni\u0119cie musi nast\u0105pi\u0107 tam, gdzie nast\u0105pi\u0142o utworzenie.<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>mosquitto_pub -h 192.168.1.10 -u ha -P tajne -r \\\n  -t \"homeassistant\/sensor\/kellerzaehler\/energie\/config\" -m \"\"<\/code><\/pre>\n<p>Pusta zawarto\u015b\u0107 z flag\u0105 retained na temacie konfiguracyjnym kasuje jednocze\u015bnie encj\u0119 i zapami\u0119tany komunikat. Temat stanu zachowuje w\u0142asn\u0105 warto\u015b\u0107 retained i najlepiej wyczy\u015bci\u0107 go tak samo &#8211; inaczej kolejne urz\u0105dzenie na tym temacie odziedziczy pomiar nale\u017c\u0105cy do czego\u015b innego.<\/p>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/mqtt.org\/mqtt-specification\/\" target=\"_blank\" rel=\"noopener noreferrer\">MQTT specification<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jeden komunikat JSON z flag\u0105 retained na w\u0142a\u015bciwym temacie tworzy encj\u0119 w Home Assistant. Trzy pola w jego wn\u0119trzu rozstrzygaj\u0105, czy encja da si\u0119 wybra\u0107 jako \u017ar\u00f3d\u0142o energii &#8211; i \u017cadne z tych trzech nie zg\u0142asza b\u0142\u0119du, gdy jest ustawione \u017ale.<\/p>\n","protected":false},"author":1,"featured_media":13215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92628],"tags":[92193,92307,92202,92238],"class_list":["post-12960","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-smart-home-pl","tag-home-assistant-pl","tag-iot-pl","tag-smart-home-de-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog<\/title>\n<meta name=\"description\" content=\"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-10T16:25:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii\",\"datePublished\":\"2026-09-10T16:25:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/\"},\"wordCount\":951,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png\",\"keywords\":[\"Home Assistant\",\"IoT\",\"Smart Home\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/\",\"name\":\"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png\",\"datePublished\":\"2026-09-10T16:25:00+00:00\",\"description\":\"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/smart-home-pl\\\/tutorials-pl-smart-home-pl\\\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog","description":"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog","og_description":"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-10T16:25:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png","type":"image\/png"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii","datePublished":"2026-09-10T16:25:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/"},"wordCount":951,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png","keywords":["Home Assistant","IoT","Smart Home","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/","name":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png","datePublished":"2026-09-10T16:25:00+00:00","description":"Budowa komunikatu MQTT Discovery krok po kroku: temat, najmniejsza dzia\u0142aj\u0105ca zawarto\u015b\u0107 i trzy pola, kt\u00f3re czyta panel energii.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/hero-12960-tutorial-publikowanie-komunikatu-mqtt-di.png","width":1200,"height":630,"caption":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/smart-home-pl\/tutorials-pl-smart-home-pl\/tutorial-publikowanie-komunikatu-mqtt-discovery-ktory-trafia-do-panelu-energii\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Publikowanie komunikatu MQTT Discovery, kt\u00f3ry trafia do panelu energii"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=12960"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12960\/revisions"}],"predecessor-version":[{"id":17307,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/12960\/revisions\/17307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13215"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=12960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=12960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=12960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}