Beiträge von steffensammet
VPN/Proxy erkannt
Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.
-
-
Hallo zusammen,
ich habe ein Antrieb für unser Carport der zwei Schalter hat: einen separaten Schalter für das Öffnen und einen separaten Schalter für das Schließen des Carports. Wichtig ist, dass zu keiner Zeit beide Schalter gleichzeitig geschaltet werden da ansonsten der Antrieb Schaden nehmen kann.
Solange ich derjenige bin der die Steuerung bedient ist das kein Problem. Heute hat meine Frau die Steuerung übernommen und gleich mal mehrere Schalter gleichzeitig gedrückt
.
Ist es möglich ein Skript mit folgender Logik zusammenzustellen:
Ist das Carport geschlossen, wird der Schalter für das Schließen auf "detached" gesetzt; Der Schalter öffnen wird geschaltet (er hat ein Auto-OFF nach 25 Sekunden). In dem Moment wo er geschaltet wird soll 25 Sekunden gewartet werden, der Schalter für das Schließen soll auf "Switch" gesetzt werden (Auto-OFF auf 25 Sekunden), und der Schalter für öffnen auch auf "detached".
Dann natürlich das gleiche Skript für den anderen Schalter umgedreht. Wie geht man dabei am besten vor ?
Viele Grüße und vielen Dank!
Steffen
-
Juhu! Hab’s hinbekommen
-
Update 18:18
Ein kleines bisschen kam ich schon weiter: so heißt es im Unterschied zur Gruppe nicht "all_on" sondern nur "on", aber es hakt immer noch
Code
Alles anzeigen/** * @copyright shelly-tools contributors * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html) * @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors * * This script is intended to toggle on/Off a group of lights connected to a Phillips HuE Bridge. * */ let CONFIG = { ip: '192.168.178.81', // Hue Bridge IP user: 'aDsDmMlIaR4l5WUiHj8goTQqNWgYkgKBHdqUF-2y', // Hue Bridge API user light: '47', // Hue group ID input1: 0, // Shelly Button ID input2: 1, // Shelly Button ID btnevent1: 'single_push', // Shelly Button Event bri1:254, bri2:76, }; // add an evenHandler Shelly.addEventHandler( function (event, user_data) { //print(JSON.stringify(event)); if (typeof event.info.event !== 'undefined') { if (event.info.id === CONFIG.input1 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/lights/' + CONFIG.light, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); let bri = st.action.bri; if (st.state.on === true) { if (bri < CONFIG.bri1) { Toggle("true", CONFIG.bri1); } else { Toggle("false", bri); } } else { Toggle("true", CONFIG.bri1); } }, null ); } else if (event.info.id === CONFIG.input2 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/lights/' + CONFIG.light, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); let bri = st.action.bri; if (st.state.on === true) { if (bri > CONFIG.bri2) { Toggle("true", CONFIG.bri2); } else { Toggle("false", bri); } } else { Toggle("true", CONFIG.bri2); } }, null ); } else { return true; } } else { return true; } }, ); function Toggle(state, bri) { let bris = JSON.stringify(bri); let b = '{"on": ' + state + ',"bri": '+ bris +'}'; Shelly.call( "http.request", { method: "PUT", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/lights/' + CONFIG.light + '/state', body: b }, function (r, e, m) { }, null ); }
-
Hallo Seven of Nine,
darf ich nochmal fragen für genau die gleiche Funktionsweise bei einzelnen Leuchten.
Verschiedene Inputs konnte ich einfügen aber das gesamte Konstrukt sieht doch minimal anders aus.
An anderer Stelle bin ich gerade dabei 2 Skripte für den Input0 + Input1 zu mergen - das klappt schon ganz gut
Danke !!!
Code
Alles anzeigen/** * @copyright shelly-tools contributors * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html) * @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors * * This script is intended to toggle on/Off a Light connected to a Philips HuE Bridge. * */ let CONFIG = { ip: '192.168.178.168', //Hue Bridge IP user: 'Y0NXhTgbfcZYk0dSrTB70Va0XSZKFJdUYJcAj4bp', //Hue Bridge API user light: '4', // Hue Light ID input1: 0, // Shelly Button ID btnevent1: 'single_push' //Shelly Button Event }; // add an evenHandler Shelly.addEventHandler( function (event, user_data) { //print(JSON.stringify(event)); if (typeof event.info.event !== 'undefined') { if (event.info.id === CONFIG.input1 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/lights/' + CONFIG.light, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); if (st.state.on === true) { Toggle("false"); } else { Toggle("true"); } }, null ); } else { return true; } } else { return true; } }, ); function Toggle(state) { let b = '{"on": ' + state + '}'; Shelly.call( "http.request", { method: "PUT", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/lights/' + CONFIG.light + '/state', body: b }, function (r, e, m) { }, null ); }
-
-
Herzlichen Dank
Es funktioniert
Der Taster oben schaltet jetzt das Licht mit 100% Helligkeit, der Schalter unten mit 30% - und dimmt hoch bzw. runter
Code
Alles anzeigen/** * @copyright shelly-tools contributors * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html) * @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors * * This script is intended to toggle on/Off a group of lights connected to a Phillips HuE Bridge. * */ let CONFIG = { ip: '192.168.178.81', // Hue Bridge IP user: 'aDsDmMlIaR4l5WUiHj8goTQqNWgYkgKBHdqUF-2y', // Hue Bridge API user group: '15', // Hue group ID input1: 0, // Shelly Button ID btnevent1: 'single_push' // Shelly Button Event }; // add an evenHandler Shelly.addEventHandler( function (event, user_data) { //print(JSON.stringify(event)); if (typeof event.info.event !== 'undefined') { if (event.info.id === CONFIG.input1 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); let bri = st.action.bri; if (st.state.any_on === true) { if (bri < 254) { Toggle("true", 254); } else { Toggle("false", bri); } } else { Toggle("true", 254); } }, null ); } else { return true; } } else { return true; } }, ); function Toggle(state, bri) { let bris = JSON.stringify(bri); let b = '{"on": ' + state + ',"bri": '+ bris +'}'; Shelly.call( "http.request", { method: "PUT", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group + '/action', body: b }, function (r, e, m) { }, null ); }
Code
Alles anzeigen/** * @copyright shelly-tools contributors * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html) * @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors * * This script is intended to toggle on/Off a group of lights connected to a Phillips HuE Bridge. * */ let CONFIG = { ip: '192.168.178.81', // Hue Bridge IP user: 'aDsDmMlIaR4l5WUiHj8goTQqNWgYkgKBHdqUF-2y', // Hue Bridge API user group: '15', // Hue group ID input1: 1, // Shelly Button ID btnevent1: 'single_push' // Shelly Button Event }; // add an evenHandler Shelly.addEventHandler( function (event, user_data) { //print(JSON.stringify(event)); if (typeof event.info.event !== 'undefined') { if (event.info.id === CONFIG.input1 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); let bri = st.action.bri; if (st.state.any_on === true) { if (bri > 76) { Toggle("true", 76); } else { Toggle("false", bri); } } else { Toggle("true", 76); } }, null ); } else { return true; } } else { return true; } }, ); function Toggle(state, bri) { let bris = JSON.stringify(bri); let b = '{"on": ' + state + ',"bri": '+ bris +'}'; Shelly.call( "http.request", { method: "PUT", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group + '/action', body: b }, function (r, e, m) { }, null ); }
Kann man das Skript noch verbessern um die Helligkeit im Abschnitt Config als Variable einsetzen kann ?
-
Klar, hier ist der komplette Output von meiner Gruppe
-
Hi,
ich habe die gleiche/ähnliche Herausforderung:
Und zwar habe ich einen Shelly i4 und auf die Inputs des i4 sind mit Tastern, also Buttons belegt.
Ausgangspunkt ist das Shelly-Hue-Script das auch auf GitHub verfügbar ist. Das funktioniert auch soweit ganz gut, aber jetzt möchte ich das gerne ausbauen:
Hier wird ja der Status abgefragt, ist die Gruppe/Lampe an oder aus:
Was ich gerne als verschachtelte Wenn-Funktion gerne einbauen würde wäre eine Abfrage der aktuellen Helligkeit
....wenn Helligkeit also "bri" < 254 dann setze auf 254
...sonstwenn Helligkeit = 254, dann schalte aus
wie kann ich denn sowas einbauen ?
Vielen Dank und viele Grüße,
Steffen
Code
Alles anzeigen/** * @copyright shelly-tools contributors * @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html) * @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors * * This script is intended to toggle on/Off a group of lights connected to a Phillips HuE Bridge. * */ let CONFIG = { ip: '192.168.178.168', //Hue Bridge IP user: 'Y0NXhTgbfcZYk0dSrTB70Va0XSZKFJdUYJcAj4bp', //Hue Bridge API user group: '1', // Hue group ID input1: 0, // Shelly Button ID btnevent1: 'single_push' //Shelly Button Event }; // add an evenHandler Shelly.addEventHandler( function (event, user_data) { //print(JSON.stringify(event)); if (typeof event.info.event !== 'undefined') { if (event.info.id === CONFIG.input1 && event.info.event === CONFIG.btnevent1) { // Get the current light state Shelly.call( "http.request", { method: "GET", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group, }, function (res, error_code, error_message, ud) { let st = JSON.parse(res.body); if (st.state.any_on === true) { Toggle("false"); } else { Toggle("true"); } }, null ); } else { return true; } } else { return true; } }, ); function Toggle(state) { let b = '{"on": ' + state + '}'; Shelly.call( "http.request", { method: "PUT", url: 'http://' + CONFIG.ip + '/api/' + CONFIG.user + '/groups/' + CONFIG.group + '/action', body: b }, function (r, e, m) { }, null ); }
-