ESP8266 mit OLED Display in Blinddeckel

Begonnen von tomster, 11 März 2016, 13:52:13

Vorheriges Thema - Nächstes Thema

tomster

Ich hatte zumindest mit dem aktuellen Sketch seit 24h+ noch keinen Pixelfehler o.Ä. gesehen. Von daher gehe ich schon davon aus, dass ein gewisser Entwicklungsstand erreicht ist. Auch wenn ich persönlich die Dezimalstellen bei den Luftfeuchtewerten gerne weglassen wollte ;-)

Was ich allerdings noch zur Diskussion stellen möchte, ist welche Einstellungen vom User vorgenommen werden können (Farben, Layout, etc.) Ich denke wir beide wünschen uns, dass das Projekt auch von möglichst vielen anderen genutzt/ umgesetzt wird.
Entweder wir schreiben ich schreibe ein HowTo/ WiKi wie man die jeweiligen Einstellungen im Sketch verändert, oder wir passen das WebGUI entsprechend an. Ersteres ist IMHO dann der bessere Weg wenn wir erreichen wollen, dass sich der User ein gewisses "Hintergrundwissen" über den Aufbau des Sketches aneignen soll. Wenn dann der Sketch noch in der Form strukturiert und kommentiert ist, als dass man getrennte Bereiche für die unterschiedlichen Screens hat, dann glaube ich sind wir maximal flexibel aufgestellt.

Man könnte im Sketch ja vielleicht zunächst gewisse Variablen setzen. So á la:

// HEX-Farbcodierungen im Format 0xBGR
#define     RED  0x0000FF
#define MAGENTA  0xFF00FF
#define   GREEN  0x00FF00
#define    BLUE  0xFF0000
#define   WHITE  0xFFFFFF
#define   BLACK  0x000000
#define  YELLOW  0x00FFEE
#define  ORANGE  0x00A5FF
#define    GREY  0xD3D3D3

#define DefaultHeaderColor ORANGE
#define DefaultValueColor GREY
#define DefaultFooterColor GREY


Eventuell macht es auch Sinn ein zusätzliches "Template-File" (so wie bei der Font) anzulegen, in dem man das Layout angeben kann und welches am Rechner editiert/erstellt werden kann und dann hochgeladen wird.

In meinem speziellen Fall muss ich eh noch ein bissl am Layout schrauben, weil ich schon versuchen möchte möglichst nahe an das Layout meiner Mock-Ups zu kommen. Dazu müssen natürlich mehrere MQTT-Werte in einem Screen untergebracht werden...

Was meinst?





wingfighter

Die Auswahl der Farben für die Layoutdarstellung hatte ich mir auch noch vorgenommen. Das geht ja relativ einfach über Dropdownboxen  im WebGui. Damit kann man zumindest das Blau und Gelb einstellen.
Eine komplett freie Layoutgestaltung mit Platzhaltern halte ich aber für recht anspruchsvoll. So eine Seitenbeschreibung - z.B. in XML - muss ja dann durch einen Parser geschickt werden um zumindest mal Variablen zu erkennen und diese durch interne Werte zu ersetzen.

Was wir natürlich noch umsetzen können, sind die kleinen Wettericons auf den Screens, auf denen Werte angezeigt werden. Dann kann man eventuell über die WebGui noch entscheiden, was dort angezeigt wird, und ob dann die 5-Tages-Vorschau-Screens noch dargestellt werden sollen.

Aber: Man muss immer den Arbeitsspeicher im Auge behalten. Alle Werte die der Benutzer individuell anpassen können soll, müssen zur Laufzeit in Variablen gehalten werden. Außerdem ist auch die HTML-Seite der WebGui eine große Variable. Jede Erweiterung vergrößert deren Speicherbedarf. Und der Bereich des Variablenspeicher liegt momentan bei 80% Auslastung. Diese Variablen in die config.json wegzuschreiben (außer die WebGui-Seiten), stellt sicher kein Problem dar. Der Bereich für das Filesystem ist groß genug.


tomster

Zitat von: wingfighter am 11 Mai 2016, 12:35:41
Eine komplett freie Layoutgestaltung mit Platzhaltern halte ich aber für recht anspruchsvoll. So eine Seitenbeschreibung - z.B. in XML - muss ja dann durch einen Parser geschickt werden um zumindest mal Variablen zu erkennen und diese durch interne Werte zu ersetzen.

Ich dachte auch nicht zwangsläufig an etwas XML-mäßiges, sondern quasi "nur" den Screen-Teil in ein eigenes File auszulagern. Quasi wie ein Skin-Template. Der geneigte User kann dann eigene Templates erstellen, oder eben einfach ein von anderen Usern erstelltes Design hochladen.
Anpassen muss er es ohnehin, weil ja die in die Skin integrierten Wertefelder wohl bei jedem anders aussehen. Also rein Klickibunti soll's wird's nicht werden.