Backup und weiter

Jetzt haben wir schon so viel Mühe und Zeit investiert, dass es ein Jammer wäre, wenn der Raspberry Pi oder auch nur die SD-Karte aus irgendeinem Grund kaputt ginge. Der Wert der Hardware wäre dann fast zu vernachlässigen, verglichen mit der vielen Zeit, die wir hinein gesteckt haben.

Aber wie kann man die Arbeit sichern? Das ist gar nicht mal so schwer:

Um die Skripte zu sichern, klicken Sie auf "Export von allen Skripten"


Und um eine Vis-View zu sichern, klicken Sie im Vis Editor auf Setup->Projekt-Export->Exportieren:


In beiden Fällen erhalten Sie ein gezipptes Backup auf Ihrem lokalen Computer (also nicht auf dem Raspberry).

Aussenlicht-Widget

Damit können wir uns jetzt den nächsten UI-Elementen zuwenden. Das Aussenlicht funktioniert ganz gut automatisch. Nur: Wir wollen das Licht auch manuell schalten können, ohne dass die Automatik es im unpassenden Moment an- oder ausschaltet. 



Dieses Schaltelement ist ein Schalter mit drei Stellungen: Ein, Aus und Automatik. Ausserdem zeigt ein Symbol rechts an, ob das Licht gerade an oder aus ist. Damit das wie erwartet funktioniert, müssen wir allerdings das Aussenlicht-Skript ein wenig umschreiben.


In Zeile 1 erstellen wir einen State, der anzeigt, in welchem Modus das Licht derzeit ist. Die Bedeutung ist (willkürlich ausgewählt): 0 für 'Ein', 1 für 'Aus' und 2 für 'Automatik', was auch die default-Einstellung ist und deshalb bereits bei der Erstellung des States gesetzt wird.
.
Die Funktion "toggle" schaltet das Licht, aber nur in Automatikstellung. Andernfalls tut sie nichts. Unsere "schedule"- Funktionen von vorher (Zeilen ab 28 und ab 33) schalten das Licht nur über diese toggle Funktion, so dass auch sie nur bei Automatik wirksam sind. 

Die Funktionen in Zeile 11 und 14 sind simpel: Sie schalten einfach (unbedingt) ein und aus, sobald der "State" geändert wird (z.B. über die entsprechenden Buttons des UI, wie wir später sehen werden).

Etwas kniffliger ist vielleicht die Funktion ab Zeile 17: Wenn der Anwender die Automatik einschaltet, wie muss das Licht dann sein? Wir prüfen, ob es gerade Abend ist, und wenn ja, wird eingeschaltet, sonst ausgeschaltet. Die "compareTime" Funktion in Zeile 24 prüft, ob es gerade zwischen Sonnenuntergang und 23:59 Uhr ist.

Auf den Schirm!

Das Schaltelement besteht aus demselben HTML-Rahmen wie vorhin die Raspberry- und Photovoltaik-Anzeigen. Der Schalter ist das Widget "Radiobuttons Value List", deren Parameter man einfach so einstellen kann:


Die Werte sind dabei nicht auf drei begrenzt, wenn man mehr Zahlen eingibt, werden entsprechend mehr Buttons erzeugt, von denen aber immer nur einer aktiv sein kann. Wie Sie sehen, haben wir die Object ID des Schalters einfach mit unserem vorhin im Skript erzeugten "State" verknüpft und weisen den Buttons die Werte zu, die wir im Skript dann auslesen.

Fehlt noch die Anzeige, ob das Licht gerade an oder aus ist. Dafür hätte man verschiedene Lämpchensymbole zur Auswahl, ich habe mich aber für etwas Simpleres entschieden: Das Widget "Bool HTML". Dieses Widget lässt sich mit einer bool'schen Variablen verknüpfen und je nach Wert dieser Variablen unterschiedliches HTML darstellen. Dabei sind Ihnen keine Grenzen gesetzt. Sie können Texte anzeigen, ausgefeilte Animationen, komplexe Inhalte. Einfach alles, was sich mit HTML darstellen lässt. Wir zeigen einfach unterschiedliche Bilder:


Und was sind das für Bilder? Ganz einfach: Mit einem simplen Malprogramm erstellte 32x32 Pixel grosse Rechtecke, eins mit Grau und eins mit Gelb gefüllt. Aber wie kriegt man diese Bilder auf den Raspi und in den ioBroker?

Klicken Sie im Via-Editor aufs Menu Setup-Dateimanager:


Hier können Sie die Bilder hochladen, und unter "Pfad" sehen Sie auch gleich, was Sie in dem "img"-Tag des HTML-Elements eintragen müssen.

Bringen Sie dann einfach das HTML Element auf die gewünschte Grösse und an den gewünschten Ort. Wenn Ihnen die rechten Winkel nicht gefallen, können Sie sie abrunden, indem Sie unter "Eigenschaften" des Widgets unter "CSS-Ränder" einen Radius von z.B. 10px eintragen. Dann sollten die Lichtsymbole so aussehen, wie hier gezeigt.

Wenn alles zusammengebaut ist, könnte unsere erste, recht technisch orientierte, View so aussehen:

Diese View lässt sich gut auf einem Bildschirm mit der Auflösung eines iPad 2 betrachten. Später werden wir noch andere, eher benutzerorientierte Views erstellen und mehrere Views zusammenfügen.


Zum ersten Teil - zum vorherigen Teil - zum nächsten Teil



Kommentare

Beliebte Posts aus diesem Blog

von Schedules und Triggern

myStrom WiFi Button an ioBroker anbinden

Einfache Script-Beispiele