Funktionsbausteine über Store

Hallo zusammen,

ich wünsche mir in Symcon die Möglichkeit, Funktionsbausteine - ähnlich wie Module über den Modulestore - einbinden zu können. Es geht also nicht darum, fertige Module zu nutzen, sondern Funktionsbausteine in PHP Skripten einbinden zu können. Diese Funktionsbausteine könnten in PHP Skripten über Baustein-spezifische Befehle angesprochen werden. So würde sich mit der Zeit eine enorme Funktionssammlung entwickeln und man müsste nicht jedesmal beim skripten das Rad neu erfinden. Wenn ich mir andere Systeme anschaue, ist dies dort schon länger verfügbar und wäre für Symcon nochmal ein Schritt nach vorne.

Viele Grüße Georg

Hi Georg,

magst du mal ein Beispiel bringen?

Denn aktuell präferieren wir Aktion (die du im Ablaufplan integrieren kannst) oder Module, welche mit wenig Klicken erstellt/konfiguriert werden können. Die „alten“ PHP Skripte verlieren meiner Meinung nach langsam an Relevanz und orientieren sich nur noch an eine spezielle Expertengruppe. Und diese Expertengruppe könnte z.B. über simple Module, die Include-Dateien in den Libs Ordner von PHP-Module ablegt, genau dieses erreichen - nur eben in den meisten Fällen weniger integriert als PHP-Module.

Wenn du Funktionsbausteine wie z.B. in den IPSWorkflows meinst, dann bin ich bei dir. Dort könnte man definitiv Andreas helfen mehr coole Bausteine oder Subworkflows zu erstellen und dann mit anderen zu teilen. Aber auch dort ist der Fokus auf „verdecken“ von komplexen Dingen und dadurch einem nicht Expertenpublik zugänglich machen.

paresy

Hi Paresy,

dazu muss ich ein wenig ausholen:
Bevor ich zu Symcon gekommen bin - und das ist schon viele Jahre her - habe ich mir verschiedene andere Systeme angeschaut. Diese hatten nicht direkt die Möglichkeit, so wie in Symcon, per Skript Aufgaben oder Abläufe zu automatisieren. Vielmehr wurde die Automatisierung wie z.B. in der SPS Programmierung grafisch erstellt mit Ein- und Ausgängen,logischen Verknüpfungen, Filtern, mathematischen Operationen, logischen Operationen etc. Die IPSWorkflows funktionieren nach dem Prinzip. Was ich sehr schnell festgestellt habe ist, dass man hier, um ähnlich „mächtig“ zu sein wie z.B. mit PHP Skripten, sehr viele Bausteine benötigt, welche auch kompkexe Automatisierungen ermöglichen. Ich kann hier nur für mich sprechen, aber meine Abläufe kann ich nicht ohne PHP Skripte realisieren, das geht weder mit Ablaufplänen noch mit IPSWorkflows (in der jetzigen Version). Das war auch einer der Hauptgründe, neben natürlich weiteren Punkten, warum ich nach Symcon gewechselt bin. Skripting ist hier ohne Limits möglich und es steht einem alles offen. Nach all den Jahren muss ich aber auch feststellen, dass das Erstellen von Skripten aufwändig werden kann, insbesondere dann, wenn man neue Aspekte umsetzen möchte oder einfach vergessen hat, dass man die gewünschte Funktion bereits in einem anderen Skript umgesetzt hat. Hier denke ich, dass man der Symcon Community einen definierten Weg vorgeben sollte, solche fertigen Funktionen einzubinden bzw. zur Verfügung zu stellen. Der von dir skizzierte Weg funktioniert zwar, es wird aber niemand auf diesen Zug springen, da es von euch nicht offiziell vorgegeben wird. Daher finde ich eine Store Lösung besser, ein zentrales Repository. Was wäre der Nutzen? Neben der zentralen Verfügbarkeit würde man die PHP Skripte auch einem breiteren Publikum öffnen, da viele Funktionen schon vorgefertigt vorhanden wären und man diese einfacher integrieren könnte, ohne zuviel selbst coden zu müssen.
Beispiele gibt es viele, aus meinen Skripts:

  • Zeitfunktionen:
    wieviele Minuten / Sekunden seit Tagesbeginn
    wieviele Änderungen gab es an einer Variable innerhalb einer Zeitdauer
    Zeitangaben in verschiedene Ausgabeformate wandeln
    Skript retriggern nach einer abgelaufenen Zeit, Abbruch falls Bedingung erfüllt
    Zeitfunktion: z.B. Ausgabe Kalenderwoche, Wochentag usw.
  • Einfache Arrayauswertung: Durchlaufe ein Array und extrahiere Min/Max/Durchschnitt usw.
  • KNX Tools: Konvertiere Strings in passende KNX Codierung
  • Bytes/Bits Aufbereitung: Aufteilung eines Bytes/Words/D-Words/Q-Words in die Bitdarstellung

Ich könnte sicherlich noch weitere Beispiele raussuchen…

Was das Thema IPSWorkflow betrifft: Damit dieses auch komplexe Aufgaben lösen kann, muss Andreas aus meiner Sicht eine API schaffen, mit der die Community weitere Bausteine einbinden kann, ohne dass das immer über ihn läuft. Nur so kann hier ein Funktionsumfang erreicht werden, welcher mit dem von Skripten vergleichbar wäre. Idee wäre hier vllt., diese zusätzlichen Bausteine per PHP-API zur Verfügung stellen zu können.
Wie gesagt, ich schätze Symcon wegen der Möglichkeit zu Skripten, die Workflows werden aus meiner Sicht irgendwann sehr unübersichtlich. Aber dies sieht sicherlich jeder anders und der eine kommt mit Skripten zurecht, der andere besser mit Workflows.

Vielleicht liege ich aber auch mit meiner Einschätzung vollkommen daneben, dann bin ich ein tragisches Einzelschicksal :slight_smile:

Viele Grüße
Georg

2 „Gefällt mir“