Mittelwert errechnen für eine einfache Jalousiensteuerung

Schönen guten Abend,

ich habe an jeder Hauswand einen Lichtsensor, den ich über eine Siemens Logo auslesen kann (Integer Wert von 0-1000)

Ich will jetzt eine ganz einfache Steuerung schreiben, die beim erreichen eines bestimmten Wertes, die Jalousien an der jeweiligen Hauswand runter bzw hochfahren.

Wenn ich Ihm einfach sage bei Wert 600 runter und bei wert 300 hoch, kann sich jeder vorstellen, was für ein Chaos das ergibt :smiley:
Mit was für einem Befehl, kann ich den Mittelwert von sagen wir mal 15 Minuten errechnen und ihn danach in eine Variable schreiben lassen ?

Also ich lese jede Minute die Lichtwerte aus den Himmelsrichtungen und schreibe sie in eine Datei, so dass ich immer die 10 letzten Werte habe. Alle 20 Minuten errechne ich mir daraus den Mittelwert und nehme diese Zahl für 5 feste Lichtwert-Intervalle (Erfahrungswerte). Jedem Intervall ist eine Jalousie- bzw. Rollladenposition zugeordnet, die ich anfahre, wenn der Mittelwert im Intervall ist. Wenn die Rolllade schon da ist, mache ich nichts. Das Ganze für alle Rollladen/Jalousien. Damit habe ich nur höchstens alle 20 Minuten eine Bewegung, und auch nur dann wenn die Abweichung in den letzten Minuten signifikant war. Damit spare ich mir eine Hystereseüberlappung.
Da ich das sehr früh programmiert habe, würde ich das jetzt nicht mehr mit einer Datei machen, sondern die Zahlen in eine Stringvariable schreiben, die ich mit Explode/Implode in ein Array exportiere/importiere. Das mache ich an anderer Stelle, um Variablen zu sparen auch.

Das hört sich ja alles ganz gut an, aber ich bin was sowas angeht noch in den Anfängen und müsste erstmal wissen, wie ich diese Mittelwerte errechne :slight_smile:

Trotzdem schon einmal danke für diese Infos.

mfg

Im nutze genau dazu im Blind Control Modul die Methode AC_GetAggregatedValues(). Sie liefert dir Durchschnittswerte über einen vorgegebenen Zeitraum, die du nur addieren und durch die Anzahl teilen musst.

Vielleicht trifft aber auch das Modul deine Anforderungen, so dass du gar nichts programmieren musst :slight_smile:

Gewisse Grundfertig- und fähigkeiten solltest du schon haben, um mit IP-Symcon umgehen zu können. Dazu gehört auch unbedingt, dass du schon mal programmiert hast. Wenn du wirklich aus 10 Werten in einem Array nicht den (arthm.) Mittelwert berechnen kannst und dafür nach einer Funktion fragst, dann wirst du trotz (oder viel eher wegen) des mächtigen PHPs nicht glücklich. IP-Symcon ist ja gerade das Gegenteil aller so genannten Smart-Home Lösungen.

Warum machst du die Steuerung nicht in der LOGO! und übergibst die Daten dann zur Bedienung und Visualisierungen an IPS? Beispiele siehe Siemens WEB. Home Automation | LOGO! Logic Module | Siemens Global

Vielen Dank für den Tipp, damit lässt sich arbeiten :slight_smile:

Dankeschön, aber ich lernen jeden Tag dazu, ich habe schon so einiges Sachen programmiert indem ich mich hier durchgefragt habe und bin mehr als glücklich mit Symcon, es macht einfach riesen Spaß neues zu lernen und dann hier anzuwenden. Wenn das ganze dann am nächsten Tag dann auch noch so funktioniert wie geplant umso besser :slight_smile:

Ich kann bumaas nur beipflichten, das Modul BlindControl ist schon genial. Da hast Du eine richtig tolle Rollladen–und Jalousiesteuerung, auch für Markisen oder Raffstores.
Das Modul geht zwar über eine einfache Steuerung hinaus, aber man muss ja nicht alle Funktionen nutzen :wink:

Ja, damit werde ich das ganze auch jetzt realisieren. Echt genial, was man da alles mit machen kann und welche Sensoren er alle abgreifen kann usw.
Gefällt mir richtig gut.

Ich denke, der Thread kann geschlossen werden.

Danke an alle für die Hilfe