Keresés

Új hozzászólás Aktív témák

  • itanczos

    senior tag

    válasz krisztián28 #1477 üzenetére

    Lényeg, hogy van egy “központ”, amit brókernek hívnak.
    Minden kliens (gyakorlatilag a domoticz vagy Homeassistant is az) erre csatlakozik.
    A szerveren vannak un. topic-ok, témák.
    Ezek fa vagy hierarchikus rendszerben vannak.
    Általában egy kliens publikál és feliratkozik egy-egy topic-ra.
    A publikálás azt jelenti, hogy oda írja a státuszát, státuszait. Ezek lehetnek pl. hőmérő adatok, relé állapot, stb.
    A feliratkozás pedig azt, hogy a szerveren adott topic-öt figyelve, az oda beírt adatokat feldolgozza.
    A klienseken be kell állítani, hogy milyen topic-ba írjon és melyiket olvassa.
    Pl:
    Kliens publikál a /sonoff1/ topic-ban:
    /sonoff1/relay/state/0
    Ez azt jelenti, hogy a saját nevének megfelelő topic-ot nyit, ha még nem lett volna meg, majd azon belül a relay szekció state (állapot) mezőjének ad egy 0 értéket.
    Mondjuk, ha a Homeassistant előfizetett a /sonoff/relay/state topic-ra, akkor egyből tudja, hogy a 0 érték esetén a relé nincs behúzva.

    Ha mondjuk szeretnénk ezt a relét bekapcsolni, akkor publikáljunk a sonoff relé state topic-jába egy 1 értéket.
    Ezt figyelve, a relé behúz.

    Kicsit bonyolítja a dolgot, hogy legtöbbször van egy state (állapot) és egy cmd (parancs) topic is egy változtatható eszközhöz, mint a relé. Ez célravezető, mert így vissza jelezhető, hogy valóban megtörtént-e a kapcsolás.

    Ezeket az adatokat be kell állítani a klienseken az MQTT beállításoknál.

    Lényeg, hogy több kliens is figyelhet egy-egy topic-ot.
    Elvileg többen is publikálhatnak ugyanabban a topic-ban.

    A klienseken be lehet általában állítani, hogy milyen időközönként publikálják az értékeket, de persze azonnal frissítik, ha változik az érték.

    Maga a “szerver”, bróker egyszerű feladatot lát el, ezért nincs is túl bonyolítva.
    A leg elterjedtebb a Mosquitto bróker.

    Fontos még megjegyezni, hogy javasolt a kapcsolatok jelszavazása, titkosítása.
    Gyanítom, hogy pl a xiaomi cuccok is így kommunikálnak. (Egy xiaomi kamerában láttam a mosquitto-t. )
    A kapcsolat lehet TCP és UDP is. Xiaomi az utóbbit használja.

    [ Szerkesztve ]

    Használd a keresőt! | iPhone 13 Pro 256GB | 3D: Tevo Tarantula | NAS: HP MicroServer Gen8 - Proxmox/XPenology | Okos otthon: HomesAssistant - HomeKit - Hirdetéseim: https://hardverapro.hu/aprok/hirdeto/itanczos/index.html

  • mekkGyver

    aktív tag

    válasz krisztián28 #1477 üzenetére

    Képzeld el úgy, mint egy iskolában. A "gyerek" publikál a "füzet" topicba, amire feliratkozott a "szülő" és a "tanár" eszköz is. Ha adatot lát feldolgozza. Válaszként a "tanár" publikál az "ellenőrző" topicba, amire feliratkozott a "szülő", és a "diák" is. :D
    Az a jó, hogy nincs hierarchia (kliens-szerver), bárki publikálhat bármelyik topicba, és bárki olvashatja, aki feliratkozott rá. Gyors, és egyszerű. Kicsit még bonyolítja a dolgot a QoS, ha valaki akarja elmagyarázza, én nem szoktam foglalkozni vele.

    A Domoticz a domoticz/in topikot figyeli, és json szkriptekkel kommunikál. Az "idx" változóból tudja, hogy melyik eszköz 'írt' neki, amit 'ő' oszt ki az eszköz hozzáadásakor.

    [ Szerkesztve ]

    Idegeskedni nem más, mint mások hülyesége miatt magunkon bosszút állni.

Új hozzászólás Aktív témák