Gut erklärt!!!!!!!!!!!! Du solltest dir für sowas auch mal den gleitenden Mittelwert anschauen. Hier wird immer nur ein Prozentwert tau (typischerweise 1-25%, also 0,01 - 0,25) der Differenz des Messwerts zum letzten Mittelwert genommen und somit ein neuer Mittelwert gebildet. Das spart das sammeln von Werten in einer Liste und eignet sich super um Spitzen in Messwerten abzudämpfen. Mittelwert neu = (Messwert - Mittelwert) * tau + Mittelwert
@gpeter7498
Жыл бұрын
Sehr gut erklärt! Es hat mir beesonders gefallen das du dir zeit gelassen hast und es nicht in 2 minuten abgehandelt hast
@verdrahtet
Жыл бұрын
Freut mich, danke!!!!
@mr.k2319
Жыл бұрын
Perfekt. Ich bin gerade dabei einen Sonnensensor in meine Rollladensteuerung zu integrieren. Dabei hilft mir die Durchschnittsberechnung sehr. Danke.
@verdrahtet
Жыл бұрын
Super! Dann kommt das Video ja echt gerade richtig
@reinholdfideler9676
Жыл бұрын
Wunderbar, genau damit wollte ich mich demnächst beschäftigen. Einfach gut erklärt
@verdrahtet
11 ай бұрын
Dankeschön!
@ehbauer1545
10 ай бұрын
Vielen Dank für dein Video in bekannt toller Qualität. Mit ein paar Änderungen kann ich jetzt die Regenmenge der letzten 24 Stunden berechnen. 👍 Danke.
@verdrahtet
10 ай бұрын
Ach wie cool! Das ist ja super! Freut mich!
@marios.86
Жыл бұрын
Genau das war noch ein offener Punkt in meinem System. Direkt test damit gemacht. Ich werd es zum verschatten der Räume nutzen, wenn die Raumtemperatur durch Sonne Steigt. Super video immer weiter damit. 👍🏻
@FlorisMetzner
5 ай бұрын
Danke, gute Erklärung und Einleitung!
@stefanholthaus9744
Жыл бұрын
Sehr gut erklärt,den Durchschnitt würde ich für die Beschattung nutzen.
@verdrahtet
Жыл бұрын
Danke fürs Feedback!
@williwolters4139
Жыл бұрын
Vielen Dank für das interessante und nachvollziehbare Video! Mir ist doch dadurch glatt wieder eingefallen, dass ich noch ein Script für die Überschussladung meines Model 3 erstellen wollte!
@verdrahtet
Жыл бұрын
Danke! Darauf baut dieses Skript auch auf. Berechne damit auch mein Überschuss laden. Wäre das interessant für ein Video?
@williwolters4139
Жыл бұрын
@@verdrahtet Was für ne Frage!? 🙂 Nur befürchte ich, wenn ich bis dahin was gebastelt habe und das später mit deiner Profiversion vergleiche, sinkt mein Selbstvertrauen bis in den Keller! Dabei ist das größte Problem: Wir haben keinen Keller!
@nilshartig8735
11 ай бұрын
Gut gemacht. Gut erklärt. Bedeutend. Danke 🙂
@verdrahtet
11 ай бұрын
oh danke :)
@neu_brickstein
Жыл бұрын
Super Video..Danke Stefan! 👍
@verdrahtet
Жыл бұрын
Danke für das Lob!
@Snayr2407
Жыл бұрын
Vielen Dank Stefan :) Was bei dem Script fehlt wäre wenn die List durch Zufall/Fehler, 11 Werte enthält oder größer ist. Hier könnte man mit einer Schleife arbeiten, bis die Liste wieder exakt 10 ist.
@JL-hh4cf
Жыл бұрын
Das ginge mit .splice() einfacher da man die Anzahl der Elemente die zuviel sind mit .length ermitteln kann und diese bei .splice() direkt als Parameter mitgeben kann um diese auf einen Schlag zu löschen.
@derabsoluteHammer
Жыл бұрын
Tolles Video, das Thema ist bestimmt für einige Leute interessant, Danke für deine Mühe, top gemacht !!! Ich werde es zur Überwachung des Stromverbrauchs des Gefrierschranks nutzen, da wir erst nach einigen tagen gemerkt haben das der alte defekt war, wars für den Inhalt natürlich zu spät, beim neuen wird der Stromverbrauch überwacht und wenn der unter einen gewissen Durchschnittswert fällt wird ne Warnung ausgegeben. Ist leider nur über den Durchschnitt möglich da er zum Teil auf
@verdrahtet
Жыл бұрын
Tolle Idee! Super! Danke für Dein Feedback!
@peterf9429
Жыл бұрын
Ich würde vielleicht auch den Medianwert in Betracht ziehen, ist resistenter gegen Messfehler, je nachdem was gemessen wird. Ich habe auch eine Hysterese in Verwendung, die den zeitlichen Abstand bewertet, also aktuellere Werte bekommen eine andere Wichtung für den Durchschnitt als weiter zurück liegende. Für eine Solar-Speicherheizungssteuerung habe ich die Temperaturen unter einer definierten Zieltemperatur in Stunden erfasst: (je länger es kalt war, desto länger soll nachgeheizt werden)
@ruedigerhaack
2 ай бұрын
Ich brauche den Durchnitt für einen Temperaturwert, mit dem ich dann die Pumpe vom Pool steuern möchte. Damit soll das Wasser durch die selbstgebaute Solarheizung fließen.
@ruedigerhaack
10 ай бұрын
Gruß aus Großheide. Genau das Thema hatte ich gesucht. Ich brauche das für einen Abstandssensor so oder etwas abgewandelt. Das muss ich noch testen. Der Abstandssensor (ESP mit Tasmota ...) hat nämlich ab und zu mal so einen "Ausreisser".
@verdrahtet
10 ай бұрын
Dafür isses perfekt! Gruß aus Langefeld :)
@nilshartig8735
11 ай бұрын
Danke für das Video. Ich beiße mich aber an einer Stelle fest und freue mich über Hilfe. Ich bekomme mein Blockly nicht geregelt, weil ich so etwas wie ein Zirkelbezug habe. Ich messe am Stromzähler über eine Shelly 3EM den Gesamtzu- oder -abgang. Sobald ich den Tesla Lade ist das ja auch im Gesamtabgang mit drin. Wie um alles in der Welt regelt ihr dann den Ladestrom? Es müsste ja so etwas sein wie: " ... wenn Shelly Einspeisung anzeigt, erhöhe sukzessive den Ladestrom, bis Wert wieder in einer Range zwischen -100 und +100 Watt". Und natürlich auch gegenläufig. Irgendwie beiße ich mich da in der Logik fest. Wie macht ihr das?
@martl745
Жыл бұрын
Super Video. Hab das Thema sehr kompliziert gelöst. Brauche ich unbedingt das Array als datenpunkt? Da verstehe ich den Sinn nicht ganz.
@JL-hh4cf
Жыл бұрын
Wie willst du sonst 10 Werte in einem Datenpunkt speichern außer in einem Array?
@martl745
Жыл бұрын
@@JL-hh4cf ich hätte versucht die Liste der 10 werte nur im Script zu lassen. Dann den Durchschnitt und in den datenpunkt schreiben.
@karlheinz_ma
Жыл бұрын
Sieht alles ganz einfach aus und ist gut erklärt. Hab das bei mir mal versucht nachzuvollziehen und musste feststellen, der Button für das Skript fehlt bei meiner Installation. Muss ich da erst einen entsprechenden Adapter installieren?
@verdrahtet
Жыл бұрын
Genau - der muss installiert werden. Such mal bei den Adaptern nach "Skript"
@ralfdaehn5795
9 ай бұрын
Schönes Video, habe gerade die ersten Gehversuche gemacht mit Hilfe deiner Anleitung, ich sehe auch die Wete eintrudeln und den Durchschnittswert schon in grün, aber in der Log habe ich Meldungen : State value to set for "0_userdata.0.Strom1.Durchschnitt_solaranlage_liste" has to be one of type "string", "number", "boolean" but received type "object" . Was habe ih den falsch gemacht, wenn alles in grün wunderbar angezeigt wird. ?
@verdrahtet
9 ай бұрын
Hi! So schwer zu sagen. Welche Art von Objekt hat denn das Objekt?
@Basti-12345
8 ай бұрын
Ich möchte gerne 12 interne Variablen addieren, klappt aber nicht.hab schon über Liste es versucht. Muss ich jede einzelne der 12 Variablen vorher einmal mit 0 beschreiben? Trigger steht auf jede Sekunde. Kann jemand helfen?
@MrJackFT
10 ай бұрын
Hallo, prima erklärt! Bei mir scheitert es schon beim Anlegen der Objekte im ioBroker. Ich lege unter 0_userdata.0 ein Verzeichnis Test an. Wenn ich dann auf dieses Verzeichnis gehe und das + Symbol betätige, bekomme ich in dem sich öffnenden Fenster unter Typ nur Zustand,Kanal,Gerät,Verzeichnis zur Auswahl. Kein Datenpunkt. Was läuft da falsch?
@verdrahtet
10 ай бұрын
Hi! Das heisst nun Zustand. Sorry - war mir gar nicht bewusst, dass es nun anders heisst
@kleztv1542
Жыл бұрын
Tolles Video, danke dafür!! Wäre es auch möglich gewesen einfach alle Werte in eine InfluxDB zu schreiben und den durchschnitt daraus zu holen? Vorteil wäre, dass Du auch gleich noch Grafana zur Auswertung mit dranhängen könntest.
@verdrahtet
Жыл бұрын
Danke für Dein Lob! Ich wüsste gerade so nicht, wie man mit Blockly Daten aus der InfluxDB laden könnte.
@kleztv1542
Жыл бұрын
@@verdrahtet Es gibt ja einen InfluxDB Adapter für ioBroker. Der kann zumindest per JavaScript Querys an die InfluxDB senden und die Daten zurück liefern. Ob das auch irgendwie über Blockly funktioniert weiß ich allerdings nicht.
@haus_automation
Жыл бұрын
Ja, das geht natürlich auch ;)
@mathiasziegler9156
Жыл бұрын
Wäre jetzt nur die Frage wie das dann geht🙈😄🤔 Also ich steh da etwas aufm Draht
@haus_automation
Жыл бұрын
@@mathiasziegler9156 Ich baue gerade einen Block dafür in den JavaScript-Adapter, damit das möglichst einfach ist.
@xbowcx
Жыл бұрын
Für was speicherst du die Liste in einem DP? Ich hab die 10 Listenelemete initial "erzeuge Liste 10 mal mit Element 'aktuellen Wert' " beschrieben (einzeiler) und dann den Trigger (3zeiler) machen lassen. Weniger Schreibzugriffe auf dem Speichermedium. Die Liste ist doch nur interessant wenn man die Werte visualisieren will.
@verdrahtet
Жыл бұрын
Den braucht man da wirklich nicht zwingend - da hast Du recht. Glaube aber auch nicht, dass diese Datenpunkte wirklich auf dem Speichermedium gespeichert werden - glaube sie bleiben auch eher im Arbeitsspeicher.
@xbowcx
Жыл бұрын
@@verdrahtet mach mal die iobrokerrechner aus, wenn die Datenpunkte noch da sind sind sie definitiv auf der SD oder der Festplatte gespeichert 😉
@reinholdfideler9676
Жыл бұрын
Bei mir kommt folgender Fehler, obwohl ich es wie im Video eingab 08:29:52.004 error javascript.0 (1051639) script.js.Eigene_Scripte.test.PVzusammen_Mittelwertberechnung: TypeError: Reduce of empty array with no initial value 08:29:52.004 error javascript.0 (1051639) at mathMean (script.js.Eigene_Scripte.test.PVzusammen_Mittelwertberechnung:4:17) 08:29:52.005 error javascript.0 (1051639) at Object. (script.js.Eigene_Scripte.test.PVzusammen_Mittelwertberechnung:25:125)
@michael516
Жыл бұрын
Funktionieren mag es. Dennoch könnte man es schöner programmieren... (Slicing verwenden, die Liste nur einmal aktualisieren, etc.)
@verdrahtet
Жыл бұрын
Das stimmt. Viele Ideen und Vorschläge habe ich hier auch in den Kommentaren erhalten. Aber nur so kann man lernen, oder? :)
@thomaskuhn6226
Жыл бұрын
Hallo. Tolles Video. Hab es nach deiner Anleitung exakt genauso aufgebaut, gestartet, aber er schreibt bei mir keine Werte. Die neuen Datenpunkte füllen sich nicht, obwohl keine Fehler protokolliert werden. Als Ausgangsquelle habe ich den Datenpunkt PVLeistung meiner Solaranlage genommen, welcher Werte in W liefert. Ich kanns nicht nachvollziehen.
@verdrahtet
Жыл бұрын
Ist das Skript auch gestartet?
@thomaskuhn6226
Жыл бұрын
@@verdrahtet Es gab zumindest keinen Fehler beim Starten und es wird laufend angezeigt.
@thomaskuhn6226
Жыл бұрын
Das hier wurde beim Start ausgegeben: 16:26:00.630 info javascript.0 (225) Start javascript script.js.Strom.Durchschnitt_berechnen-Solaranlage 16:26:00.640 info javascript.0 (225) script.js.Strom.Durchschnitt_berechnen-Solaranlage: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
@verdrahtet
Жыл бұрын
Magst mir mal ne mail schicken mit dem export vom Skript?
@thomaskuhn6226
Жыл бұрын
@@verdrahtet Kann ich gerne tun. :) Auf was soll ich mich beziehen, damit du erkennst worum es geht und wohin soll ich sie senden?
@tagi8988
Жыл бұрын
Wozu schreibst du den Inhalt der Variable „Liste“ noch in einen Datenpunkt? Das ist doch doppelt gemoppelt.
@verdrahtet
Жыл бұрын
Dies ist doppelt - das weiß ich. Wenn das Skript neu startet können so die Datenpunkte gleich mit genutzt werden
@Dorfsheriff
11 ай бұрын
Welche Javasript Version hast du, wo es funktioniert? Ich hatte noch verson 4.3.4 und da hat das auf anhieb funktioniert. Da ich einmal auf dem System drauf war habe ich den anlass genommen alles zu updaten was da so war, jetzt habe ich Javasript 7.1.4. und es kommen speziell bei dem script laufend Fehlermeldungen, Downgrade auf 7.0.5. bringt auch nichts und weiter zurück kann ich nich über die oberfläche. Edit: hab noch ein bischen rum probiert, diese interne Programmvariable macht das Problem, die kann ich nicht mit irgend welchen datenpunkten beschreiben, egal was, es kommt immer die Fehlermeldung: TypeError: Liste.shift is not a function
@verdrahtet
11 ай бұрын
Das ist eigenartig. Bei mir funktioniert das Skript seit Erstellung des Videos. Und ich aktualisiere regelmäßig mein System ....
@Dorfsheriff
11 ай бұрын
@@verdrahtet das stimmt. Ich werde das blocken Programm heute nochmal komplett neu machen, mal sehen was passiert
@Dorfsheriff
11 ай бұрын
Hab jetzt sogar den raspi mit iobroker neu aufgesetzt, geht nicht selbes Problem. Sowie auch die Übertragung der Werte der homematic Systemvariablen
@verdrahtet
11 ай бұрын
@@Dorfsheriff Schick mal n Screenshot vom Programm via Mail bitte
@Gerhard-qr4nb
Жыл бұрын
Ich habe den falls block einfach mit wiederhole solange ersetzt dadurch wird auch eine Überlänge gelöscht 🤓
@torsten23
Жыл бұрын
Hast du auch grad Probleme zwischen ioBroker und Homematic? Scheint ein generelles Problem zu geben.
@verdrahtet
Жыл бұрын
Bei mir funktioniert alles. Was genau geht denn nicht
@torsten23
Жыл бұрын
@@verdrahtet Beim Auslesen der Kanäle scheint es ein Problem mit den empfangenen Daten zu geben.
@verdrahtet
Жыл бұрын
@@torsten23 Funktioniert bei mir. Hast Du das bei bestimmten Geräten? Haben viele das Problem? - Weil Du schreibst "generelles Problem"
@marcowilli4467
3 ай бұрын
Ich schnalls nicht zu 100%. Nehmen wir an es wären nicht 10s sondern 10min. Wie oder welcher Teil vom Video zeigt, wann er in die Liste schreiben soll? Weil wenn er in den letzten 2 Minuten die Liste voll macht, ist es nicht der Durchschnitt der letzten 10min, sondern der letzten 2min.
@reinholdfideler9676
Жыл бұрын
tschuldigung ich hatte einen Tippfehler
@verdrahtet
Жыл бұрын
:) Also funktioniert nun alles? Freut mich! Viel Spaß mit Deiner Umsetzung
@FAGOTTOrgelverlag
9 ай бұрын
Kann man denn im Editor eine feste Größe für die Fenster (z.B. für HD-Tablet) definieren, oder bleibt diese immer dynamisch?
@verdrahtet
9 ай бұрын
Meinst Du nun in der VIS? Oder von was sprichst Du hier? Falls es um die VIS geht - das kann man einstellen
@FAGOTTOrgelverlag
9 ай бұрын
@@verdrahtet Servus! Nein, ich meinte eigentlich deine Videos über Lovelace. Verstehe selbst nicht, weshalb mein Kommentar hier gelandet ist...
Пікірлер: 77