Keresés

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

  • vampire17

    addikt

    válasz Vodike #7808 üzenetére

    Szóval a szükséges hardverek:

    Serial Port RS485 to WiFi Device Server Module Elfin-EW11

    Peacefair AC Power Meter Energy Meter

    Összesen kb 7600 Ft. (amúgy biztosan olcsóbb összetevőkből is kijönne, de sztm így sokkal egyszerűbb, kevesebb a barkácsolás)

    A bekötés:

    A Peacefair bal oldalán található 4 csatlakozási lehetőség a fázis, a nulla és a lakatfogó csatlakozója. Ezt a rajz alapján kell bekötni, értelemszerűen. Az áramot lehet fixen is bekötni, én egy villásdugóra kötöttem.

    A jobb oldalon van az RS485 és az 5V+GND kivezetés. Ide kell kötni az Elfin-EW11-et. Ezt kétféleképp tehetjük meg. Ugye az Elfin-EW11-en csak egy RJ-45 aljzat van, ezért vagy veszünk hozzá egy átalakítót (ami csavaros formára alakítja) vagy szimplán levágunk egy Patch kábel egyik végét és azt kötjük a Peacefair-be. (én ezt az utóbbit tettem)

    Itt figyelni kell a színekre:

    "B" szerinti kötésű Patch kábel esetén:

    Kékfehér + zöld: RS485 + és -
    Barnafehér + barna: 5V + GND

    Ezzel a bekötés kész is.

    Lássuk a konfigot!

    Az Elfin-EW11 ha áramot kap, egyből indul, és AP módban van, tehát egy mobillal tudunk hozzá csatlakozni.
    A default IP-je 10.10.100.254, default acc/pass: admin

    Állítsuk át STA módba, illetve csatlakozzunk a saját Wifi hálónkhoz. A MAC alapján megtaláljuk a routerünk DHCP leases között, ha DHCP-t használunk.

    Ezután már elérjük local hálón is a cuccot.

    Most állítsuk be a serial oldalt.

    A Peacefair leírásában megtalálható a helyes beállítás:

    Baud Rate 9600
    Data Bit 8
    Stop Bit 1
    Parity none

    A protocolt állítsuk "Modbus"-ra!

    Ezzel kész is vagyunk.

    Én domoticzot használok megjelenítésre, szóval a továbbiak erre vonatkoznak!

    Először a Domoticz Modpus pluginnal próbálkoztam, de nem tudtam életet lehelni belé, szóval végül Node-Red lett a befutó.

    A Node Red-hez telepíteni kell a Modbus Node-okat. Ha ez megvan, akkor az alábbi konfigra lesz szükség:

    Kell egy Inject, ami majd a lekéréseket kéri (erre lehet pl tenni repeat-et, így automatán frissül. Nálam az interval 10 sec), kell egy function node, aminek megmondod, honnan olvasson és mit. Ezt az alábbi kóddal kell feltölteni:

    msg.payload = {
    'fc': 4,
    'unitid': 1,
    'address': 0x0000 ,
    'quantity': 10,
    } ;
    return msg;

    Az fc megmondja, melyik registereket olvassa (Input Registers), az unitid, hogy melyik eszközt, az address, hogy honnan kezdjen olvasni, a quantity pedig, hogy hány regisztert. Ugye a Peacefair leírásában benne van, hogy 0x0000-0x0009-ig vannak az adatok, tehát én így állítottam be.

    Ezt hozzá kell kapcsolni egy "Modbus Flex Getter" Node-hoz, ahol fel kell venni szervernek az Elfin-EW11-et. IP egyértelmű, port pedig alapból a 8899, de ezt az Elfin-ben bármire átírhatod. Minden egyéb maradhat defaulton.

    Ezután következik az, hogy a kapott adatokat emészhetővé kell tenni a Domoticz számára. Én minden érték számára saját funktion-t csináltam, de lehet egyben is, ízlés kérdése.

    Lássunk egyet, mondjuk a feszültséget:

    var voltage=msg.payload[0];
    voltage = voltage/10;
    voltage = voltage.toString();
    msg.payload = {"idx": 109, "nvalue": 0, "svalue": voltage}
    return msg;

    A msg.payload[0] az első regiszter. a kapcsos zárójelbe megy majd a többi, ugye értelemszerűen 1,2,3...stb. Ugye először osztom 10-el, hogy jó legyen a formátum (más értéknél más lehet az osztó, vagy nem is kell), majd pedig a változót string-é alakítom, mert a Domoticz csak így eszi meg. A kimenetemhez hozzáteszem a Domoticzban létrehozott MQTT Dummy kapcsolóm IDX-ét, az "svalue"-ba pedig beteszem a föntebb mókolt változót.

    Itt egy kép a teljes Node-Red ről:

    Ez után ezt belevezetem egy MQTT output node-ba, ahol a topicom "Domoticz/in"

    Domoticz oldalon jönnek az adatok. Ennyi igazaból :)

    Ha valami nem kerek, kérdezz(etek) bátran!

    [ Szerkesztve ]

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