Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Newbie - Skript startet nicht?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Newbie - Skript startet nicht?

    This topic has been deleted. Only users with topic management privileges can see it.
    • MichaHidd
      MichaHidd last edited by

      Hi Leute,

      ich versuche mich mit einem sehr einfachen Skript:

      Die Lautstärke des Chromecast soll auf den Wert 10 gesetzt werden.

      Als Trigger habe ich "alle 10 Sekunden" gewählt.

      Meins Skript (mit Blocky unter "global" erstellt) sieht dann so aus:

      schedule("*/10 * * * * *", function () {
        setState("chromecast.0.Wohnzimmer-Chromecast.status.volume"/*Wohnzimmer-Chromecast.status.volume*/, 10, true);
        setState("chromecast.0.Wohnzimmer-Chromecast.status.volume"/*Wohnzimmer-Chromecast.status.volume*/, 10);
      });
      

      Da ich noch nicht den Unterschied zwischen aktualisiere / steuere kenne, habe ich beide Aktionen ausgewählt.

      Nach der Aktivierung des Skriptes passiert aber gar nichts. Debug und Hilfe-Ausgabe habe ich auch noch aktiviert, aber auch im Log erscheint nichts. Ist mein Skript fehlerhaft oder ist meine Installation evtl. nicht richtig?

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo,

        deine Cronjob-Syntax ist falsch.

        Es gibt nur 5 Sterne, wobei der erste die Minuten definiert, nicht Sekunden.

        ` > * * * * * Befehl der ausgeführt werden soll


        | | | | |

        | | | | +–--- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten)

        | | | +------- Monat (1 - 12)

        | | +--------- Tag (1 - 31)

        | +----------- Stunde (0 - 23)

        +------------- Minute (0 - 59; oder Namen, siehe unten) ` Versuche es so:

        schedule("*/1 * * * *", function () {
        ````für jede Minute…
        
        Gruß
        
        Pix
        1 Reply Last reply Reply Quote 0
        • Thisoft
          Thisoft last edited by

          Also mein erster Tip wäre, solche Scripte NICHT unter "global" anzulegen! Global ist für wirklich global verwendbare Funktionen gedacht und bringt Funktionalitäten und Zusammenhänge mit sich die du zum Testen sicherlich nicht brauchst…

          Zweitens muss ich @pix leider widersprechen 😉 . Die Cronjob-Sytax mit Sekunden funktioniert durchaus so wie @MichaHidd das geschrieben hat.

          Drittens: Das Script kann ja auch nichts ins Log schreiben - versuchs mal so:

          schedule("*/10 * * * * *", function () {
            setState("chromecast.0.Wohnzimmer-Chromecast.status.volume"/*Wohnzimmer-Chromecast.status.volume*/, 10, true);
            setState("chromecast.0.Wohnzimmer-Chromecast.status.volume"/*Wohnzimmer-Chromecast.status.volume*/, 10);
            log('Meine Funktion wurde ausgeführt!");
          });
          
          1 Reply Last reply Reply Quote 0
          • MichaHidd
            MichaHidd last edited by

            Es passiert auch mit dem Skript nichts. Aber im Log steht eine Warnmeldung, nach dem ich das eine oder andere Skript starte:

            javascript.0 2017-06-05 20:15:47.747 info received all objects

            javascript.0 2017-06-05 20:15:47.593 info received all states

            javascript.0 2017-06-05 20:15:47.449 info requesting all objects

            javascript.0 2017-06-05 20:15:47.448 info requesting all states

            javascript.0 2017-06-05 20:15:47.445 info starting. Version 3.3.8 in C:/ioBroker/node_modules/iobroker.javascript, node: v8.0.0

            host.Mediacenter 2017-06-05 20:15:46.818 info instance system.adapter.javascript.0 started with pid 9980

            host.Mediacenter 2017-06-05 20:15:44.325 info instance system.adapter.javascript.0 terminated with code null ()

            host.Mediacenter 2017-06-05 20:15:44.325 warn instance system.adapter.javascript.0 terminated due to SIGTERM

            host.Mediacenter 2017-06-05 20:15:44.314 info stopInstance system.adapter.javascript.0 killing pid 6572

            host.Mediacenter 2017-06-05 20:15:44.314 info stopInstance system.adapter.javascript.0

            1 Reply Last reply Reply Quote 0
            • Thisoft
              Thisoft last edited by

              Verstehe ich das richtig, dass das passiert egal welches Script du startest? Wenn ja hast du irgend einen bösen Fehler drin der den ganzen Javascript-Adapter zum Abstürzen bringt.

              Meine Vermutung: Du hast noch mehr Scripte unter "Global" angelegt und in einem davon einen Fehler. Schiebe bitte die Scripte aus "Global" in eine normale Gruppe (oder "KEINE GRUPPE" geht auch) - aber nicht "common"

              1 Reply Last reply Reply Quote 0
              • MichaHidd
                MichaHidd last edited by

                Es waren nur die beiden Skripte (in Blocky und in Java). Aber als ich sie von global nach common verschoben habe, funktionierten beide Skripte - Danke.

                Bleibt nur noch die Frage nach den Unterschied zwischen "steuere" und "aktualisiere" (bzw. ohne "true" oder mit "true" am Ende). Die Status wurde nur mit "steuere" (ohne true) verändert, nicht aber mit "aktualisiere" (mit "true")

                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer last edited by

                  @MichaHidd:

                  Es waren nur die beiden Skripte (in Blocky und in Java). Aber als ich sie von global nach common verschoben habe, funktionierten beide Skripte - Danke.

                  Bleibt nur noch die Frage nach den Unterschied zwischen "steuere" und "aktualisiere" (bzw. ohne "true" oder mit "true" am Ende). Die Status wurde nur mit "steuere" (ohne true) verändert, nicht aber mit "aktualisiere" (mit "true") `
                  ack = false (bzw. ohne true) ist eine Anforderung an den Adapter, auf die State-Änderung zu reagieren. Wenn diese Änderung vorgenommen wurde, bestätigt der Adapter diese durch setzen von ack = true.

                  Deswegen passiert auch nichts, wenn du den State mit ack = true setzt - der Adapter geht dann davon aus, dass er selbst die Änderung bestätigt hat.

                  1 Reply Last reply Reply Quote 0
                  • Thisoft
                    Thisoft last edited by

                    Schön dass die Scripte jetzt funktionieren, aber warum schiebst du die jetzt wieder in "common" - ich hatte doch extra geschrieben "NICHT in common"!

                    Was hast du denn dagegen 😉 , dir einen ganz normalen Ordner anzulegen und deine Scripte da abzulegen - sofern sie eben nicht für die gemeinsame (common) oder globale Verwendung benötigt werden?

                    1 Reply Last reply Reply Quote 0
                    • MichaHidd
                      MichaHidd last edited by

                      Da habe ich die Nachricht wohl nicht bis zum Ende gelesen

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      704
                      Online

                      31.7k
                      Users

                      79.8k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      2141
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo