NEWS

[gelöst] Sript zu Zeiten ausführen


  • Hallo @ all

    ich möchte eine URL in ioBroker zu einer bestimmten Zeit aufrufen. Ich weiss aber nicht wo ich das Script erstellen muss das dies immer und immer wieder passiert. Es soll zb jeden Wochentag Tag 5 Uhr und 15 Uhr aufgerufen werden am Wochenende 9 Uhr und 19 Uhr.

    Die Cron Einstellung, im ioBroker beim Script, habe ich gefunden aber ich weiß nicht wie ich dies zu einem funktionierenden Kreislauf zusammenbaue.

    LG


  • Ich hab sowas um den Stromtarif nachzubilden (Nix mit URL (Aber Du musst ja auch noch etwas tun))

    createState("javascript.0.Keller.Strom.Tarif", "Hochtarif", {type: "string"});
    createState("javascript.0.Keller.Strom.Farbe", "red", {type: "string"});
    
    schedule({hour: 7, minute: 0}, function () {
        // Hochtarif, ausser Sonntag
        if(WelcherTag()!==0) {
            setState("javascript.0.Keller.Strom.Tarif", "Hochtarif", true);
            setState("javascript.0.Keller.Strom.Farbe", "red", true);
            log("Script Strom-Tarif; Ab jetzt gilt Hochtarif (" + WelcherTag() + ")", "warn");
        } else {
            setState("javascript.0.Keller.Strom.Tarif", "Niedertarif", true);
            setState("javascript.0.Keller.Strom.Farbe", "green", true);
            log("Script Strom-Tarif; Es ist Sonntag, ab jetzt gilt Niedertarif (" + WelcherTag() + ")", "warn");
        }
    });
    schedule({hour: 20, minute: 0}, function () {
        // Alle Tage
        setState("javascript.0.Keller.Strom.Tarif", "Niedertarif", true);
            setState("javascript.0.Keller.Strom.Farbe", "green", true);
        log("Script Strom-Tarif; Ab jetzt gilt Niedertarif (" + WelcherTag() + ")", "warn");
    });
    schedule({hour: 13, minute: 0}, function () {
        // Samstag
        if (WelcherTag()===6) {
            setState("javascript.0.Keller.Strom.Tarif", "Niedertarif", true);
            setState("javascript.0.Keller.Strom.Farbe", "green", true);
            log("Script Strom-Tarif; Es ist Samstag, ab jetzt gilt Niedertarif (" + WelcherTag() + ")", "warn");
        }
    });
    
    function WelcherTag() {
        var d = new Date();
        var Wochentag = d.getDay();
        return Wochentag;
    }
    
    

    Vielleicht hilfts als Idee…


  • @photographix:

    Hallo @ all

    ich möchte eine URL in ioBroker zu einer bestimmten Zeit aufrufen. Ich weiss aber nicht wo ich das Script erstellen muss das dies immer und immer wieder passiert. Es soll zb jeden Wochentag Tag 5 Uhr und 15 Uhr aufgerufen werden am Wochenende 9 Uhr und 19 Uhr.

    Die Cron Einstellung, im ioBroker beim Script, habe ich gefunden aber ich weiß nicht wie ich dies zu einem funktionierenden Kreislauf zusammenbaue.

    LG `
    Ich denke, das sollte mit dem schedule Befehl funktionieren. Schau Dir den mal an.

  • Forum Testing Most Active

    @photographix:

    Hallo @ all

    ich möchte eine URL in ioBroker zu einer bestimmten Zeit aufrufen. Ich weiss aber nicht wo ich das Script erstellen muss das dies immer und immer wieder passiert. Es soll zb jeden Wochentag Tag 5 Uhr und 15 Uhr aufgerufen werden am Wochenende 9 Uhr und 19 Uhr.

    Die Cron Einstellung, im ioBroker beim Script, habe ich gefunden aber ich weiß nicht wie ich dies zu einem funktionierenden Kreislauf zusammenbaue.

    LG `

    Kann man in dem cron nicht Arbeitstag und Wochenende einstellen.

    Und dann halt mehrere Schedule erzeugen.

    Mit freundlichen Grüßen


  • Hallo,

    mein Problem ist eher "wo" erstelle ich das Script das es zu diesen Zeiten etwas macht. Es soll ja automatisch wie ein Cronjob ablaufen der von nichts getriggert wird.

    Mein Script (in Vis auf einem Button) geht wenn ich es selbst anschiebe. Nun wollte ich das ioBroker das selbst zu best Uhrzeiten erledigt. Diese "Erkenntnis" wollte ich später in meine Heizungssteuerung einfließen lassen.

    // Chumby Reboot mit Button
    var request = require ('request');
    var url = "http://192.168.200.24/cgi-bin/custom/reboot_normal.sh"
    request(url)
    setState("javascript.0.scriptEnabled.Chumby.Control.reboot"/*scriptEnabled.Chumby.Control.reboot*/, false);
    

    LG


  • Dafür ist der JavaScript Adapter. Dort lässt Du Scripte unabhängig von anderen Adaptern laufen (und hast aber Zugriff auf fast alles).

    {Und ich hab den Zusammenhang vom request und vom setState noch nicht begriffen} -duckundweg-


  • Hat das geklappt?

    Pack deinen Code in eine Funktion und rufe die per Schedule auf.

    Ich vermute, du hast auch noch eine Subscription auf den state "reboot" laufen:

    function reboot() {
        // Chumby Reboot mit Button
        var request = require ('request');
        var url = "http://192.168.200.24/cgi-bin/custom/reboot_normal.sh"
        request(url)
        setState("javascript.0.scriptEnabled.Chumby.Control.reboot"/*scriptEnabled.Chumby.Control.reboot*/, false);
    }
    
    // werktags
    schedule('0 5,15 * * 1-5', reboot);
    // wochenende
    schedule('0 9,19 * * 0,6', reboot);
    // reagiert auf Variable
    on("javascript.0.scriptEnabled.Chumby.Control.reboot", function(obj) {
       if (obj.state.val) reboot();
    });
    
    

    Gruß

    Pix


  • Hallo @ all,

    ich bin jetzt erst dazu gekommen mich wieder damit zu beschäftigen. Leider bin ich gar kein guter Scripter. Ich brauch immer eine kleine Vorlage. @ Pix dein Script hat geklappt. Ich musste lediglich die Cron Notation anpassen. Die von dir lief nicht richtig. Danke nochmal auch an die anderen.

    LG

Suggested Topics

1.2k
Online

38.4k
Users

43.8k
Topics

612.8k
Posts