Arduino PubSubClient - Lapka RGB

Witam.
Tworzę sobie lampkę.

Lampka jest rozpoznawana przez HA poprzez AutoDiscovery.
Jako, że są to moje praktycznie pierwsze boje z tworzeniem czegoś samemu, to nie wiem jak to przeskoczyć.
A mianowicie:
Nie wiem jak przekazywać i pobierać dane przez Jsona…
Gdy tworzę w konfiguracji oddzielne tematy dla sterowania funkcjami lamki. Wszystko jest ok. Włącznik działa, suwak “brightness” działa, koło kolorów działa. Mogę ściemniać, mogę wybrać kolor. HA przy włączeniu zasilania ustawia jasność i kolor jaki mam ustawiony w projekcie i wysłany na dany Topic.
Natomiast gdy chcę przejść na wysyłanie danych przez Jsona (na jeden topic), lampka pobiera tylko status on-off. Pasek jasności i koło koloru pokazuje się po jakimś czasie - gdy otwieram encję lampi i bez przesłanych wartości z ESP.
Może ktoś tworzył własne urządzenia i może podpowiedzieć gdzie tkwi problem.

Gdy robię konfigurację urządzenia poprzez:

pl_config["state_topic"] = stateTopic;
pl_config["command_topic"] = stateCmdTopic;
pl_config["brightness_state_topic"] = brightnesStateTopic;
pl_config["brightness_command_topic"] = brightnessCmdTopic;
pl_config["rgb_state_topic"] = rgbStateTopic;
pl_config["rgb_command_topic"] = rgbCmdTopic;

Czyli każda opcja ma swój Topic stanu i komendy działa wtedy ok.

Natomiast gdy chcę zrobić to tak:

pl_config["state_topic"] = stateTopic;
pl_config["command_topic"] = stateCmdTopic;
pl_config["state_value_template"] = "{{ value_json.state }}";
pl_config["brightness_state_topic"] = stateTopic;
pl_config["brightness_command_topic"] = brightnessCmdTopic;
pl_config["brightness_value_template"] = "{{ value_json.brightness }}";
pl_config["rgb_state_topic"] = stateTopic;
pl_config["rgb_command_topic"] = rgbCmdTopic;
pl_config["rgb_value_template"] = "{{ value_json.rgb | join(',') }}";

Na stateTopic wysyłam dane Json w postaci:

doc["state"] = "on";
doc["brightness"] = 10;
doc["rgb"] = "0,0,255";

Wtedy HA Przy “starcie” urządzenia wczytuje tylko state “on” W zakładce developerskiej podgląd stanu encji nie pokazuje ani RGB ani jasności - Przy pierwszym sposobie wszystko jest OK. Wszystkie dane encji są prawidłowo wpisane.

Niby MQTT Explorer pokazuje wszystkie dane poprawnie. Ale jednak coś muszę robić nie rtak.

Druga sprawa, to jak zrobić, aby HA wysłał dane również w formacie Json, a nie ma pojedynczych topic’ach?
Nie potrafię do tego dojść, Sporo ogranicza mnie tu język.