Alles anzeigenHallo,
habe hier mal für einen Shelly 2PM ein Scipt geschrienen, so das man ihn als Master Slave Schaltung z.B. für in einen Werkstattstaubsauger verwenden kann. Der shella muss dazu in das Gehäuse des Staubsauger oder ein separates Gehäuse gebaut werden.
An Ausgang1 kommt der Master, (z.B. über Steckdose am Staubsauger angeschlossene Kreissäge)
an Ausgang 2 der Slave. (z.B. die Kabel die zum Motor des Staubsaugers führen)
Vorteil gegenüber eines gekauften Master Slave Schalter ist, das hier nur die Wirkleistung gemessen wird und bei Geräten die nur eine kleine Wirkstromaufnahme im Betrieb haben aber im ausgeschalteten (Standby) Zustand eine hohe Blindstromaufnahme z.B. Festool Exzenterschleifer ETS EC 150/5 EQ mit EC-Motor.
nun sauber unterschieden werden kann ob der Master aus und an ist.
Code Alles anzeigen/*This scipt measure power on output_1 (id:0). As long as outpu1 power is >20W: output 2 ist switched on with a switch off delay of 3,5s (+0...2s).. delay caused by chek intervall if check intervall is reduced from every 2s to 1s; the enable switich of this script will switchted off after booting.. error? This scipt help if ready of the shelf Master slave swichtes does not work, becauss Master Power consumption has got a bad Power-factor, (e.G.<0,9) cause by a inductive or capacitance load*/ // Timer.set(period, repeat, callback, userdata) -> timer_handle // https://shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures#timer Timer.set(2 * 1000, //check intervall =2s true, function () { // switch on output1, so Power could be measured here Shelly.call("switch.set",{ id: 0, on: true}, function (result, code, msg, ud) {},null); Shelly.call( //https://shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures#shellycall //Shelly.call(method, params, callback, userdata) -> boolean "switch.getStatus", //=method { id: 0 }, //=params function (res, error_code, error_msg, ud) { print("Power",res.apower "Watt, Powerfactor", res.pf*100 "%, Voltage", res.voltage, "Vrms"); //print("Shelly Temperature", res.temperature.tc, "°C"); does not work.. reason? if (res.apower>20) { Shelly.call("switch.set",{ id: 1, on: true, toggle_after: 3.5},function (result, code, msg, ud) {},null); } }, null); //=userddata(ud) from fct shelly-call switch.getStatus } null); //=userddata(ud) from timer.set
Hallo,
eventuell kann es jemand gebrauchen, das obige script hat mich inspiriert und ich habe gerade mit einem shellyplus2pm eine Master Slave Schaltung mit Nachlauf realisiert. Ausgang1 ist der Master und Ausgang 2 ist der Slave. Im Shelly ist Ausgang1 so konfiguriert das er immer an ist nach einem reboot und Ausgang 2 das er immer aus ist.
Timer.set(1000, true, function() {
Shelly.call("switch.set", { id: 0, on: true }, null);
Shelly.call("switch.getStatus", { id: 0 }, function(result, error_code, error_message, userdata) {
print("Leistung", result.apower, "W");
if (result.apower > 5) {
print("Slave on");
Shelly.call("switch.set", { id: 1, on: true, toggle_after: 5 }, null);
}
}, null);
}, null);