Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] dynamischer Cronjob, wie?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    314

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    290

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    922

[gelöst] dynamischer Cronjob, wie?

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
28 Beiträge 4 Kommentatoren 2.4k Aufrufe 4 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • metaxaM metaxa

    @martinp sagte in [gelöst] dynamischer Cronjob, wie?:

    holst Du Dir zwei Zeitpunkte für die kommenden 24 Stunden, wo der Strom sehr günstig ist, und möchtes dann Aktionen Auslösen, wenn die Zeitpunkte gekommen sind (auch welche, wenn der Strom wieder teurer wird?)

    Exakt: mein akt. Stromprovider stellt mir tgl. um 17:00 die stündlichen Stromtarife des kommenden Tages zur Verfügung. Die hole ich mir und parse sie in DP von 00 - 23 Uhr. Danach suche ich mir den günstigsten und den 2.günstigsten Preis raus. Der 2. günstigere ist eher nur eine Fleißaufgabe, verwende ich aber nicht wirklich. Am nächsten Tag zum Zeitpunkt xx:00 lade ich dann meine Akkus im Keller auf um den Rest des Tages vom relativ günstigen Einkauf zu leben. Das Vollpumpen der Akkus im Winter hat auch den Vorteil, dass diese regelmäßig kalibriert werden.

    In meinem Script fülle ich den 2. Cron mit den Daten des errechneten günstigsten Preises.

    @martinp sagte in [gelöst] dynamischer Cronjob, wie?:

    Da könnte man natürlich auch Timeouts von Timern bei der Ermittlung gleich so berechnen, dass die beim Erreichen der Zeit abgelaufen sind ...

    Das ist gar nicht nötig, die Vollladung meiner kleinen Akkukapazität ist erfahrungsgemäß in max. 70 oder 80 Minuten erledigt. Dass die 10 - 20 Minuten in den nächsten Tarif rutschen krazt mich nicht besonders.

    @martinp sagte in [gelöst] dynamischer Cronjob, wie?:

    .... ansonsten wird nichts getan ...

    jein, erst béim Erreichen des manuellen Ladezeitpunkts prüfe ich noch etliche Parameter ob eine Volladung sinnvoll ist. Aktuell beinhaltet die Prüfung paar Parameter meiner PV (unter anderen den SOC Wert). Aktuell bin ich noch am Überlegen auch den zu erwartenden Sonnenertrag des kommenden Tages miteinfließen zu lassen und die Akkus im Falle des Falles mnur bis zu 70% oder 80% zu laden, in der Hoffnung die Tagessonne erledigt dann die Differenz. Bei einer Volladung hatte ich jetzt schon paar mal die Situation, die Akkus waren gut gefüllt als die Sonne kam und ich schickte dann wieder überschüssige Energie zu einem schlechten Preis ins Netz. Das versuche ich zu umgehen.

    Sorry für den langen Text.

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #19

    @metaxa
    Vielleicht in der Art?

    560dae3c-f024-4767-8c44-e9f9c7bc47cd-image.png

    Um 17:00 Uhr wird der Tarif analysiert und ein genau dazu passender Zeitplan "laden" erstellt.
    Der wird um 17:00 Uhr erstmal beendet, da er ja neu berechnet werden muss.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    MartinPM 1 Antwort Letzte Antwort
    1
    • CodierknechtC Codierknecht

      @metaxa
      Vielleicht in der Art?

      560dae3c-f024-4767-8c44-e9f9c7bc47cd-image.png

      Um 17:00 Uhr wird der Tarif analysiert und ein genau dazu passender Zeitplan "laden" erstellt.
      Der wird um 17:00 Uhr erstmal beendet, da er ja neu berechnet werden muss.

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #20

      @codierknecht Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann, wäre das wirklich die naheliegende Lösung.
      Ich hatte da mit mehr Limitierungen gerechnet ...

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
      Linux pve 6.17.9-1-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      CodierknechtC metaxaM 2 Antworten Letzte Antwort
      0
      • MartinPM MartinP

        @codierknecht Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann, wäre das wirklich die naheliegende Lösung.
        Ich hatte da mit mehr Limitierungen gerechnet ...

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von Codierknecht
        #21

        @martinp sagte in dynamischer Cronjob, wie?:

        Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann

        Nicht strings - Zahlenwerte.

        8b2b1394-7fc2-4eb6-8800-093504bc4907-image.png

        Wie die zu berechnen sind, weiß der TE am besten.
        Hier wird der Ladevorgang nach 60 Minuten beendet. Ob man das so oder besser anders macht, muss er entscheiden.
        Kann ja auch ein weiterer CRON "ladenBeenden" sein.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        MartinPM 1 Antwort Letzte Antwort
        0
        • MartinPM MartinP

          @codierknecht Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann, wäre das wirklich die naheliegende Lösung.
          Ich hatte da mit mehr Limitierungen gerechnet ...

          metaxaM Offline
          metaxaM Offline
          metaxa
          schrieb am zuletzt editiert von
          #22

          @martinp die Lösung von @Codierknecht gefällt mir auch sehr gut, auch wenn ich sie noch nicht ganz behirnt habe. Jedoch laufe ich unter Umständen in die von @Asgothian augezeigte Problematik, falls der günstigste Tarif des morgigen Tages NACH dem morgigen Lauf des Scripts "Zeitplan laden" liegt.

          Ich muss den Vorschlag von @Codierknecht erst vollständig durchschauen ........

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • metaxaM metaxa

            @martinp die Lösung von @Codierknecht gefällt mir auch sehr gut, auch wenn ich sie noch nicht ganz behirnt habe. Jedoch laufe ich unter Umständen in die von @Asgothian augezeigte Problematik, falls der günstigste Tarif des morgigen Tages NACH dem morgigen Lauf des Scripts "Zeitplan laden" liegt.

            Ich muss den Vorschlag von @Codierknecht erst vollständig durchschauen ........

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von Codierknecht
            #23

            @metaxa sagte in dynamischer Cronjob, wie?:

            falls der günstigste Tarif des morgigen Tages NACH dem morgigen Lauf des Scripts "Zeitplan laden" liegt.

            Dann erzeuge den neuen CRON doch erst nach 23:00 Uhr.
            Du erhältst die neuen Zahlen AB 17:00 Uhr. WANN der CRON für den Folgetag erstellt wird, ist doch Wumpe.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            metaxaM 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @metaxa sagte in dynamischer Cronjob, wie?:

              falls der günstigste Tarif des morgigen Tages NACH dem morgigen Lauf des Scripts "Zeitplan laden" liegt.

              Dann erzeuge den neuen CRON doch erst nach 23:00 Uhr.
              Du erhältst die neuen Zahlen AB 17:00 Uhr. WANN der CRON für den Folgetag erstellt wird, ist doch Wumpe.

              metaxaM Offline
              metaxaM Offline
              metaxa
              schrieb am zuletzt editiert von
              #24

              @codierknecht 👍 🤝

              1 Antwort Letzte Antwort
              0
              • CodierknechtC Codierknecht

                @martinp sagte in dynamischer Cronjob, wie?:

                Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann

                Nicht strings - Zahlenwerte.

                8b2b1394-7fc2-4eb6-8800-093504bc4907-image.png

                Wie die zu berechnen sind, weiß der TE am besten.
                Hier wird der Ladevorgang nach 60 Minuten beendet. Ob man das so oder besser anders macht, muss er entscheiden.
                Kann ja auch ein weiterer CRON "ladenBeenden" sein.

                MartinPM Online
                MartinPM Online
                MartinP
                schrieb am zuletzt editiert von
                #25

                @codierknecht said in dynamischer Cronjob, wie?:

                @martinp sagte in dynamischer Cronjob, wie?:

                Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann

                Nicht strings - Zahlenwerte.

                Sicher?

                Ich habe mir da extra etwas gebastelt, und der generierten Javascript-Code nutzt ...toString() bei der Parametrierung des Cron aus den Werten ....

                Karnevalsbeginn-Erinnerung

                ed9403e0-d86e-4595-b261-ca0c208b5dd8-grafik.png

                Javascript-Ansicht:

                schedule1 = schedule(11.toString().trim() + ' ' + 11.toString().trim() + ' ' + 11.toString().trim() + ' ' + 11.toString().trim() + ' ' + '*'.toString().trim(), async () => {
                });
                

                Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                Linux pve 6.17.9-1-pve
                6 GByte RAM für den Container
                Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                Remote-Access über Wireguard der Fritzbox

                CodierknechtC 1 Antwort Letzte Antwort
                0
                • MartinPM MartinP

                  @codierknecht said in dynamischer Cronjob, wie?:

                  @martinp sagte in dynamischer Cronjob, wie?:

                  Wenn man in den hellblauen Feldern auch berechnete Strings eintragen kann

                  Nicht strings - Zahlenwerte.

                  Sicher?

                  Ich habe mir da extra etwas gebastelt, und der generierten Javascript-Code nutzt ...toString() bei der Parametrierung des Cron aus den Werten ....

                  Karnevalsbeginn-Erinnerung

                  ed9403e0-d86e-4595-b261-ca0c208b5dd8-grafik.png

                  Javascript-Ansicht:

                  schedule1 = schedule(11.toString().trim() + ' ' + 11.toString().trim() + ' ' + 11.toString().trim() + ' ' + 11.toString().trim() + ' ' + '*'.toString().trim(), async () => {
                  });
                  
                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #26

                  @martinp sagte in dynamischer Cronjob, wie?:

                  der generierten Javascript-Code nutzt ...toString() bei der Parametrierung des Cron

                  Ich hätte da numerisch Werte erwartet.
                  Muss aber gestehen, dass ich das nicht weiter geprüft habe.

                  Dann nimm halt Strings ...

                  Wenn man nochmal drüber nachdenkt ist's ja auch logisch - könnte ja auch '*' sein.

                  Trotzdem baut Blockly da seltsame Dinge zusammen und macht aus einem String erstmal ... einen String. Interessant ;-)

                  '5'.toString().trim() + ' ' + '4'.toString().trim() + ' ' + '3'.toString().trim() + ' ' + '2'.toString().trim() + ' ' + '1'.toString().trim();
                  

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  MartinPM 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @martinp sagte in dynamischer Cronjob, wie?:

                    der generierten Javascript-Code nutzt ...toString() bei der Parametrierung des Cron

                    Ich hätte da numerisch Werte erwartet.
                    Muss aber gestehen, dass ich das nicht weiter geprüft habe.

                    Dann nimm halt Strings ...

                    Wenn man nochmal drüber nachdenkt ist's ja auch logisch - könnte ja auch '*' sein.

                    Trotzdem baut Blockly da seltsame Dinge zusammen und macht aus einem String erstmal ... einen String. Interessant ;-)

                    '5'.toString().trim() + ' ' + '4'.toString().trim() + ' ' + '3'.toString().trim() + ' ' + '2'.toString().trim() + ' ' + '1'.toString().trim();
                    
                    MartinPM Online
                    MartinPM Online
                    MartinP
                    schrieb am zuletzt editiert von
                    #27

                    @codierknecht wirklich interessant - aber fällt ja nicht auf - wer guckt schon unter die Motorhaube ;-)

                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                    Virtualization : unprivileged lxc container (debian 13) on Proxmox 9.1.5)
                    Linux pve 6.17.9-1-pve
                    6 GByte RAM für den Container
                    Fritzbox 6591 FW 8.20 (Vodafone Leih-Box)
                    Remote-Access über Wireguard der Fritzbox

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • MartinPM MartinP

                      @codierknecht wirklich interessant - aber fällt ja nicht auf - wer guckt schon unter die Motorhaube ;-)

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #28

                      @martinp sagte in dynamischer Cronjob, wie?:

                      wer guckt schon unter die Motorhaube

                      Jepp - letztlich ist es gehopst wie gesprungen. Ob String oder Zahl ist da eigentlich ziemlich egal.

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      494

                      Online

                      32.8k

                      Benutzer

                      82.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe