Dann geht das m.E. nur mit einem Skript auf dem Plus i4.
Trigger Button Event -> Status Plug ermitteln -> wenn an, dann OFF senden, sonst ON mit Timer senden.
Dann geht das m.E. nur mit einem Skript auf dem Plus i4.
Trigger Button Event -> Status Plug ermitteln -> wenn an, dann OFF senden, sonst ON mit Timer senden.
5 Endpoints pro Skript hatte ich gar nicht auf dem Schirm.
Hatte auch bis jetzt keinen Bedarf, da ich immer den Query-String benutze.
Mal schauen, ob sich aus mehreren Endpoints bei zukünftigen Projekten ein Vorteil ergibt.
Deiner Bitte entspreche ich gerne.
Wenn du dir einmal mein Shelly Plus 2 PM Verriegelungs-Skript anschaust, siehst du,
dass in der URL hinter dem Fragezeichen etwas übergeben wird und in der
function watch ausgewertet wird. Vlt. wird damit klarer, was ich meine.
Ein Endpoint mit vielen verschiedenen Query.
// GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
// More information: https://www.gnu.org/licenses/gpl-3.0.txt
// ABSOLUTELY NO WARRANTY AT ALL!!!
// Made by ostfriese.
// Config
let CONFIG = {
safetime : 1
}
//
let script_id;
let own_ip;
let query = '00';
let lock = true;
function log(to_log) {
console.log(to_log);
}
function send_response(response, body) {
response.code = 200;
response.body = body;
response.send();
}
function do_switch() {
if (query[0] === '1') {
Shelly.call("http.get", {url:'http://127.0.0.1/relay/0?turn=on'});
log('Relay 0 on');
}
if (query[1] === '1') {
Shelly.call("http.get", {url:'http://127.0.0.1/relay/1?turn=on'});
log('Relay 1 on');
}
lock = false;
}
function set_to_off() {
Shelly.call("http.get", {url:'http://127.0.0.1/relay/0?turn=off'});
log('Relay 0 off');
Shelly.call("http.get", {url:'http://127.0.0.1/relay/1?turn=off'});
log('Relay 1 off');
if (query === '00') {
lock = false;
return;
}
Timer.set(CONFIG.safetime,false,do_switch);
}
function watch(request,response) {
if (lock) {
return;
}
lock = true;
query = request.query;
send_response(response, query);
if (query === '11') {
Shelly.call("http.get", {url:'http://127.0.0.1/relay/0?turn=on'});
log('Relay 0 on');
Shelly.call("http.get", {url:'http://127.0.0.1/relay/1?turn=on'});
log('Relay 1 on');
lock = false;
return;
}
set_to_off();
}
function get_own_ip() {
Shelly.call("Shelly.GetConfig", "",
function(result, error_code, error_message) {
own_ip = result.wifi.sta.ip;
}
);
}
function start() {
HTTPServer.registerEndpoint('switch_to',watch);
script_id = Shelly.getCurrentScriptId();
log('Your possible urls are:');
log('http://' + own_ip + '/script/' + script_id + '/switch_to?00');
log('http://' + own_ip + '/script/' + script_id + '/switch_to?10');
log('http://' + own_ip + '/script/' + script_id + '/switch_to?01');
log('http://' + own_ip + '/script/' + script_id + '/switch_to?11');
lock = false;
}
get_own_ip();
Timer.set(1000,false,start);
Alles anzeigen
Endpoint ja, aber hinter dem Fragezeichen kannst du (fast) beliebige Wörter wählen und im Skript auswerten.
Wenn du BT nicht brauchst, versuche es mal mit BT deaktivieren.
Gehörst du evtl. zu den Wlan-Übernachtasschaltern?
Ist das http oder https. Ist deine URL wirklich
Beispiel für Action-URL: 192.168.10.100:9999
Ist das nicht http://192.168.10.100:9999
???
Wozu genau misst du die Temperatur IM BODEN?
Leg' dich nicht mit 'nem Admin an, sonst bist du gleich wieder auf der Schulbank
Aber nicht das buggige Shelly Wall Display. Dann muss man gleich die Kosten für eine Scheidung ein berechnen.
Ich dachte an WAF.
Alternativ, wenn es denn unbedingt mit dem Thermostat sein soll, kannst du den Ausgang vom Thermostat an den I des Shelly machen und mit O zur Heizung.
Aber schöner ist die von funkenwerner vorgeschlagene Lösung. Nur kann man dann eben nicht durch Einstellen am Thermostat die Temperatur einfach ändern.
Willkommen im Forum.
Hast du beleuchtete Taster verbaut?
Habe ihn mit Tasmota geflasht; hatte ich nicht erwähnt
Ist ja auch eher eine unwichtige Kleinigkeit
Schau doch bitte mal, ob der Input auf detached steht, das geht auch ohne Multimeter
Kann man hier auch degradiert werden?