Az ioBrokerben a Script Engine adapter több lehetőséget kínál egyéni vezérlési szerkezetek létrehozására. Egyszerüen összekapcsolhatjuk vele a különböző gyártók smart-home eszközeit.
Az ioBroker Script Engine adapter hatalmas szabadságot és lehetőséget biztosít az otthoni automatizálás terén.
Intel Celeron N4120, 8GB DDR4/NVMe M.2 256GB SSD, 4K@60Hz, Dual HDMI, kiterjesztett SSD 2TB, 2.4G/5G Dual WiFi, Gigabit Ethernet, 4x USB, BT 5.0
hirdetés
Script Engine adapter telepítése
Hogy saját scripteket hozzhassunk létre az ioBrokerben, telepítenünk kell a „Script Engine” JavaScript adaptert. Lépjünk az „Adapters” fülre, a keresőbe írjuk be a „Script Engine” keresőszót, majd telepítsünk egy példányt a javascript adapterből.
A telepítés után a „Script Engine” adapter beállítások lapjára kerülünk. Itt hagyhatjuk az alapbeállításokat. Ezzel az ioBroker Script Enginer adaptere használatra kész.
Script Engine adapter használata
Lépjünk a „Scripts” oldalra.
A „Scripts” szerkesztő oldala három részből áll. Az első a mappanézet, második a kódszerkesztő panel, és a harmadik a napló megjelenítésére használt konzol.
Az 1. panel a könyvtárfa, itt lesznek a saját scriptjeink, jól elkülönített mappákba rendezhetjük őket. A mappanézet fejlécében találunk egy horizontális menüt, melynek az első eleme egy legördülő menü.
A legördülő listában található „Expert mode” a szakértői módot kapcsolja be, amely lehetőséget biztosít többek között hibakeresésre. Továbbá importálhatjuk scriptjeinket, de exportálhatunk scripteket külső forrásból is.
A mappanézet horizontális menüjében a „+” jellel ellátott mappa ikon segítségével új mappát hozhatunk létre.
A menüben található „+” jelre kattintva egy új scriptet adhatunk hozzá.
A programozásban kevésbé jártas felhasználók használhatják a „Rules” vagy a „Blocky” szerkesztőt. A „Javascript” vagy „Typescript” szerkesztő szabadabb, professzionálisabb lehetőséget biztosít.
A ceruza ikonra kattintva átnevezhetjük a mappáinkat vagy scriptjeinket.
A 2. panel a kódszerkesztő, itt szerkeszthetjük a scriptjeinket. A továbbiakban a Javascript szerkesztőt fogjuk használni.
A kódszerkesztőben egyszerre több scriptet is szerkeszthetünk, ezek között a lapfülek segítségével váltogathatunk. A lapfülek melletti sötétkék gombra kattintva elrejthetjük a mappanézet panelt, ezáltal nagyobb szerkesztőfelületet kapunk.
A szerkesztő panel is rendelkezik egy vertikális menüvel.
Vegyük sorra a menüpontokat. Balról az első „lokáció” ikonra kattintva kijelöli a mappanézetben az aktuálisan szerkesztett fájlt. A második ikon újraindítja a script futtatását. A harmadik a „Play/Pause” ikonnal elindíthatjuk/megállíthatjuk a script futását.
Az Óra ikon a CRON időzítő panelt hívja elő, ezzel könnyedén időzítéseket adhatunk a scripthez.
A csillagok ikon a napi asztrológiai események idejéről ad tájékoztatást.
A következő a „Task” ikon, melynek segítségével az ioBroker objektumok adatpontjaiból illeszthetünk be a kódunkba.
Az utolsó két ikon a hibakeresésben segít.
Raspberry Pi 4 Model B 4 GB, ARM Cortex-A72 4x, 1,50 GHz, 4 GB RAM, WiFi-ac, Bluetooth 5, LAN, 4x USB, 2x Micro-HDMI
Hirdetés
Lássunk pár példát a Javascript adapter használatára
Írjuk meg az első scriptünket, legyen ez a Hello ioBroker!
console.log("Hello ioBroker! Hello Javascript!");
A „console.log()” függvény segítségével írhatunk a naplóba, ami megjelenik a konzolon. A „Logs” oldalon is láthatjuk ezeket az üzeneteket. Hibakeresésnél például jól jöhet ez a funkció.
A következő példában a „getState()” függvény segítségével lekérdezzük a nappali világítás állapotát majd ennek megfelelően a „setState()” függvény bekapcsolja vagy kikapcsolja a lámpát a nappaliban.
var wohnzimmerlicht ='mqtt.0.Wohnzimmerlicht'/*Wohnzimmerlicht*/;
var wohnzimmerlicht_state = String(getState(wohnzimmerlicht).val);
if(wohnzimmerlicht_state == "true")
{
setState(wohnzimmerlicht, "false");
}
else
{
setState(wohnzimmerlicht, "true");
}
A fenti kód nem túl hasznos, mert csak a script futtatásakor működik. Módosítsuk a kódot, hogy ha valami esemény történik, például gombnyomás, akkor kapcsolódjon a lámpa.
Az „on()” függvény segítségével figyeljük a „schalter” változóban tárolt adatpont változásait. ha állapotváltozás történik, lefut a függvény és kapcsol a lámpa. Ezzel automatizáltuk a script müködásét.
var wohnzimmerlicht ='mqtt.0.Wohnzimmerlicht'/*Wohnzimmerlicht*/;
var schalter = 'mqtt.0.App.Schalter'/*Schalter*/
on({id: schalter}, function (obj)
{
var wohnzimmerlicht_state = String(getState(wohnzimmerlicht).val);
if(wohnzimmerlicht_state == "true")
{
setState(wohnzimmerlicht, "false");
}
else
{
setState(wohnzimmerlicht, "true");
}
});
Shelly Pro 4PM
Professzionális Wi-Fi relé 4 érintkezővel otthoni automatizáláshoz, Támogatott az Amazon Alexa, Google Home aszisztensek és az MQTT.
Hirdetés
A következő egyszerű példa a CRON időzítőt használja, hogy két percenként ellenőrizze a lakás hőmérsékletét. Ha a hőmérséklet 15 fok alá csökken, riasztást küld a Pushsafer szolgáltatás segítségével a megadott mobiltelefonra. Ehez a pushsafer adapter szükséges.
var warning_once = false;
schedule(' */2 * * * *', function()
{
var temp = Number(getState('mqtt.0.WohnzimmerTemp'/*WohnzimmerTemp*/).val);
var text = 'A lakás hőmérséklete ' + temp;
if(temp < 15)
{
if(warning_once == false)
{
sendTo("pushsafer", {
message: text,
title: 'Alacsony hőmérséklet figyelmeztetés',
device: 'xxxxx',
sound: '5',
icon: '1',
vibration: '1',
priority: '2',
});
warning_once = true;
}
}
else
{
warning_once = false;
}
})