Hallöchen,
ich habe nun auch seit 2 Tagen den ioBroker am laufen und probiere da fleissig rum. Das eine Zeitschaltuhr fehlt, ist mir auch aufgefallen. Ich habe mich dann mal an JavaScript versucht (kenne nur VBA, ist aber ähnlich).
Vielleicht kann sich jemand den Code mal anschauen und evtl. verbessern. In der Originalform ist er so gestaltet, dass ich alles per ioBroker.vis ansprechen kann. Das schwierige war eigentlich nur, wenn die Schaltzeit über Nacht laufen (z.B. 18:00 - 01:00). Meine Lösung ist vielleicht nicht die beste, aber es ist auch mein aller erstes Script in js, aber wohl ein guter Einstand 🙂
! ````
// Kleines Script für eine "Zeitschaltuhr"
// 03.01.2018 (v.1)
// Kristian Müller
//
// Alle zukünftigen Autoren werden gebeten, den Quellcode weiter auszukommentieren und Änderungen zu vermerken
//
// Beschreibung:
// Ziel war es, über eine Frontend-Oberfläche eine einfache Zeitschaltuhr zu generieren. Diese Variante ist ausschließlich
// für einzelne Wechsel zu nutzen. Für mehrere Wechsel, kann dieses Script aber sehr schnell angepasst werden.
// Kommentare oder Hinweise bitte im ioBroker Forum (http://forum.iobroker.net/viewtopic.php?f=30&t=4732&hilit=Zeitschaltuhr+mit+vis)
//
// Es werden drei Widgets benötigt
// - 1. Aktivierung (on/off) um den boolschen Werte Zeitaktiv zu ändern
// - 2. und 3. Inputmöglichkeit um die Zeiten für Zeitan und Zeitaus zu steuern (Format hh:mm:ss oder hh:mm:ss)
! // Alle 20 Sekunden soll ein Vergleich der Uhrzeit stattfinden, um den Server nicht allzu sehr zu belasten
! schedule("*/20 * * * * *", function () {
// Auslesen des übergebenen Werte aus ioBroker.vis
var Zeitaktiv=getState("EigeneObjekte.0.Zeit_aktiv").val;
var Zeitan=getState("EigeneObjekte.0.Zeit_an").val;
var Zeitaus=getState("EigeneObjekte.0.Zeit_aus").val;
var stSplit = Zeitan.split(":"); Zeitan = stSplit[0]+':'+stSplit[1]; stSplit = stSplit = Zeitaus.split(":"); Zeitaus = stSplit[0]+':'+stSplit[1]; // Ermitteln der aktuellen Uhrzeit a = new Date(); b = a.getHours(); c = a.getMinutes(); //zeit = b+':'+c; deaktiviert zum testen zeit="00:01" // Manuelle Angabe der Uhrzeit if(zeit>Zeitan && zeit<="23:59" || zeit<zeitaus &&/zeit="">="00:00") { // Hier die Datenpunkte eintragen, die im Zeitraum geschaltet werden sollen setState("javascript.0.Dummy",true); } else { // Hier die Datenpunkte eintragen, die außerhalb des Zeitraums geschaltet werden sollen setState("javascript.0.Dummy",false); } }</zeitaus>! // Prüfen ob Zeitschaltuhr überhaupt aktiv ist, sonst Abbruch
! if(Zeitaktiv===true)
{
! // Umwandeln der Werte in Strings (hh:mm) für einen einfachen Vergleich