Wunsch: Neus Widgetsystem

Hallo @paresy,

wie versprochen hier meine Ideen zu einem Widgetsystem.

Ich würde erstmal ein Basisgerüst bauen, auf dem man Widgets (was ich damit gehe ich gleich drauf ein) nebeneinander positionieren kann. So wie man das häufgt von Dashboards kennt. Diese Widgets sollen dann entsprechend der Platzverhältnisse sich frei positionieren. Sprich auf einem Handy sind dann z.B. nur zwei Spalten, auf dem iPad ggf. 4 und auf großem Computermonitor z.B. 8 Widgets nebeneinander zu sehen.

Damit das klappt müsste man einen Min- und Max-Width-Vorgabe machen, nach denen sich alle Widgets richten müssen. Widgets sollten im System als Instanzen abgebildet werden. Das Webfront bekommt dann ähnlich dem IPSView eine Widgetboard und man wählt hier eine Kategorie mit den Widgetinstanzen aus. Hier kann man dann auch die Sortierung für die Positionierung übernehmen. Instanzen die keine Widgetinstanz sind, werden einfach ignoriert.

Kommen wir zu den Widgets. Diese sollten technisch nur eine Box mit HTML befüllen. Also beliebigen Inhalt haben können. Darüberhinaus sollte ein Widget auch die Möglichkeit haben, sich über zwei Spalten oder mehrere Reihen zu erstrecken. Wird also mal mehr Platz benötigt, z.B. für ein Kameramodul (2 Spalten), oder ein Fensterwidget mit alle Fensterzustände (viele Reihen) ist das problemlos möglich.

Wichtig finde ich, das die Breite (also Spalten) fest vom Widget vorgegeben werden musst, also ob normal oder über zwei Spalten. Mehr als zwei Spalten ergibt keinen Sinn, weil es dann nicht mehr auf das Handy (max 2) passt. Die Länge muss aber dynamisch sein, und das Widgetboard muss die Widgets immer auf das nächste Raster verlängern. Theoretisch könnte man sich das sparen, aber wenn jedes Widget unterschiedlich lang ist, sieht es nachher sch… aus. Um ein sauberes Bild nachher zu haben, müssen die Widget in ein Raster gezogen werden. (Hoffe es ist verständlich genug)

Damit nicht jedes Widget optisch bei 0 anfängt, Bedarf es eines Basislayout. Also Rahmen, passenden Hintergrund, Schrift etc usw. Vielleicht sogar schon paar Standard CSS Klassen für z.B. Key, Value -Darstellungen.

Bis hierher ist es vergleichbar mit den meisten modernen Smarthomesystemen, aber was fast allen fehlt, ist die Möglichkeit eigene Widgets zu bauen. Hier kommt eigentlich das Modulkonzept von Symcon ins Spielt. Jeder Entwickler sollte nun die Möglichkeit haben eigene Widgetinstanzen zu bauen und per Modul auszuliefern.

Kommt also einer auf die Idee ein Modul für eine Wasserenthärtungsanlage für den Hersteller XY zu bauen, könnte er auch direkt ein paar sinvolle Widget mitliefern. Zum Beispiel in dem er eine Abbildung der Anlage ausgibt und die Werte wie Füllstand , Durchfluss etc direkt auf der Abbildung passen positioniert. Also ähnlich wie Herstellerapps das auch machen. Auch möglich wäre es, dann dass das Spotifymodul eine Widget mitliefert, dass Cover als Hintergrund anzeigt und richtige Steuerelemente mit den Musikdaten ausgibt. Ggf. direkt sogar mit Warteschlange oder gar Suche.

Ihr solltet ein größeres Set an Standardwidgets mitliefern, die Community macht dann den Fancyscheiß was Ihr vom Personalaufwand garnicht schaffen könnt. Gerade gerätenahe Widgets machen soviel aus und Arbeit…

Ich habe mich erstmal nur auf das Basissystem konzetriert. Ideen das noch besser zu machen, gibt es viele. Aber es muss ja auch erstmal umsetzbar bleiben.

Was auch gut ist, man könnte sogar das Ganze abgetrennt von Symcon als Modul entwickeln. So dass man dass erstmal unabhängig der Sysmconentwicklung ausarbeiten kann. Lediglich das Widgetboard ähnlich IPSView müsste direkt in Symcon integriert werden.

4 Like

perfekt. Das finde ich Genial :+1:

Das hört sich sehr gut an, aber scheint auch viel Arbeit zu sein. :grinning:

Naja geile Funktionen und super Usability sind immer viel Arbeit. Von nix kommt halt nix. Wobei ich das schon so stark runtergestrippt habe, damit es im machbaren Rahmen bleibt und mit den Konzepten von Symcon vereinbar sind. Mal gespannt was der Meister dazu sagt.