Trådløs lysdæmpning mellem Shelly Plus I4 og Shelly Dimmer
Her beskrives, hvordan man kan få inputtet fra en Shelly Plus/Pro enhed til at styre en Shelly Dimmer 2. I dette eksempel bruger vi en Shelly Plus I4 hvorpå der er tilsluttet en 1-polet afbryder med fjeder til at styre en Shelly Dimmer 2. Der tages også udgangspunkt i at der arbejdes fra enhedens webinterface.
Når scriptet er sat op får du følgende funktionalitet:
Kort tryk: tænd/sluk
Dobbelt kort tryk: 100 % lysstyrke
Langt tryk: lysstyrke op/ned
Trin 1: Tilgå enhedens webinterface
Find enhedens IP-adresse i din router, via Shelly Smart Control Appen eller control.shelly.cloud
Tilgå enhedens webinterface ved at skrive dens IP-adresse i en browser.
Trin 2: Opdater firmware
Sørg for din Shelly Plus I4 er opdateret til nyeste firmware.
Tryk på tandhjulet
Tryk på firmware
Opdatere til nyeste firmware
Trin 3: Sæt input mode til "button"
Tryk på hjem-ikonet
Vælg den indgang du vil bruge
Tryk på See more ved Input mode
Vælg Button under input mode
Vælg Momentary Switch
Trin 4: Indsæt og klargør script
Slå Websocket debug til
For at vi kan se status i loggen, skal vi først slå Websocket debug til (dette er ikke nødvendigt).
Tryk på tandhjulet.
Vælg Debug.
Sæt hak i “Enable Websocket Debug”
Tryk “Save Settings”
Indsæt script
Tryk på script ikonet (<>)
Tryk på “Create new script”
Giv dit script et navn
Nu kopieres hele det nedenstående kode ind i det nye script. (Tryk på Copy oppe i højre hjørne af scriptet)
/**
* @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 remote control a Shelly Dimmer / Dimmer2 and emulates the locally conencted button.
* short_press = on/off toggle, double_press = on with 100% brightness, long_press cylce between dimming and brightening.
*/
// Array of dimmers to be controlled
let dimmer = [
'192.168.61.240', // dimmer controlled with button 0
// '192.168.61.241', // dimmer controlled with button 1
// '192.168.61.242', // dimmer controlled with button 2
// '192.168.61.243', // dimmer controlled with button 3
];
// CONFIG END
let dimstate = [
false,
false,
false,
false,
];
let up = [
false,
false,
false,
false,
];
// add an evenHandler for button type input and various push events
Shelly.addEventHandler(
function (event) {
if (typeof event.info.event !== 'undefined') {
let i = event.info.id;
if (typeof dimmer[i] !== 'undefined') {
if (dimstate[i] === true && event.info.event === 'btn_up') {
dimstate[i] = false;
print("release");
Shelly.call(
"http.get", {
url: 'http://' + dimmer[i] + '/light/0?dim=stop'
},
function (response, error_code, error_message, ud) { },
null
);
}
if (event.info.event === 'single_push') {
Shelly.call(
"http.get", {
url: 'http://' + dimmer[i] + '/light/0?turn=toggle'
},
function (rs, ec, em) { },
null
);
} else if (event.info.event === 'double_push') {
Shelly.call(
"http.get", {
url: 'http://' + dimmer[i] + '/light/0?turn=on&brightness=100'
},
function (rs, ec, em) { },
null
);
} else if (event.info.event === 'long_push' && up[i]) {
dimstate[i] = true;
up[i] = false;
print("cycle");
Shelly.call(
"http.get", {
url: 'http://' + dimmer[i] + '/light/0?dim=down&step=100'
},
function (rs, ec, em) { },
null
);
} else if (event.info.event === 'long_push' && up[i] === false) {
dimstate[i] = true;
up[i] = true;
print("cycle");
Shelly.call(
"http.get", {
url: 'http://' + dimmer[i] + '/light/0?dim=up&step=100'
},
function (rs, ec, em) { },
null
);
}
else {
return true;
}
}
} else {
return true;
}
},
);
Trin 5: Konfigurer script
Find og ændre IP-adresse
Når scriptet er indsat, naviger til linjer 12-15.
Der er fire linjer med IP-adresser. Hver linje/IP-adresse svarer til en indgang på Shelly I4.
Hvis du ønsker, at den første indgang (0) på I4 skal styre en Dimmer 2 med IP-adressen 192.168.1.34, skal du ændre IP’en i den første linje for at matche.
Hvis du også ønsker, at indgang 2 (1) skal betjene en anden Dimmer 2, fjern de dobbelte skråstreger // og opdater den linje med IP-adressen på den tilsvarende Dimmer 2. Gentag denne proces for de resterende indgange.
Før
let dimmer = [
'192.168.61.240', // dimmer controlled with button 0
// '192.168.61.241', // dimmer controlled with button 1
// '192.168.61.242', // dimmer controlled with button 2
// '192.168.61.243', // dimmer controlled with button 3
Efter
let dimmer = [
'192.168.1.34', // dimmer controlled with button 0
'192.168.1.57', // dimmer controlled with button 1
// '192.168.61.242', // dimmer controlled with button 2
// '192.168.61.243', // dimmer controlled with button 3
Trin 6: Afslutning
Gem script
Her efter trykkes på “Save” og “Start” i toppen
Tryk igen på script ikonet
Ud for script navnet skal knappen til højre være aktiv, for at scriptet automatisk skal starte efter strøm afbrydelse