Hier möchte ich euch mal zeigen wie wir mit einem Blockly Skript eine einfache Zeitschaltuhr erstellen können und unsere Beleuchtung damit in ioBroker Vis steuern können. In der Vis wird dann eine Einschaltzeit und eine Ausschaltzeit festgelegt die dann die Beleuchtung Ein- bzw. Aus schaltet. Die Stunden können in 1 ner Schritten, die Minuten in 5 er Schritten eingestellt werden. Dazu wird unsere testview angepasst, die wir ja schon aus meinen vorigen Beiträgen kennen. Es werden zusätzliche Variablen deklariert und ein neues Skript erstellt. Fangen wir mit dem Skript an, und deklarieren als erstes unsere Variablen.
Dazu starten wir wie immer ioBroker, dann Skripte und es öffnen sich auch schon unsere erstellten Ordner und mit den vorhandenen Blockly Skripten. Hier wählen wir unseren Ordner Beleuchtung an und erstellen einen neuen Ordner, den nenne ich mal Zeituhren, falls später noch mehr dazu kommen. Ich werde jetzt nicht mehr so ins Detail gehen wie noch am Anfang meiner Beiträge, denn ich gehe mal davon aus, das mittlerweile jeder weiß wie man einen neuen Ordner anlegt und wie ein neues Blockly Skript angelegt wird.
In dem Order Zeituhren erstelle ich das neue Blockly Skript, ich nenne es Zeituhr_1, das kann jeder für sich entscheiden. Dann nehmen wir uns unter Funktionen „Javaskript-Funktion etwas tun“, und ziehen den Baustein auf die Programmieroberfläche. „Etwas tun“ benenne ich um in „Variablen deklarieren“.
Jetzt klicken wir auf die drei Punkte und kopieren den nachfolgenden Text zur Erstellung der neuen Variablen „StundeEin“, „MinuteEin“, „StundeAus“, „MinuteAus“, „Lampe_3_EIN“, „Zeit_EIN_AUS“, „Betriebsart_Lampe_3“ und klicken auf speichern .
createState("0_userdata.0.Beleuchtung.Zeituhr_1.StundeEin",{read: true,write: true,desc: "Zeiteingabe Stunden ein,",type: "number",min:'0', max:'24',def:19});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.MinuteEin",{read: true,write: true,desc: "Zeiteingabe Minuten ein,",type: "number",min:'0', max:'60',def:15});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.StundeAus",{read: true,write: true,desc: "Zeiteingabe Stunden aus,",type: "number",min:'0', max:'24',def:19});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.MinuteAus",{read: true,write: true,desc: "Zeiteingabe Minuten aus,",type: "number",min:'0', max:'60',def:25});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.Lampe_3_EIN",false,{ read: true, write: true, desc: "Lampe 3 nach Zeit", type: "boolean"});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.Betriebsart_Lampe_3", "0", {name: "Betriebsart_Lampe_3", type: "number"});
createState("0_userdata.0.Beleuchtung.Zeituhr_1.Zeit_EIN_AUS",false,{ read: true, write: true, desc: "Zeit Ein Aus", type: "boolean"});
0.Beleuchtung.Zeituhr_1. Ist der Ordner in dem die Variablen erstellt werden
StundeEin, StundeAus, MinuteEin, MinuteAus,Lampe_3_EIN, Betriebsart_Lampe_3, Zeit_EIN_AUS sind die neuen Variablennamen
read: true, write: true bedeutet das die Variablen Lese- und Schreibrechte haben
desc: ist ein Kommentar
type: number, boolean ist das Format der Variablen
min und max sind Grenzwerte für Std. und Min
def: 0, 19, 15, 25 sind nur Vorbelegungen der Variablenwerte, frei definierbar
Nach der Eingabe sollte es so aussehen.
Nun noch einmal unter Funktionen, dort sollte jetzt ein Baustein „variablen deklarieren“ sein, den ziehen wir auch auf unsere Arbeitsfläche links neben den Anderen. Wieder auf speichern und starten dann das Blockly Skript einmal, und beenden es auch wieder für die weitere Bearbeitung.
Zur Kontrolle ob die Variablen erstellt worden sind gehen wir unter „Objekte“ in den Ordner „0_userdata.0.Beleuchtung“. Dort sollte jetzt ein Ordner „Zeituhr_1“ mit den neuen Variablen sein.
So, jetzt öffne ich in ioBroker Vis und meine „testview“. Ihr könnt auch eine neue, oder vorhandene view nehmen.
Ich suche als erstes mal das Widget „ctrl – Icon Increment“ und ziehe es auf meine Arbeitsfläche.
Mit dem klick auf die +1 Taste öffnen sich rechts wieder die Eigenschaften. Hier übernehmen wir die Einstellungen aus dem folgenden Bild.
Zur Erklärung.