Meiner war auch von Amazon, naja leider hat das mit dem Ground nicht lange gehalten, er hat sich wieder zurückgesetzt und zu allem Überfluss war er auch der Meinung die Cloud Verbindung dauerhaft abzuschalten, nach dem neu einbinden über die App. Ich wende mich jetzt an den Support.
Beiträge von JoloXD
-
-
Es freut mich das ich dir helfen konnte.
- Man könnte eine isOnline ? Abfrage einbauen welche die HTTP-Requests pausiert sobald sagen wir google.com nicht mehr von deinem Shelly angepingt werden kann.
- Man könnte die Anzahl der Timer, die von dem Skript verwendet werden, reduzieren, indem man den Timer, der für das Absetzen der HTTP-Anfrage verwendet wird, entfernt und stattdessen die HTTP-Anfrage direkt in der runLoop()-Funktion aufruft.
- Oder eine andere Möglichkeit wäre, die Anzahl der parallel ausstehenden HTTP-Anfragen zu begrenzen, indem man eine Art Warteschlange implementiert. Dies könnte man beispielsweise erreichen, indem man die HTTP-Anfragen in einem Array speichert und dann eine Schleife über das Array implementiert, die nur eine begrenzte Anzahl von Anfragen pro Durchlauf bearbeitet. Das würde verhindern, dass jemals zu viele Anfragen gleichzeitig ausstehen und das Skript abbrechen lassen könnten.
Das Problem liegt also wahrscheinlich an der Shelly 5er Grenze oder an zu vielen offenen HTTP- Anfragen.
Die 3 Vorschläge wären auch noch möglich, ich denke vor allem eine Warteschlange könnte dein Skript wesentlich verbessern.
-
Ich habe bei mir 2 Motion (einen Alten und einen Neuen) permanent mit einem Netzteil verbunden.
Ich habe 4 TVR in Einsatz. Einer davon saugt seinen Akku regelmäßig in 2 Monaten leer. Bei dem überlege ich auch gerade ihn permanent zu versorgen.
Danke, ironfly das war sehr hilfreich.
Mein Anliegen habe ich ebenfalls direkt dem Shelly Support mitgeteilt, die Antwort darauf lautete:
Dear XY,
Thank you for contacting us!
Nothing to worry about, the devices can't get damaged when they're powered only by USB.
Best use case is to charge them when the battery runs out.
Kind regards,
Shelly Support Team
Vorerst werde ich als Test, 1x TRV und 2x Motion kaufen und alle dauerhaft über ein Netzteil versorgen.
Vielen dank für eure Hilfe.
-
du kannst ja mal spaßeshalber deinen TRV aufladen
Ich besitze noch keinen, sondern plane ein paar TRV sowie Motion zu erwerben.
Danke für dein Feedback, die TRV sind dann ungeeignet für mich, wie sieht es mit den Motion 2 aus überladen die ebenfalls?
Kann man die Geräte vielleicht mit ausgebauten Akku, nur über USB-C betreiben?
-
Also gibt es keine Intelligente Lade Logik ?
Es scheint, dass mein Nuki Schloss eine intelligente Lade-Logik hat, die dafür sorgt, dass der Akku nicht überladen wird. Ich betreibe das Schloss auch dauerhaft am Netzteil angeschlossen und habe beobachtet, dass der Akku erst ab 60% aufgeladen wird und dann nur bis 90%. was mit ermöglicht, das Schloss immer angeschlossen zu lassen, ohne dass der Akku überladen wird.
In Bezug auf die Shelly Geräte bin ich mir nicht sicher, deswegen fragte ich ja wie sich die Geräte verhalten und ob sie mit einem dauerhaften Anschluss zurechtkommen würden. Die Möglichkeit, sie dauerhaft eingesteckt zu lassen, ohne viel Aufwand und trotzdem versteckt zu halten, ist bei mir gegeben warum sollte ich diese dann nicht auch nutzen.
Es geht mir nicht darum zu diskutieren ob das nun nötig ist oder nicht, wenn ich mir die Geräte zulege dann wäre an den vorgesehen Standort auch schon ein USB C Anschluss vorhanden, deswegen würde ich diesen auch nutzen, vorausgesetzt das führt nicht zu einem Überladen und somit zu einem Brand.
-
Es könnte sein das du du merhfach RPC-Calls oder Timer an den Shelly schickst, zum Beispiel um seinen Status zu überprüfen und ihn gegebenenfalls umzuschalten. Dadurch erreichst du die maximale Anzahl von 5 RPC-Calls pro Skript und das Skript funktioniert nicht mehr. Um das Skript zu verbessern und die maximale Anzahl von RPC-Calls zu vermeiden, verwende den Shelly Status Handler für den Status des Shelly-Switches.
Alternativ fällt mir noch folgendes ein:
- Man könnte den Timeout für den HTTP-Request erhöhen, damit das Skript nicht so schnell abbricht, wenn die Request peding sind.
- Man könnte eine isOnline ? Abfrage einbauen welche die HTTP-Requests pausiert sobald sagen wir google.com nicht mehr von deinem Shelly angepingt werden kann.
- Man könnte auch das Intervall für den Timer noch weiter erhöhen, damit weniger HTTP-Anfragen abgesetzt werden.
- Man könnte die Anzahl der Timer, die von dem Skript verwendet werden, reduzieren, indem man den Timer, der für das Absetzen der HTTP-Anfrage verwendet wird, entfernt und stattdessen die HTTP-Anfrage direkt in der runLoop()-Funktion aufruft.
- Oder eine andere Möglichkeit wäre, die Anzahl der parallel ausstehenden HTTP-Anfragen zu begrenzen, indem man eine Art Warteschlange implementiert. Dies könnte man beispielsweise erreichen, indem man die HTTP-Anfragen in einem Array speichert und dann eine Schleife über das Array implementiert, die nur eine begrenzte Anzahl von Anfragen pro Durchlauf bearbeitet. Das würde verhindern, dass jemals zu viele Anfragen gleichzeitig ausstehen und das Skript abbrechen lassen könnten.
Das Problem liegt also wahrscheinlich an der Shelly 5er Grenze oder an zu vielen offenen HTTP- Anfragen.
-
Versuch mal das:
Code
Alles anzeigen// Konfiguration starten let CONFIG = { // Shelly PLUS 1PM shelly_Verbraucher: "http://192.168.1.52/rpc/Switch.GetStatus?id=0" }; // Konfiguration beenden // Variablen definieren let Verbraucher_Power = 0; let PV_Power = 0; // Funktion für Verbraucher function Verbraucher() { Shelly.call( "HTTP.GET", { "url": CONFIG.shelly_Verbraucher }, function (result, error_code, error_message) { // Verbraucherleistung auslesen let Verbraucher_Power = JSON.parse(result.body).apower; // Verbraucherleistung ausgeben print("Verbraucher = " + Verbraucher_Power + "W"); // Ausgabe, ob Schalter an oder aus ist if (JSON.parse(result.body).output === true) { print("Verbraucher-Schalter ist an"); } } ); } // Timer für Verbraucherfunktion let timer_handle = Timer.set(3000,true,Verbraucher,null); // Funktion für PV-Anlage function PV() { Shelly.call( "switch.getstatus", { // für mehrere Schalter die jeweilige ID verwenden id: 0 }, function (result, error_code, error_message) { // PV-Leistung auslesen let PV_Power = (result.apower); // PV-Leistung ausgeben print("PV = " + PV_Power + "W"); // Prüfung, ob Verbraucherleistung kleiner als 300 ist // und Schalter ausschalten, falls ja if (300 > Verbraucher_Power) { Shelly.call("Switch.set", {'id': 0, 'on': false}); } // Ausgabe, ob Schalter an oder aus ist if (result.output === true) { print("PV-Schalter ist an"); } else { print("PV-Schalter ist aus"); } } ); } // Timer für PV-Funktion let timer_handle = Timer.set(3000,true,PV,null); // Eingabe auf Schalter einstellen und im abgetrennten Modus für korrekte Funktion des Codes.
In Zeile 48 und 68 waren Syntaxfehler beim print und du solltest auch sicherstellen, dass die Variable Verbraucher_Power in der Bedingung in Zeile 69 richtig referenziert wird.
-
Bin neu hier und überlege mir gerade 2x Shelly Motion 2 zu besorgen, nur bin ich kein Fan von Akkus, deswegen meine Frage:
Kann man den Shelly Motion 2 einfach dauerhaft am Netzteil lassen?
Wenn ja, geht das auch beim Shelly TRV?
-
Hab den Input bei einem an gnd angeschlossen und bisher läuft alles wie am Schnürchen! Anscheinend hat das Teil einfach nur etwas GND gebraucht, um wieder in die Reihe zu tanzen. Danke für den Tipp. Hoffe das bleibt so.
-
Also eher ein Software Fehler als Hardware Fehler? Werde mal ein Update versuchen danke.
-
Ist es möglich das irgend ein Speicher der Unis überläuft, vlt. weil kein Input Angeschlossen ist?
-
Habe das selbe Problem stark schwankende Spannung, woran liegt das denn gibt es da schon eine Lösung?
-
Ich hab das selbe Problem, meine Unis setzen sich regelmäßig immer wieder selbständig zurück auf Werkseinstellung.
Gibt es schon eine Stellungsnahme von Allterco dazu?