Danke mache ich schaue Morgen
Beiträge von Pit38
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 towiat
Ich habe folgendes Problem mit dem Script.
Habe es testweise auf einem Shelly pro2 installiert, holt mir auch die Strompreisdaten, aber das Setzen der nötigen Timer funktioniert anscheinend nicht.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Ich habe natürlich keine Ahnung an was es liegen könnte
mfg
Marius
-
So hab jetzt die neue Version getestet mit einem 1min Intervall und dürfte perfekt funktionieren.
Wie immer danke ich Dir recht herzlich für Deine Hilfe.
Lg Marius
Werde es noch weiter beobachten und dann den Timer auf 0 Uhr jeden Tag einstellen.
-
Ich gebs gerne zu, bin gerade etwas überfordert
Bei Deiner besseren Ergänzung muss ich dann auch einen Job im Browser starten?
-
Ich verwende jetzt #2 und bekomme fogenden Fehler:
Uncaught Error: Function "cal" not found! 00:36:00
at Shelly.cal("script.stop", {id:1});
-
sorry war mein Fehler in #2 habe ich zum testen den timespec geändert.
Die KVS Daten nur auf null setzten klappt nicht, da sie im Skript gespeichert sind und alle 10Sek übergeben werden.
-
Du sollst den Schedule Job ja auch nicht in ein Skript packen!
Hab ich auch nicht, sondern per Broser Befehlszeile eingegeben
-
Warum sollen die beiden KVS Einträge entfernt werden? Es sollte genügen, sie zu überschreiben, bspw. mit den Werten 0.
Das ist reine Unwissenheit von mir, würde sicher überschreiben genügen.
Warum soll Skript 1 gestoppt werden?
Da die Daten Saldiert werden und wenn das Skript weiter läuft die KVS-Daten nicht zurückgesetzt werden
-
Hi eiche
Bist wie immer mein Retter Danke
Leider gibt es bei dem Schedule Job einen Fehler:
SyntaxError: JSON.parse: expected property name or '}' at line 1 column 203 of the JSON data
Code{"jobs":[{"id":1,"enable":true,"timespec":"0 * * * * *","calls":[{"method":"script.start","params":{"id":1}}]},{"id":2,"enable":true,"timespec":"0 0 0 * * *","calls":[{"method":"script.start","params":{id:2}}]}], "rev":65}
Ich habe es wieder löschen müssen, da ich auf dem 3Pro EM nicht mehr zugreifen konnte.
Nur zu Info: der 3Pro EM hat keine Web Ui, mit ihm kann man keine Schedule Job editieren.
-
Hi Community
Ich wollte aus 2 Scripts 1 machen und habe mir die Teile zusammen geklickt.
Das Script soll um 0 Uhr ein anderes Script mit ID: 1 stoppen, und die KVS Daten löschen.
Leider bekomme ich schon in der 1. Zeile einen Syntax Error:
Uncaught SyntaxError: Got ':' expected EOF 22:27:55
at "jobs": [
Da das andere Script mit einem Schedule-Job von eiche jede Minute überprüft wird, ob es noch läuft, braucht man es nicht extra wieder starten.
Könnte einer der Profi sich mal das anschauen?
Code
Alles anzeigen{ "jobs": [ { "id": 4, "enable": true, "timespec": "0 0 * * *", "calls": [ { "method": "script.stop", "params": { "id": 1 } } ] } ], "rev": 30 } var kvsAction= "delete"; try{ switch(kvsAction){ case "delete": Shelly.call("KVS.Delete",{key:"EnergyConsumed"}); //löschen case "delete": Shelly.call("KVS.Delete",{key:"EnergyReturned"}); //löschen break; default: print("_[ ",kvsAction," ]_ Is an invalid parameter! Only _[ 'save' / 'change' / 'delete' / 'load' / 'load_many' ]_ is valid!"); } }catch(e){print(e);}
Vielen Dank
Gruß Marius
-
-
Danke Euch eiche & User-64546 für Eure Hilfe, Problem gelöst.
Meine Frau muss sich an kurz / lang drücken erinnern, ich denke, diese manuelle Bedienung wird selten notwendig sein.
Wünsche Euch noch einen schönen Abend
Marius
-
eiche Danke, bin gerade am Suchen um die Einstellungen einzugeben
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. -
eiche JA so war es gedacht
User-64546 wollte es lieber auf den 2 pro Shellys da am 3em schon Dein Skript läuft.
Komme mit dem Schreiben nicht nach
Danke
-
Meine Frau wollte unbedingt einen Taster für den Pro3 & Pro2, damit Sie die Speicher manuell schalten kann.(zu wenig Einspeisung, Besuch schlaft da usw.)
Es sollte so funktionieren:
Frau drückt Taster / Timer läuft für 3 Stunden (Ausheizzeit) und schaltet sich nachher wieder aus.
Pro 3 werden alle 3 Phasen aktiviert
Pro2 hat nur eine Phase, wird ein/ aus geschaltet
so hab ich mir das gedacht
User-64546 JA genau so hab ich mir das gedacht, aber wenn das mit dem REFRECH funktioniert, ist das Sperren nicht mehr notwendig.
Marius
-
-
Danke @User-64546 werde ich ausprobieren.
Wofür ist dieser REFRECH?
Läuft das Skript dann normal weiter, ohne den Zusatz?
Marius
-
Hi
User-64546 hat das Skript hier im Forum zur Verfügung gestellt und ich benutzte es um 2 Warmwasserspeicher mit PV zu heizen. Link
Einen mit 400V wird jede Phase rauf und runter geschaltet und auf Stufe 4 wird der Obere 200V Einphasig ein & aus geschaltet.
Auch ohne die Timer wird alle 17 Min. das ganze Skript neu durchlaufen und somit wird jede manuelle Betätigung nicht möglich.
Code
Alles anzeigenhttp://192.168.0.34/relay/2?turn=off 20:57:19 http://192.168.0.34/relay/1?turn=off 20:57:19 http://192.168.0.34/relay/0?turn=off 20:57:19 http://192.168.0.35/relay/0?turn=off 20:57:19 CounterSaldieren 20:57:29 21:13:59 CounterSaldieren 21:14:09 http://192.168.0.34/relay/2?turn=off 21:14:19 http://192.168.0.34/relay/1?turn=off 21:14:19 http://192.168.0.34/relay/0?turn=off 21:14:19 http://192.168.0.35/relay/0?turn=off 21:14:19 CounterSaldieren 21:14:29 CounterSaldieren
Leider kann ich am Skript selber nicht viel ändern, da mir das Wissen fehlt.
Deshalb bin ich auf die Idee gekommen, mit Eurer Hilfe auf meinen Pro3 und Pro2 bei Tastendruck das "HTTP Get" zu unterdrücken und einen 3-Stunden-Timer für die Aufheizzeit in einem Skript laufen zu lassen.
Danke Marius
-
Hi Krauskopp
Wieso schalten die beiden ab. Woher stammt der Befehl?
Edit: Wozu schaltet man einen Speicher immer 3 Stunden ein?
Ich verwende dieses Skript auf einen Shelly 3em Pro und das schaltet nach manuellem Einschalten genau nach 17 Minuten beide Schelly Pro ab.
Code
Alles anzeigen//let REMOTE = { // ip: '192.168.0.34', // relay1: '0', original // relay2: '1', // relay3: '2' //} let energieReturnWs = 0.0; let energieKonsumWs = 0.0; let CounterSaldieren = 0; // Timer skalieren let CounterRelais = 0; // vielfaches von Timer 1 let CounterSave = 0; // save Timer Leistung let CounterRefrech = 1; let STUFE = 0; // Test orig 1 let Multiplikator = 1; let STUFENWECHSEL = 0; let Senden = 1; let LAST = 1100; // Test orig 246 let AktPO = 0; let Aktuell = 0; let DivLastKonsom = 2; let DivLastReturn = 3; print('START'); Shelly.call( "KVS.Get", { "key": "EnergyReturned", }, function callback(result, error_code, error_message, userdata) { if (error_code === 0) { energieReturnWs = Number(result.value); print("Loaded returned energy: ", energieReturnWs / 3600000, " kWh"); } } ); Shelly.call( "KVS.Get", { "key": "EnergyConsumed", }, function callback(result, error_code, error_message, userdata) { if (error_code === 0) { energieKonsumWs = Number(result.value); print("Loaded consumed energy: ", energieKonsumWs / 3600000, " kWh"); } } ); function timerHandler(user_data) { let em = Shelly.getComponentStatus("em", 0); //print (em) if (typeof em.total_act_power !== 'undefined') { let power = em.total_act_power; //print (power) if (power >= 0) { energieKonsumWs = energieKonsumWs + power * 0.5; } else { energieReturnWs = energieReturnWs - power * 0.5; } CounterSave = CounterSave + 1; CounterSaldieren = CounterSaldieren + 1; CounterRefrech = CounterRefrech + 1; //print("REAL"); //print("AKTPO =", AktPO); //print("CounterRelais =", CounterRelais); //print("CounterSaldieren =", CounterSaldieren); AktPO = (AktPO + power); //print("POWER;AKTUELL-MITTEL;SUMME-POWER", power,";",(AktPO / (CounterSaldieren + 1)),";",AktPO); if (CounterSaldieren == 1) { // Bereitstelung der Stufe Multiplikator = (Multiplikator * -1); Shelly.call("Sys.SetConfig", {config: {location: {lon: STUFE * Multiplikator }}}); } if (CounterSaldieren == 2) { // Anzeige NAME Shelly.call("Sys.SetConfig", {config: {device: {name: Aktuell.toFixed(0)+"W ("+STUFE+") : " + Shelly.getComponentStatus("sys").time + " : +"+(energieKonsumWs / 3600000).toFixed(1)+" kWh -"+(energieReturnWs / 3600000).toFixed(2)+" kWh" }}}); } if (CounterSaldieren > 19) { print("CounterSaldieren"); CounterRelais = CounterRelais + 1; Aktuell = (AktPO / (CounterSaldieren + 1)); AktPO = Aktuell; CounterSaldieren = 0; //print("POWER =", Aktuell); //print("STUFE =", STUFE); //print("LAST =", LAST); if (CounterRelais > 1) { //print("CounterRelais"); //print("AKTUELL =", Aktuell); //print("CounterRelais =", CounterRelais); CounterRelais = 0; if (Aktuell < ((LAST + LAST - (LAST / DivLastReturn)) * -1)) { //Accu Lader viel mehr -500W STUFE = STUFE + 2; //print("STUFE + 2 ", STUFE, (LAST * 2) ); } else if (Aktuell < ((LAST - (LAST / DivLastReturn)) * -1)) { //Accu Lader mehr -225W STUFE = STUFE + 1; //print("STUFE + 1 ", STUFE, LAST ); } else if (Aktuell > (LAST + (LAST / DivLastKonsom))) { //Accu Lader viel weniger +300W STUFE = STUFE - 2; //print("STUFE - 2 ", STUFE,(LAST + (LAST / 5)) ); } else if (Aktuell > (LAST / DivLastKonsom)) { //Accu Lader weniger +50W STUFE = STUFE - 1; //print("STUFE - 1 ", STUFE,(LAST / 5) ); } if (STUFE > 4) { STUFE = 4; } else if (STUFE < 0) { STUFE = 0; } if (STUFENWECHSEL < STUFE) { Senden = 1; AktPO = Aktuell + LAST; } else if (STUFENWECHSEL > STUFE) { Senden = -1; AktPO = Aktuell - LAST; } //print("wird gesendet: ",Senden); if (Senden != 0) { CounterRefrech = 1 if (STUFE > 0) { http ('192.168.0.34/relay/2?turn=on&timer=2000'); //Shelly Pro3 //RelaisON(REMOTE.ip, REMOTE.relay1, 'on', '2000'); } if (STUFE < 1) { http ('192.168.0.34/relay/2?turn=off'); //RelaisOFF(REMOTE.ip, REMOTE.relay1, 'off'); } if (STUFE > 1) { http ('192.168.0.34/relay/1?turn=on&timer=1500'); //Shelly Pro3 //RelaisON(REMOTE.ip, REMOTE.relay2, 'on', '1500'); } if (STUFE < 2) { http ('192.168.0.34/relay/1?turn=off'); //RelaisOFF(REMOTE.ip, REMOTE.relay2, 'off'); } if (STUFE > 2) { http ('192.168.0.34/relay/0?turn=on&timer=1000'); //Shelly Pro3 //RelaisON(REMOTE.ip, REMOTE.relay3, 'on', '1000'); } if (STUFE < 3) { http ('192.168.0.34/relay/0?turn=off'); //RelaisOFF(REMOTE.ip, REMOTE.relay3, 'off'); } if (STUFE > 3) { http ('192.168.0.35/relay/0?turn=on&timer=1000'); //Shelly Pro2 //Shelly.call("Switch.set", {'id': 100, 'on': true, toggle_after: 1000}); //direct Original //print("Local/relay/100/on/time=1000"); } if (STUFE < 4) { http ('192.168.0.35/relay/0?turn=off'); //Shelly Pro2 //Shelly.call("Switch.set", {'id': 100, 'on': false}); //direct Original //print("Local/relay/100/off"); } Senden = 0; STUFENWECHSEL = STUFE; } } //Shelly.call( //"Sys.SetConfig", { //config: {device:{name: Aktuell.toFixed(0)+"W ("+STUFE+") : " + Shelly.getComponentStatus("sys").time + " : +"+(energieKonsumWs / 3600000).toFixed(1)+" kWh -"+(energieReturnWs / 3600000).toFixed(2)+" kWh"}}, //}, //function(result, error_code, error_message, userdata) { //print("error ", error_code, " : ", error_message); //print("result", JSON.stringify(result)); //} //); CounterRefrech if (CounterRefrech > 1990) { //print("CounterRefrech"); CounterRefrech = 1; Senden = 1; } if (CounterSave > 3599) { //print("CounterSave"); CounterSave = 0; SaveCounters(); } } } } function SetKVS(key, value) { Shelly.call( "KVS.Set", { "key": key, "value": value, }, function(result) { //print("KVS Saved, rev:", result.rev); } ); } function http (url) { print('http://' + url ); Shelly.call( "http.request", { method: "GET" , timeout: "5" , url: 'http://' + url }, function (response, error_code, error_message, ud) { //print(JSON.stringify(response)); //print(JSON.stringify(error_code)); //print(JSON.stringify(error_message)); //print(JSON.stringify(ud)); }, null ); } function SaveCounters() { SetKVS("EnergyConsumed", energieKonsumWs ); SetKVS("EnergyReturned", energieReturnWs ); } function start() { Timer.set(500, true, timerHandler, null); } Timer.set(1000,false,start); //Timer.set(500, true, timerHandler, null); // Original
Wenn die Leistung der PV nicht mehr reicht oder zu wenig Warmwasser da ist,
Die 3 Stunden ist die Aufheizzeit vom Speicher.
Marius
-
Hallo Community
Ich würde gerne einen Pro 3 und einen Pro 2 jeweils mit einem Skript für „http Get Befehle“ für 3 Stunden sperren.
Hintergrund ist der, dass ich bei jedem Shelly einen Taster habe, der die Warmwasserspeicher für 3 Stunden manuell einschalten sollte.
Wollte meine Frau unbedingt!
Das Skript auf dem 3em Pro aber die 2 Shellys immer nach ein paar Minuten mit einem Off Befehl ausschaltet, das würde ich gerne verhindern.
Hoffe, Ihr könnt mir helfen
Marius