Hallo zusammen,
ich melde mich zurück mit meiner finalen Lösung. Mit Sicherheit nicht für jeden passend, aber trotzdem ein Denkanstoß für die Kollegen die was ähnliches realisieren möchten. Danke an Devil für den initialen Denkanstoß ... mittlerweile klappt auch das Programmieren besser
Bei Fragen einfach melden!
Code
let position = 0;
let S1Push = 0;
let S2Push = 0;
let OutLicht1 = 0;
let OutLicht2 = 0;
let OutLicht3 = 0;
let OutLicht4 = 0;
Shelly.addStatusHandler(function(e) {
if (e.component === "switch:0") {
if (e.delta.output === true) {
OutLicht1 = 1;
print("Lampe 1 wurde eingeschaltet:", OutLicht1 );
}
}
if (e.component === "switch:1") {
if (e.delta.output === true) {
OutLicht2 = 1;
print("Lampe 2 wurde eingeschaltet:", OutLicht2 );
}
}
if (e.component === "switch:2") {
if (e.delta.output === true) {
OutLicht3 = 1;
print("Lampe 3 wurde eingeschaltet:", OutLicht3 );
}
}
if (e.component === "switch:3") {
if (e.delta.output === true) {
OutLicht4 = 1;
print("Lampe 4 wurde eingeschaltet:", OutLicht4 );
}
}
});
Shelly.addEventHandler(function(e) {
if (e.component === "input:0" ) {
if (e.info.event === "long_push") {
S1Push = 0;
S2Push = 0;
if (OutLicht1 === 0 && OutLicht2 === 0 && OutLicht3 === 0 && OutLicht4 === 0) {
print("Button S1 was pushed long --> Alle Lampen wurden Eingeschaltet!" );
Shelly.call("Switch.set", {'id': 0, 'on': true});
Shelly.call("Switch.set", {'id': 1, 'on': true});
Shelly.call("Switch.set", {'id': 2, 'on': true});
Shelly.call("Switch.set", {'id': 3, 'on': true});
OutLicht1 = 1;
OutLicht2 = 1;
OutLicht3 = 1;
OutLicht4 = 1;
}
else if (OutLicht1 === 1 || OutLicht2 === 1 || OutLicht3 === 1 || OutLicht4 === 1) {
print("Button S1 was pushed long --> Alle Lampen wurden Ausgeschaltet!" );
Shelly.call("Switch.set", {'id': 0, 'on': false});
Shelly.call("Switch.set", {'id': 1, 'on': false});
Shelly.call("Switch.set", {'id': 2, 'on': false});
Shelly.call("Switch.set", {'id': 3, 'on': false});
OutLicht1 = 0;
OutLicht2 = 0;
OutLicht3 = 0;
OutLicht4 = 0;
}
}
}
else if (e.component === "input:1" ) {
if (e.info.event === "long_push") {
S2Push = 0;
if (OutLicht2 === 0 && OutLicht3 === 0 && OutLicht4 === 0) {
print("Button S2 was pushed long --> Alle Lampen wurden Eingeschaltet!" );
Shelly.call("Switch.set", {'id': 1, 'on': true});
Shelly.call("Switch.set", {'id': 2, 'on': true});
Shelly.call("Switch.set", {'id': 3, 'on': true});
OutLicht2 = 1;
OutLicht3 = 1;
OutLicht4 = 1;
}
else if (OutLicht2 === 1 || OutLicht3 === 1 || OutLicht4 === 1) {
print("Button S2 was pushed long --> Alle Lampen wurden Ausgeschaltet!" );
Shelly.call("Switch.set", {'id': 1, 'on': false});
Shelly.call("Switch.set", {'id': 2, 'on': false});
Shelly.call("Switch.set", {'id': 3, 'on': false});
OutLicht2 = 0;
OutLicht3 = 0;
OutLicht4 = 0;
}
}
}
});
Shelly.addEventHandler(function(e) {
if (e.component === "input:0" ) {
if (e.info.event === "single_push") {
print("Button S1 was pushed 1 time");
if (OutLicht1 === 0) {
Shelly.call("Switch.set", {'id': 0, 'on': true});
OutLicht1 = 1;
}
else if (OutLicht1 === 1) {
print("Button S1 was pushed 2 times");
Shelly.call("Switch.set", {'id': 0, 'on': false});
OutLicht1 = 0;
}
}
}
if ( e.component === "input:1") {
if (e.info.event === "single_push") {
print("Button S2 was pushed", S2Push);
if (S2Push === 0) {
Shelly.call("Switch.set", {'id': 1, 'on': false});
Shelly.call("Switch.set", {'id': 2, 'on': false});
Shelly.call("Switch.set", {'id': 3, 'on': true});
S2Push = S2Push + 1;
}
else if (S2Push === 1) {
Shelly.call("Switch.set", {'id': 1, 'on': true});
Shelly.call("Switch.set", {'id': 2, 'on': false});
Shelly.call("Switch.set", {'id': 3, 'on': true});
S2Push = S2Push + 1;
}
else if (S2Push === 2) {
Shelly.call("Switch.set", {'id': 1, 'on': true});
Shelly.call("Switch.set", {'id': 2, 'on': true});
Shelly.call("Switch.set", {'id': 3, 'on': true});
S2Push = S2Push + 1;;
}
else if (S2Push === 3) {
Shelly.call("Switch.set", {'id': 1, 'on': false});
Shelly.call("Switch.set", {'id': 2, 'on': false});
Shelly.call("Switch.set", {'id': 3, 'on': false});
S2Push = 0;
}
}
}
});
Alles anzeigen