Zdravím, snažím se porozumět implementaci MQTT, tedy přesněji tomu, jak bych měl implementovat například relé tak, abych ho mohl ovládat z node-red. Metodou pokus omyl jsem už přišel na to že nejlepší výchozí kód je pravděpodobně radio-base, protože je tam vyřešená inicializace bezdrátu. Dokonce už trochu i chápu jak spínat relé třeba tlačítkem, ale co a jak se děje přes MQTT se mi nepodařilo dohledat, kudy tečou jaké informace a jak se předávají. Programátor rozhodně nejsem, spíše se snažím nějak se tím prokousat a něco se přiučit, takže klidně uvítám vysvětlený podrobně každý řádek který se musí kam přidat. Určitě by to slušelo i dokumentaci která se mimochodem opravdu za poslední dva roky zlepšila Předpokládám že budou i nějaké rozdíly u relé, jakož to u jednoho směru dat a u senzorů, jakožto u druhého směru dat. Předem díky za jakoukoli pomoc
Zdravím,
asi bych doporučil vycházet z existujících projektů na githubu. Předpokládám že máte na mysli radio-base
ve složce _examples
. Tento projekt spolu s radio-remote
komunikuje napřímo bez Donglu.
Pokud chcete aby MQTT zpráva z počítače šla skrz USB Dongle do nějakého spárovaného node, doporučím projít následujcí projekty:
Pokud chcete ovládat Relay Module nebo relé na Power Module, tak stačí použít hotový firmware generic, který má v názvu “power” a je na rádiu neustále na příjmu. Poté stačí už jen posílat MQTT zprávy viz dokumentace.
Pokud chcete relé mít vlastní externí relé třeba na GPIO, tak můžete vyjít z následujících projektů:
Projekt pro 1-wire relé
Projekt který používá externí relé od firmy Denkovi. Ale postačí si upravit funkci set
a v ní můžete ovládat GPIO piny místo posílání příkazů po 1-wire.
Pokud nepoužíváte standradní topicky ve stavebnici pro přijímání zpráv pro relé, LED pásek. Tak si můžete vytvořit a registrovat vlastní MQTT topicky. Core Modul potom po spárování (doporučím jej po flasnutí přepárovat pokud se hned nechytne) odešle do Dongle tyto topicky a USB Dongle potom ví, že na MQTT má na ně naslouchat a přeposílat do Core Module, který si je zaregistroval.
Registrace topicků se provádí zde. První je MQTT topic (pozor, neměnit počet úrovní), druhý parametr datový typ bool, třetí callback, což je funkce kterou Core Module zavolá, pokud přijde zpráva.
Kolega má i hezky zdokumentované topicky
Tady je pak podobný projekt pro externí relé přes Modbus, je kratší protože neobsahuje definice MQTT topicků pro příkazy get
.
Téma custom MQTT topic
lze najít na mnoha místech tady na fóru.
Doporučím tyto vlákna:
- Custom MQTT topic subscribtion in firmware
- Example of how to subscribe to custom MQTT topic
- Tady je opačný směr vlastních zpráv z Core do MQTT How to publish custom MQTT messages?