Variablen "Metaebene"?

Hello!

Folgende Thematik ist mal wieder bei mir schlagend geworden…
Wenn man IPS schon so lange verwendet wie ich, ändert sich die Hardware in Haus und Garten, sei es aus Defekten, Altersgründen, oder weil die Technik sich ändert, kein Ersatz usw.

Ich habe zb 2 Wechselrichter (WR) die Ihre Werte über ein JSON (aus Sunny WEBBox Bluetooth) liefern, die Leistung des einzelnen WR wird dargestellt; Die Werte werden bei Änderung mit PHP Code addiert und in einer Variablen „Gesamtleistung“ dargestellt.
Jetzt wurde die BOX defekt - wird seit 2015 nicht mehr hergestellt (außerdem teuer) Nun habe ich vom Auslesen per JSON umgestellt auf SMA Modul per LAN (nach FW Update); dieses liefert die Werte der WR in „neuen“ Variablen.

  • Erstens muss ich nun alle Berechnungen und Visualisierungen der Einzel WR nachziehen…
  • Zweitens alle Zusammenführungen (zb Gesamtleistung nachziehen)
    Jetzt habe ich noch ein 800 Watt Balkonkraftwerk bekommen - für hier gilt ähnliches. Zur Gesamtleistung PV muss dieses dazu gerechnet werden.
    Im April kommen neue Panele mit neuen Wechselrichtern mit anderer Auswertung und anderen Variablen usw.

Das Beispiel gilt auch für Temperatursensoren, Fensterkontakte, Strommesser usw.

Meine Überlegung zielt auf eine „Meta Variablenebene“ hin. Dort wird wir alles angelegt unanhängig von der eingesetzten Hardware die eben aus diversen Gründen wechseln kann. Alle weiterfolgenden Berechnungen, Scripte, Visualisierungen … nur von den Metavariablen aus.

Gleichzeitig könnte es ein Tool/Modul geben in dem man das Metaziel Variable angibt und die jeweilige Quelle(n) - Plural weil es wie im Fall oben sinnvoll ist zu sagen: Leistung WR 1 Variable ID + WR 2 Variablen ID geht in Metazielvariable. Evtl mit anderen Rechenoperation(en) - zb Umrechnungen Wh auf kWh. Im obigen Beispiel müßten natürlich auch die einzelen Werte der WR (1 und 2) auf die Metaebene abstrahiert werden…
Getriggert wenn sich eine der Quellen ändert - siehe unten wenn Q1,Q2 oder Q3 sich ändert

Eine solche Lösung würde die Verwaltung, die Ergänzung oder Tausch von Hardware, oder wie beschrieben Erweiterungen (zusätzlicher Wechselrichter) nur auf diese „Übersicht“ beschränken.

Metaziel 1 ---- Quelle1
Quelle2
Quelle3
Quelle1 + Quelle2 + Quelle3/1000
(evtl. Ausführung Code)

Klar kann man das alles auch in ein sehr großes Script schreiben, das ist aber alles andere als übersichtlich oder benutzerfreundlich. Wenn sich aber, wie bei mir mehr als 1000 relevante Variablen tummeln, ist das mühsam. Man muss jedesmal in Scripten prüfen, wo welcher Var vorkommt. Mir geht es um leichte Definition, Wartbarkeit und Übersichtlichkeit.

  • Hat jemand das vollständig gelöst?
  • Gibt es dazu eine Lösung out of the Box?
  • Ideen?

Ich hatte schon an meinen MYSQL Server gedacht, in dem ich schon einige Dinge abstrahiert habe … dort habe ich ZB die Heizung so herausgelöst. Ich verwalte in in Tabellen die IDs der Zimmer Temeratursensoren, die Regler IDs, Sonderfaktoren wie Sonneneinstrahlung, ID des Sollwert, ID des Istwerts, ID für Visualisierung usw. Wenn ich nun einen neuen Temperatursensor (andere Technik als vorher) einbaue, brauche ich in der Tabelle nur die entsprechenden ID(s) ändern und es läuft… Ein „allgemeines“ Script - das nur aus der DB liest - führt alles aus, keine ID ist im PHP hardcodiert.
Wäre schön soetwas in IPS direkt zu haben, sonst muss ich mir das in MYSQL bauen.

LG
Alexander

Ich gehe mal davon aus dass du dieses kennst…
GitHub - symcon/Rechenmodule
Mit diesen Modulen lassen sich wohl deine Anforderungen lösen…

Ja kenn ich und verwende ich auch an anderen Stellen.
Ich meine es aber wie beschrieben mit mehreren Quellen und je Quelle in unterschiedlicher Umformung mit einem (Meta) Ziel. Ich möchte das übersichtlich (an einer Stelle) über alle Variablen haben. Da kommen hunderte Variablen zusammen.

Bei Werten, wo es Sinn ergibt, benutze ich tatsächlich ein (relativ mächtiges) Skript, um aus verschiedenen „Quellvariablen“ einen „offiziellen“ Wert zu ermitteln, der dann zur weiteren Verwertung heran gezogen wird. Das kann enorm die Robustheit und Flexiblität bei Harwarewechsel erhöhen (typische Anwendungsfälle sind häufig verwendete Rechengrößen wie die Außentemperatur oder -helligkeit).

Meine Erfahrung ist aber auch, dass die Anforderungen bei so etwas oft sehr speziell sind und abhängig von der weiteren Verwertungslogik. Eine generische Lösung dafür stelle ich mir schwierig vor.

Eher ist es sinnvoll, von vornherein daran zu denken, dass die eingesetzte Logik nicht zu nah an irgendeiner speziellen Hardware ist. Also beispielsweise, wenn ich irgendeinen Sensorwert benutze, zu berücksichtigen, dass irgendwann einmal ein anderer Sensor mit anderem Verhalten - etwa höherer zeitlicher Auflösung - an dessen Stelle treten könnte und ich damit umgehen können muss, ohne dass mir meine Automation um die Ohren fliegt.

Ja genau wie ich es meine - eine generische Lösung wäre schön - Ich denke Das wäre etwas für eine native Lösung in IPS selbst, denn jeder hat irgendwann das Thema am Tisch…
Ich habe jetzt mit einem ersten Test über die MYSQL begonnen.
LG Alexander