@paul53 Danke für deine Hilfe es hat nun alles geklappt. Da die Ausgangswerte bei mir immer Positiv sind, habe ich die Negierung weggelassen. Es funktioniert prächtig und ich bin meinem Verständnis von Blockly näher gekommen. Vielen Dank für eure Hilfe.
NEWS
Latest posts made by Chronos81
-
RE: Steckdose bei PV Einspeisung mit Durchschnittswert > X
-
RE: Steckdose bei PV Einspeisung mit Durchschnittswert > X
@asgothian Hier wie gewünscht nachgereicht noch das ChatGPT generierte Skript. Im Unterschied zu deinem Blockly macht er die Berechnung des MIttelwertes nicht fließend sondern beginnt immer neu nach 4 Werten. Dies ist mir aber auch erst aufgefallen, als ich die beiden Werte verglichen habe
Somit ist für diesen Anwendungsfall die "HI" immer noch im Vorteil.
// Array für die Speicherung der letzten 4 Einspeisewerte let einspeisungValues = []; // Funktion zum Berechnen des Mittelwerts function calculateAverage(values) { const sum = values.reduce((acc, value) => acc + value, 0); return sum / values.length; } on({ id: 'solax.0.data.feedinpower', change: 'any' }, async (obj) => { let feedinPower = parseFloat(getState('solax.0.data.feedinpower').val); if (isNaN(feedinPower)) return; // Fehlervermeidung, falls Wert ungültig ist // Wert ins Array speichern (maximal 4 Werte) einspeisungValues.push(feedinPower); if (einspeisungValues.length > 4) { einspeisungValues.shift(); // Ältesten Wert entfernen } // Berechne den Mittelwert der letzten 4 Werte if (einspeisungValues.length === 4) { let averageEinspeisung = calculateAverage(einspeisungValues); averageEinspeisung = Math.floor(averageEinspeisung); // Auf ganze Zahl abrunden // Speichere den Mittelwert im benutzerdefinierten Zustand 'Einspeiseleistung' setState('0_userdata.0.Solar.Einspeiseleistung_MW', averageEinspeisung, true); // Leere das Array für die nächsten 4 Werte einspeisungValues = []; } });
-
RE: Steckdose bei PV Einspeisung mit Durchschnittswert > X
@asgothian Muss ich heute abend machen, habe gerade keinen Zugriff auf meinen IOBROKER. Daher kann ich auch eure Blockly's erst frühestens heute Abend wenn nicht die nächsten Tage machen.
@Asgothian @paul53 Eure Ansätze helfen mir schon mal sehr weiter und ich versuche mich damit ran zu tasten. Ich melde mich wieder im Thread, wenn ich herausgefunden habe wie ich alles nachbaue
und wenn ich entweder eine Lösung habe oder ein Problem. Kann aber noch bisschen dauern
-
RE: Steckdose bei PV Einspeisung mit Durchschnittswert > X
@paul53
Danke für deinen Hinweis. Meine Eingangswerte auf die ich mich beziehe, sind bereits geglättet und geben mir durch ein von ChatGPT erstelltes Javascript einen Wert zurück welcher bereits gemittelt ist. So ändern sich diese Werte circa alle 40 Sekunden.
Da ich aber nun gerne verstehen würde wie ich das in Blockly "selber" hinbekomme wollte ich mich hier mal der Sache annähern.
Der Eigenverbrauch des Verbrauchers beträgt um die 160W. Von daher habe ich hier schon etwas Spiel mit eingerechnet. Könnte aber, wenn ich es richtig bedenke, auch noch auf 500W Schwellenwert gehen. -
RE: Steckdose bei PV Einspeisung mit Durchschnittswert > X
@asgothian Danke für deine schnelle Antwort und den Ansatz. Ich bin gerade dabei mir das Blockly in seiner Gesamtheit vorzustellen. Ist momentan nicht so einfach da ich wirklich noch nicht lange Blockly verwende. Kann es sein, dass da nach dem ersten Doppelpunkt ein Screenshot fehlt?
-
Steckdose bei PV Einspeisung mit Durchschnittswert > X
Hallo zusammen,
ich bin ein relativer Neuling in Sachen Javascript und auch Blockly. Einfache Problemstellungen bekomme ich hin aber nun bin ich an eine Stelle gestossen wo ich nicht weiß wie ich es beheben kann und für euch, denke ich, ist dies ein LeichtesProblemstellung: Ich möchte einen Shelly PlugS einschalten wenn ich Strom meiner PV Anlage ab einer gewissen Menge ins Netz einspeisen würde.
Ich möchte nicht dass der Schalter ständig ein- und ausschält sondern möchte etwas Spiel bei den Schaltvorgängen haben. Daher habe ich folgende Idee:Wenn sich der Wert des Datenpunktes Stromeinspeisung ändert, schreibe den Wert in ein Array, sind 4 Werte im Array, prüfe ob der Durchschnittswert >300 ist. Wenn ja schalte den Switch auf "true". Ist der Durchschnittswert <300 dann soll der Switch auf "false" gestellt werden. Danach soll wieder der nächste Wert im Array an Stelle 1 gesetzt werden und die Logik dementsprechend für die nächsten 4 Werte neu gestartet werden.
Könnt ihr mir hier bitte einen kurzen Hinweis geben, wie ich das Blockly mit Schleife, Array und Variablen erstellen kann? Am liebsten grafisch, damit ich das verstehe.
Datenpunkte und notwendige Objekte sind alle vorhanden und ich weiß auch wie ich den Switch ein und ausschalten kann.
Ich hoffe ich habe das verständlich erklärt.
Vielen Dank für eure Kompetente die Info und eure Hilfe im Voraus.
-
RE: WGET funktioniert nicht im Blockly
@haus-automatisierung Ja das weiß ich. Das war nur zum Test als temporäre Maximallösung bezüglich der Berechtigungen gedacht um dem Fehler auf die Schliche zu kommen.
-
RE: WGET funktioniert nicht im Blockly
@haus-automatisierung nach dem Hinweis von @BananaJoe hat es bei mir mit dem tmp Ordner geklappt. Den Wget Befehl anzupassen werde ich heute Abend nochmals versuchen und ein Ergebnis hier posten.
Danke für eure Hilfe.
-
RE: WGET funktioniert nicht im Blockly
@bananajoe Danke für deinen Hinweis. Das hat für mich nun so geklappt, super!
-
RE: WGET funktioniert nicht im Blockly
@haus-automatisierung Ja ich schaue mir die Basics bestimmt an. Alleine die Zeit ist rar.
Ich habe mir nun den Debug nochmal angeschaut. Es zeigt mir an, dass es keine solche Datei oder Ordner gibt.Nachdem ich aber auch die Datei über wget direkt in der Konsole hinzugefügt habe sieht man hier den Auszug aus selbiger mit den maximalen Rechten:
Daher weiß ich nicht wo das Blockly nach den Dateien sucht.