Hi Eiche,
besten Dank, funktioniert einwandfrei!!!
@509794
Hier der abgewandelte Code für 2 Rolladentaster am I4 > 2 Shelly 2pmg3
Code
// created by Gerhard Eichelsdörfer alias eiche, 2024-04-27, V 1.1
// Application for a Shelly Plus 2PM as roller shutter, e.g. controlled by two buttons
//---- begin of configuration ----
let Config = [
{i:0, ip_addr:"192.168.xxx.xxx", methods:["cover.open","cover.stop"], id:0, corr:1}, // top left, id=0
{i:0, ip_addr:"192.168.xxx.xxx", methods:["cover.close","cover.stop"], id:0, corr:0}, // top right, id=1
{i:0, ip_addr:"192.168.xxx.xxx", methods:["cover.open","cover.stop"], id:0, corr:3}, // down left, id=2
{i:0, ip_addr:"192.168.xxx.xxx", methods:["cover.close","cover.stop"], id:0, corr:2}, // down left, id=3
];
//---- end of configuration ----
function next(res, errc, errm, id) {
if(errc) {print(errc, errm); return;}
Config[id].i = (Config[id].i + 1) % Config[id].methods.length;
let corr = Config[id].corr;
if(corr!==undefined) Config[corr].i = 0;
}
function process(e) {
if(e.info!==undefined && e.info.event==="single_push") {
//print(JSON.stringify(e));
let id = e.info.id;
if(id<0 || id>=Config.length) return;
let i = Config[id].i;
if(i<0 || i>=Config[id].methods.length) return;
let method = Config[id].methods[i];
if(typeof(method)==="string") {
print(id, method);
Shelly.call("http.get", {url:"http://" + Config[id].ip_addr + "/rpc/" + method + "?id=" + Config[id].id}, next, id);
}
}
}
Shelly.addEventHandler(process);
Alles anzeigen