Massenmodus für Logikeditor (via assoziativem Array)
Verfasst: Fr Aug 23, 2019 4:23 pm
Ich würde ganz gerne all meine plugins usw. vom WG-Server auf den TWS umziehen. Der LE scheint mir ein mächtiges Werkzeug hierzu.
Nun gibt es durchaus Szenarien, wo die gleichen Berechnungen mit gleichen Eingängen und Ausgängen aber unterschiedlichen Datenquellen durchgeführt werden. Beispiel ist hier gerade der Beschattungsbaustein. Dieser müsste zumindest für jede Fassadenseite einmal angelegt werden (bei mir noch deutlich mehr).
Meine Frage ist: Könnte man prinzipiell den Bausteinen jeweils einen Hash an Datenquellen vorsetzen und diese auf die entsprechenden Ausgänge mappen - quasi einen "Hash-Baustein" entwickeln, welcher bei Bedarf den Baustein dann eben x-mal durchrechnet und das Ergebnis an die entsprechend gematchten Ausgänge weitergibt ?
Zum Beispiel ist die Datenquelle meines Beschattungsplugins ein hash in folgender Form (abgespeckt und gekürzt):
Nun arbeitet das plugin beim Aufruf brav einen Rolladen nach dem anderen in einer foreach-Schliefe ab und gibt die entsprechenden Befehle raus.
Wahrscheinlich ein nicht erfüllbarer Wunsch, aber ich wollte ihn wenigstens einmal vortragen falls doch eine Möglichkeit besteht. Vorteil wäre, dass man im LE nicht soviele Bausteine anlegen muss.
Nun gibt es durchaus Szenarien, wo die gleichen Berechnungen mit gleichen Eingängen und Ausgängen aber unterschiedlichen Datenquellen durchgeführt werden. Beispiel ist hier gerade der Beschattungsbaustein. Dieser müsste zumindest für jede Fassadenseite einmal angelegt werden (bei mir noch deutlich mehr).
Meine Frage ist: Könnte man prinzipiell den Bausteinen jeweils einen Hash an Datenquellen vorsetzen und diese auf die entsprechenden Ausgänge mappen - quasi einen "Hash-Baustein" entwickeln, welcher bei Bedarf den Baustein dann eben x-mal durchrechnet und das Ergebnis an die entsprechend gematchten Ausgänge weitergibt ?
Zum Beispiel ist die Datenquelle meines Beschattungsplugins ein hash in folgender Form (abgespeckt und gekürzt):
Code: Alles auswählen
my @AlleRolllaeden;
push @AlleRolllaeden, { name => "WZ Erker Mitte", winkel1 => 9, winkel2 => 169, wertZuBesch => 40, wertAufBesch => 0,wertZuNacht => 60, wertAufNacht => 0, sonnenAufUnter => 0, raumSollTemp => 22, GAraumSollTemp => "", GAraumIstTemp => "2/5/30", GAaufzu => "2/2/80", GAfahren => "2/2/83", GAstatus => "2/2/81", GAsperre => "2/2/89", Sperre => "Global_Jalousie_WZ_Erker_Mitte_Sperre" };
push @AlleRolllaeden, { name => "WZ Erker Seite", winkel1 => 9, winkel2 => 169, wertZuBesch => 40, wertAufBesch => 0,wertZuNacht => 60, wertAufNacht => 0, sonnenAufUnter => 0, raumSollTemp => 22, GAraumSollTemp => "", GAraumIstTemp => "2/5/30", GAaufzu => "2/2/70", GAfahren => "2/2/73", GAstatus => "2/2/71", GAsperre => "2/2/79", Sperre => "Global_Jalousie_WZ_Erker_Seite_Sperre" };
Code: Alles auswählen
foreach my $element (@AlleRolllaeden) {.....};