Page 1 of 1
Skapa och använda ett eget funktionsbibliotek
Posted: Fri Mar 17, 2023 9:45 am
by Mikkar
Min tanke vara skapa en fil med olika funktioner, tex en log funktion och en mail funktion. För att sedan göra funktionsanrop från de bsh filer som jag skapat i Nexahome, text 1.bsh. Har gjort några tester men inte fått det att fungera. Funktionerna som ligger i en annan fil hittas inte. Är det någon som gjort något liknande och lyckats?
Re: Skapa och använda ett eget funktionsbibliotek
Posted: Fri Mar 17, 2023 9:45 am
by hekj
Att anropa andra bsh filer och skicka med parametrar.
Code: Select all
execFile("level_cmd.bsh");
execParam("set");
execParam("15");
execParam("50%");
execFile("level_cmd.bsh");
execParam("set");
execParam("5");
execParam("on");
level_cmd.bsh
Code: Select all
bsh_file = "level_cmd";
params = getData(bsh_file + ".params_");
if (params != null) {
var len = Integer.parseInt(params);
if (len >= 2) {
String cmd = getData(bsh_file + ".param1_");
String device = getData(bsh_file + ".param2_");
if (cmd.equals("set") && len >= 3) {
levelNew = getData(bsh_file + ".param3_").toLowerCase();
percent = levelNew.endsWith("%");
levelCurrent = getDeviceLevel(device);
if (percent) {
levelCurrent = levelCurrent + "%";
} else {
if (levelCurrent.equals("100")) {
levelCurrent = "on";
} else {
levelCurrent = "off";
}
}
setData(level_cmd + "." + device + ".level", levelCurrent);
if (percent) {
deviceLevel(device, levelNew);
} else if (levelNew.equals("on")) {
deviceOn(device);
} else {
deviceOff(device);
}
} else if (cmd.equals("restore")) {
levelPrevious = getData(level_cmd + "." + device + ".level");
if (levelPrevious != null) {
percent = levelPrevious.endsWith("%");
if (percent) {
deviceLevel(device, levelPrevious);
} else if (levelPrevious.equals("on")) {
deviceOn(device);
} else {
deviceOff(device);
}
}
}
}
}