Shelly → Ada P1 Meter Script fordító

Mit csinál ez a Shelly Plug Script generátor?

Ez a kis eszköz automatikusan legenerálja a Shelly Plug Script kódot, amivel a fogyasztásmérő adatait (teljesítmény, feszültség, áram, összenergia és a kapcsoló állapota) el tudod küldeni az ADA P1 Meter / okosvillanyora.hu rendszernek. Így a Shelly konnektorod megjelenik a HMKE.app felületen, és onnan egyből vezérelheted.


A Shelly eszköz nevét, a sorszámot (01–50) és az IP-címet adod meg a formban, a generátor pedig ezekből elkészíti a komplett scriptet, amit elég bemásolnod a Shelly böngészős Script felületére. A kódot egy kattintással a „Copy” gombbal vágólapra teheted.

Hogyan állítsd be a Shelly Plug eszközt?

  1. Először állítsd be a Shelly eszközön a Wi-Fi-t (SSID, jelszó). Ha felcsatlakozott a hálózatra, jegyezd meg vagy nézd meg a routerben az IP-címét.
  2. Nyisd meg böngészőben az IP-címét (pl. http://192.168.31.185), és frissítsd a Shelly firmware-t a legújabb hivatalos verzióra (a webes felületen a beállítások / firmware frissítés menüpontban). A script funkció csak friss firmware-rel működik megbízhatóan.
  3. Ezután nyisd meg a Shelly Script felületet a böngészőben:
    http://<SHELLY IP CÍM>/#/script/1
    Példa: http://192.168.31.185/#/script/1
  4. A lenti generátorral készített teljes scriptet másold ki a „Copy” gombbal, majd illeszd be a Shelly script szerkesztőjébe. Nevezd el tetszőlegesen, majd kapcsold be (Enable) és mentsd el (Save).
  5. A script 10 másodpercenként lekéri a Shelly Plug mért adatait, és elküldi az http://okosvillanyora.local:8989/write végpontra. Ha minden rendben, az ADA P1 rendszerben & a HMKE.app felületen meg fognak jelenni a Shelly plugin mezők (teljesítmény, feszültség, áram, összenergia, státusz).

Shelly Plug Script generátor

// === SETTINGS ===
let IDX  = "01";             // <-- sorszám (01–50)
let NAME = "Shelly Plug";        // <-- eszköz neve
let IP   = "192.168.31.185";              // <-- Shelly IP-címe

// === START SCRIPT ===
let INTERVAL_MS = 10000, POST_URL = "http://okosvillanyora.local:8989/write";
function K(k){return "Shelly_" + k + "_" + IDX;}
Timer.set(INTERVAL_MS, true, function () {
  Shelly.call("Switch.GetStatus", {id: 0}, function (r) {
    if (!r || r.apower === undefined) {
      print("ERR status");
      return;
    }
    let v = {};
    v[K("total")]   = (r.aenergy.total / 1000).toFixed(3);
    v[K("voltage")] = (r.voltage !== undefined ? r.voltage.toFixed(1) : "");
    v[K("current")] = (r.current !== undefined ? r.current.toFixed(3) : "");
    v[K("power")]   = (r.apower / 1000).toFixed(3);
    v[K("ip")]      = IP;
    v[K("status")]  = r.output;
    v[K("name")]    = NAME;
    Shelly.call("HTTP.POST", {
      url: POST_URL,
      headers: {"Content-Type": "application/json"},
      body: JSON.stringify({device: "plugins", values: v})
    }, function (res, ec, em) {
      print(ec === 0 ? "send -> success" : "ERR " + ec + " " + em);
    });
  });
});
// === END SCRIPT ===

Hozzászólások

Még nincs hozzászólás, légy te az első!