NEWS
[Vorlage] Flexibles Timerskript + Vis
-
@quorle sagte in [Vorlage] Flexibles Timerskript + Vis:
Servus @Pittini ich hab nun dein Timerscript einmal eingebunden. Hätte aber dazu noch eine Frage, kann man mit diesem Script einen Intervall machen. Sprich jeweils für eine bestimmte Zeit einschalten und dann wieder für eine bestimmte Zeit ausschalten. Und dies sollte sich dann immer widerholen.
Naja, für nen reinen Intervall brauchst kein Timerskript, dasn 4 Zeiler. Und nein, ist nicht drin oder vorgesehen.
-
@Rene55 sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich hatte den raw vom Datenpunkt noch vergessen. Hier ist er:
Ok, ich seh zwei Probleme. Zum einen ist der Power true/false kein Boolean Datenpunkt und zum anderen der channel kein echter channel. Erstell mal ein kleines Skript mit diesem Einzeiler, lass es einmal laufen und starte dann das Timerskript nochmal und gugg was der Fehler macht.
setObject("mqtt.0.SmartHome.Gosund4.cmnd", { type: 'channel', common: { name: "" }, native: {} }); //Channel machen
Bleibt der Fehler gleich, versuch in den Timereinstellungen nicht die Option Anschalten oder Ausschalten zu verwenden, sondern versuchs mal mit "Wert setzen" und als Wert mal true oder false zu verwenden.
-
@Pittini Ich bin jetzt ein Stück weiter. Dein Fix-Script hat den Channel angelegt und das Timerscript kann das Device anlegen und schalten.
Mit den eingebauten Funktionen Einschalten und Ausschalten klappt es, obwohl sich ioBroker dann beschwert, dass er hierfür einen String erwartet, aber ein boolean bekommt.You are assigning a boolean to the state "mqtt.0.SmartHome.Gosund4.cmnd.POWER" which expects a string. Please fix your code to use a string or change the state type to boolean. This warning might become an error in future versions.
Das senden des Wertes "true" hat den gleichen Effekt: Schalten ja aber mit gleicher Warnung.
Kann ich mit leben bis halt "in future versions". Danke für die professionelle Hilfe - hätte ich alleine nicht hinbekommen.
LG Rainer -
@Rene55 sagte in [Vorlage] Flexibles Timerskript + Vis:
Das senden des Wertes "true" hat den gleichen Effekt: Schalten ja aber mit gleicher Warnung.
Ja, das ist was ich oben schon schrieb, der mqtt Adapter will nen String obwohls eigentlich ja nen bool ist, deswegen das gemaule. Werd mal überlegen wie ich auf den Sonderfall reagier. Schreib am besten ein Issue auf Git damits nicht untergeht und ichs nicht vergess.
-
@Pittini gemacht:
Nochmals Danke fürs Script und die Hilfe.LG Rainer
-
@Rene55 sagte in [Vorlage] Flexibles Timerskript + Vis:
@Pittini
Hier der Screenshot rund um den Gosund:!
Warum die Gosund Steckdosen mit dem MQTT Adapter. Installiere doch den Sonoff Adapter. Dann hast Du keine Sorgen. Wunderbare Werte wie man Sie gleich nutzen kann. Die Steckdosen werden ja mit Tasmota gleich in dem Sonoff Adapter gefunden. Da ist der MQTT Adapter viel zu komplex...
-
Ja, vielen Dank für den Hinweis bzgl. der Channel. Dies hatte ich nun korrigiert. Nun erhalte ich ein anderen Fehler. Bin mir nicht sicher, ob dies mit dem letzten Update des JS Script Adapter vielleicht zusammenhängt?
Es gibt noch einen zweiten Fehler, der im Zusammenhang mit createStates steht. Der ist in Zeile 260. -
@gelberlemmy
Danke für den Hinweis. Den Adapter kannte ich noch gar nicht und habe ihn gleich ausprobiert.
Schalten kann ich ihn damit, aber ich bekommen keine Anzeige der Energiedaten. Muss ich da was besonderes einstellen?
LG Rainer -
@DirkS sagte in [Vorlage] Flexibles Timerskript + Vis:
Ja, vielen Dank für den Hinweis bzgl. der Channel. Dies hatte ich nun korrigiert. Nun erhalte ich ein anderen Fehler. Bin mir nicht sicher, ob dies mit dem letzten Update des JS Script Adapter vielleicht zusammenhängt?
Es gibt noch einen zweiten Fehler, der im Zusammenhang mit createStates steht. Der ist in Zeile 260.Ein Fehler ist erst dann ein Fehler wenn er rote Einträge im Log erzeugt. Nur weil die Syntaxprüfung mault is das noch lang kein Fehler, kannste ignorieren.
-
@Pittini
Da fehlte dann wohl der wichtigere Teil:
-
@DirkS sagte in [Vorlage] Flexibles Timerskript + Vis:
Da fehlte dann wohl der wichtigere Teil:
DAS ist ein Fehler, ja. Aber die Ursache ist trotzdem nicht in dem unterkringelten Teil.
Wie der Fehler aussieht.....vermute ich jetzt mal...das Du entweder die js Instanz nach der Änderung an den Aufzählungen nicht neu gestartet hast, oder irgendwo ein leeres Feld als TimerTarget definiert hast.Zeig doch mal ein komplettes startlog vom Skript und nen Screenshot von nem Datenpunkt wo die Funktion TimerTarget gesetzt ist.
-
@Pittini
Hier der Log vom Starten des Skripts. Ich hatte vorher einmal die Einträge aus javascript.0.Timer. gelöscht. -
@DirkS sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich hatte vorher einmal die Einträge aus javascript.0.Timer. gelöscht.
Das Skript findet etliche Datenpunkte nicht, hast Du da was manuell aus der internen Struktur gelöscht?
javascript.0 2020-12-08 13:53:48.731 warn (14747) getState "javascript.0.Timer.TimerCount" not found (3)
javascript.0 2020-12-08 13:53:48.738 warn (14747) getState "javascript.0.Timer.MsgMute" not found (3)
javascript.0 2020-12-08 13:53:48.764 warn (14747) getState "javascript.0.Timer.Template.TimerChoice" not found (3)Lösch mal den kompletten Timerchannel , der wird dann beim nächsten Skriptstart wieder neu und richtig angelegt. Andere Probleme seh ich eigentlich nicht, Deine 4 Targets wurden erkannt. Grundsätzlich NIE einfach manuell was aus der Struktur löschen, nur über die entsprechende Löschfunktion im Skript bzw. im Vis.
-
@Pittini
Seltsam, hatte nichts anderes vorher auch gemacht. Also Timer Channel gelöscht und JS Adapter neu gestartet. Nun sind keine Fehler mehr im Log vorhanden.
Danke für die Hilfe über die Straße. -
@Pittini
Ein kleinen Fehler habe ich noch gefunden. Den letzten Timer (Timer 1) kann man nicht löschen. -
@DirkS sagte in [Vorlage] Flexibles Timerskript + Vis:
@Pittini
Ein kleinen Fehler habe ich noch gefunden. Den letzten Timer (Timer 1) kann man nicht löschen.Its not a bug, its a feature. Wozu braucht man ein Timerskript wenn man keinen Timer drinhat?
-
@Pittini
Wenn man zum Testen erst einmal ein paar Male auf den plus Knopf gedrückt hat und alles wieder auf Urzustand zurück soll. -
@Rene55 sagte in [Vorlage] Flexibles Timerskript + Vis:
@gelberlemmy
Danke für den Hinweis. Den Adapter kannte ich noch gar nicht und habe ihn gleich ausprobiert.
Schalten kann ich ihn damit, aber ich bekommen keine Anzeige der Energiedaten. Muss ich da was besonderes einstellen?
LG RainerNein eigentlich nicht, da die Datenpunkte ja automatisch angelegt werden. Es sei denn die Steckdosen haben keine Energiemessung.
-
@gelberlemmy
Doch, die Gosund SP1 haben Energiemessung und hatten die Datenpunkte unter mqtt auch angelegt. Mit dem Sonoff-Adapter sind nur Datenpunkte fürs Schalten und Zustand/Erreichbarkeit vorhanden. DPs für Energie stellen sich auch nach mehrfachen Versuchen nicht ein.
Nachtrag: Ich habs gefunden Link Text Post#15. Jetzt kommen auch Energiedaten. Danke
LG Rainer -
Script ist eingefügt und läuft wunderbar. Widget ist auch verständlich. Nur habe auch auch ein kleines Problem. Bei mir ändern sich die Farben nicht, obwohl der State entweder true oder false ist.