Vielen Dank für die schnelle Hilfe. Ich habe mir das Skript entsprechend angepasst und es funktioniert soweit wie gewünscht. Beim Schalter habe ich nun wieder die Actions aktiviert, die entweder die URL http://admin:password@192.168.7.210/script/1/sirenen?alarm oder http://admin:password@192.168.7.210/script/1/sirenen?entwarnung aufruft. Jetzt kann der Alarm über den Schalter oder das Web gestartet werden.
Code
function log(to_log) {
console.log(to_log);
}
function send_response(response, body) {
response.code = 200;
response.body = body;
response.send();
log(body);
}
function SirenenEin() {
Shelly.call("HTTP.get",{url: 'http://admin:123456@localhost/relay/0?turn=on&timer=12'}); //Relais 1 über http sofort einschalten und nach 12 Sekunden ausschalten
Shelly.call("HTTP.get",{url: 'http://admin:123456@192.168.7.211/relay/0?turn=on&timer=12'}); //Relais 2 über http sofort einschalten und nach 12 Sekunden ausschalten
}
function watch(request,response) {
what = request.query;
print(what);
if(what === 'alarm') {
//do something; //Alles, was bei Alarm passieren soll
Shelly.call("HTTP.get",{url: 'http://admin:123456@localhost/relay/0?turn=on&timer=12'}); //Relais 1 über http sofort einschalten und nach 12 Sekunden ausschalten
Shelly.call("HTTP.get",{url: 'http://admin:123456@192.168.7.211/relay/0?turn=on&timer=12'}); //Relais 2 über http sofort einschalten und nach 12 Sekunden ausschalten
Timer.set(24000, false, SirenenEin) //Relais 1 und Relais 2 über http nach 24 Sekunden einschalten
Timer.set(48000, false, SirenenEin) //Relais 1 und Relais 2 über http nach 48 Sekunden einschalten
what_done = 'Alarm wird ausgesendet'
}
if(what === 'entwarnung') {
//do something else; //Alles, was bei Alarm_aus passieren soll
Shelly.call("HTTP.get",{url: 'http://admin:123456@localhost/relay/0?turn=on&timer=60'}); //Relais 1 über http einschalten und nach 60 Sekunden ausschalten
Shelly.call("HTTP.get",{url: 'http://admin:123456@192.168.7.211/relay/0?turn=on&timer=60'}); //Relais 2 über http einschalten und nach 60 Sekunden ausschalten
what_done = 'Entwarung wird ausgesendet'
}
body = what_done;
send_response(response, body);
}
HTTPServer.registerEndpoint('sirenen',watch);
script_id = Shelly.getCurrentScriptId();
own_ip = '192.168.7.210'
log('Die möglichen URLs sind:');
log('http://admin:password@' + own_ip + '/script/' + script_id + '/sirenen?alarm');
log('http://admin:password@' + own_ip + '/script/' + script_id + '/sirenen?entwarnung');
Alles anzeigen