gsicilia82 / Timer_iobroker

Variable Zeitsteuerung mit VIS Editor
MIT License
7 stars 3 forks source link

Timer für ioBroker

Variable Zeitsteuerung mit VIS Editor und schneller Einrichtung

Dies ist kein Adapter sondern ein Skript und zwei VIS Views

Das Skript beinhaltet alle Funktionen, die benötigt werden. Einfach Inhalt kopieren und in iobroker ein neues JS Skript erstellen und Inhalt einfügen. Für die schönere Optik verwende ich die CSS Klassen von Uhula (noch v1.x). Einfach nach "iobroker Material Design" schauen. Falls ihr noch kein Projekt von Uhula übernommen habt: der letzte Stand seiner CSS-Klassen findet ihr auch unten im angehängten Zip-File. Den Inhalt einfach im VIS-Editor unter dem Hauptreiter "CSS" einfügen.

Es gibt zwei Views, die importiert werden müssen. Zunächst die Hauptansicht und dann noch das PopUp-View für die Bearbeitung der Timer.

Hauptansicht Timer

MainView


Bedienung

MainView

Die Haupt-Tabelle mit den dargestellten Timern ist interaktiv:


PopUp Editor

MainView


Konfiguration Skript

Alle Geräte, die gesteuert werden sollen, müssen in eine Aufzählung gepackt werden. Es können Objekte mit den Sollwerten "True/False" oder mit numerischen Werten "0 bis 100" eingesetzt werden. In der Aufzählung müssen States (bei Rollläden z.B. die *.level Objekte) vorhanden sein, keine Channels o.ä.

Diese Aufzählung wird oben im Skript angegeben, z.B. "enum.functions.blinds":

// Eine Aufzählung für Geräte (z.B. Rollläden) angeben:
var deviceEnum = "enum.functions.blinds";

Für alle Timer können individuell über die VIS Bedingungen angegeben werden. So werden Timer nur gesetzt, wenn die hinterlegten Bedingungen erfüllt sind. Die States, die als Bedingungen gewählt werden sollen, müssen über eine Aufzählung integriert werden, z.B. "enum.functions.timerconditions":

// Eine Aufzählung für States der Bedingungen:
var deviceCond = "enum.functions.timerconditions";

Wenn die Aufzählung für die Bedingungen verändert wird (States werden gelöscht oder hinzugefügt), dann muss nur das Skript neu gestartet werden. Die Auswahl-Liste wird dann neu erstellt.

Konfiguration VIS

Weitere Infos

Rest läuft soweit, wenn das Skript gestartet wird. Nach dem ersten Start werden Fehler im Log angezeigt (weil states noch nicht existieren). Einfach nochmal starten, dann sollte es fehlerfrei laufen. Es können für jedes Gerät bis zu 19 Timer in der VIS erstellt werden. Ein neuer Timer wird immer als Kopie des letzten Timers erstellt (z.B.: Werte in neuen Timer 3 sind eine Kopie aus Timer 2).

Soll ein Gerät aus der Liste gelöscht werden, einfach das Gerät aus der Aufzählung entfernen und die zugehörigen Timer in der VIS mit dem "Del"-Button löschen. Soll ein Gerät neu in die Liste, so kann die Aufzählung damit erweitert werden und im Anschluss das Skript restarten. Es wird das neue Gerät nun mit den beiden nicht-aktiven Default-Timer erstellt.

Einige Funktionalitäten der VIS-Tabelle können im oberen Skript-Bereich der Variablen verändert werden, einfach oben durchscrollen und Kommentare lesen...


Die Reihenfolge der Timer-Geräte innerhalb der Tabelle kann über das folgende State verändert werden:

MainView

Geänderte Reihenfolge wird erst korrekt angezeigt, wenn ein Timer z.B. aktiviert/deaktiviert wird oder das Skript neu gestartet wurde.


Zusätzliche Sollwerte oder deren Anpassungen können über die folgenden Variablen ergänzt werden:

// Soll-Werte für States, die nicht als Bools hinterlegt sind. Zahlenwerte können hier angepasst/gelöscht werden.
var sollDropDown = "0;5;10;15;20;30;40;50;60;70;80;90;100;Auf;Ab";
// Soll-Werte für Bool-States true/false (werden automatisch erkannt)
var sollDropDownBool = "An;Aus";
// Falls Soll-Werte individualisiert wurden, bitte nachfolgend die realen Werte hinterlegen/anpassen
var sollWertMapping = {"Auf": 100, "Ab": 0, "An": true, "Aus": false}

Wenn ein Gerät als boolean erkannt wird, werden im Timer-Editor der VIS die beiden Werte der Variable sollDropDownBool zur Auswahl gestellt.

Andernfalls stehen die Werte aus sollDropDown zur Auswahl, z.B. bei Rollläden.

Die Werte dieser beiden Variablen sind nur die angezeigten Werte der VIS Tabelle! Was in Richtung Zielgerät geschrieben wird, kann( oder muss ) in sollWertMapping stehen bzw. ergänzt werden.

Funktionalität:

Der Sollwert aus der VIS wird immer in sollWertMapping gesucht. Wird ein Treffer erzielt, wird der VIS-Sollwert ersetzt durch den Mapping-Wert. Auf aus der VIS wird somit durch 100 ersetzt; oder An durch true. Wenn in der Mapping-Variable ergänzt, könnte auch ein Zahlenwert 70 durch 50 ersetzt werden. Wertkorrekturen, z.B. für Rollläden, wären somit möglich. Wird ein VIS-Wert in der Mapping-Liste nicht gefunden, wird dieser VIS-Wert in Richtung Zielgerät geschrieben (so geschehen hier mit allen Zahlenwerten)


Changelog

Changelog v1.3.4 02.01.2023 (Skript)

Changelog v1.3.3 02.01.2023 (Skript)

Changelog v1.3.2 20.12.2020 (Skript)

Changelog v1.2.1 30.11.2020 (Skript)

Changelog v1.2.0 22.11.2020 (Skript + VIS[optional] )

Changelog V1.1.0 20.11.2020 (Skript + VIS[optional] )

Changelog V1.0.0 19.11.2020 (Skript)

Changelog 18.10.2020 (Skript)

Changelog 11.10.2020 (Editor-View)

Changelog 04.10.2020 (Skript)

Changelog 09.08.2020 (Skript)

Changelog 08.08.2020 (Skript + Editor-View)

Changelog 18.07.2020 (Skript)

Changelog 16.07.2020 (Skript + Main-View + Editor-View)

Changelog 30.06.2020 (Skript)

Changelog 20.06.2020 (Skript)

Changelog 17.06.2020 (Skript)

Changelog 30.05.2020 (Skript)

Changelog 29.05.2020 v2

Changelog 29.05.2020

Changelog 26.04.2020

Changelog 15.04.2020

Changelog 29.03.2020 v2

Changelog 29.03.2020

Changelog 26.03.2020

Changelog 03.02.2020

Changelog 30.01.2020

Changelog 26.01.2020

Changelog 24.01.2020

Changelog 19.01.2020