Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Grundsätzliches: Mathematische Berechnungen in Blockly

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    933

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Grundsätzliches: Mathematische Berechnungen in Blockly

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
27 Beiträge 6 Kommentatoren 3.7k Aufrufe 4 Watching
  • Ä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.
  • CodierknechtC Codierknecht

    @ralf-6 sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

    wie würde denn dieses in Blockly aussehen?

    Prinzipiell so:
    d27ce49d-7c45-41c7-83f8-b901c78d0468-image.png

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #21

    @codierknecht ich würde sogar alle Wert von... zu Beginn in Variablen schreiben und nur noch mit diesen rechnen,.
    Dann passen sie auch zeitlich zusammen

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    paul53P 1 Antwort Letzte Antwort
    1
    • HomoranH Homoran

      @codierknecht ich würde sogar alle Wert von... zu Beginn in Variablen schreiben und nur noch mit diesen rechnen,.
      Dann passen sie auch zeitlich zusammen

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #22

      @homoran sagte: sogar alle Wert von... zu Beginn in Variablen schreiben

      ... alle Werte, die mehr als einmal verwendet werden.
      Auch die komplexe Funktion setState() ("steuere"/"aktualisiere") für einen Datenpunkt sollte nur einmal innerhalb einer Callback-Funktion erfolgen, was auch oft die Verwendung von Variablen erfordert.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      R 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @homoran sagte: sogar alle Wert von... zu Beginn in Variablen schreiben

        ... alle Werte, die mehr als einmal verwendet werden.
        Auch die komplexe Funktion setState() ("steuere"/"aktualisiere") für einen Datenpunkt sollte nur einmal innerhalb einer Callback-Funktion erfolgen, was auch oft die Verwendung von Variablen erfordert.

        R Offline
        R Offline
        Ralf 6
        schrieb am zuletzt editiert von
        #23

        @paul53; @Homoran; @Codierknecht

        Vielen Dank für die inspirierende Nachhilfe

        1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @smile sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

          Gibt es eine einfachere / präziesere Funktion, um eine Abfrage zu machen

          Ich habe noch nicht durchblickt, was Dein Blockly denn genau machen soll.
          Dein Rollo soll genau x Sekunden vor einer bestimmten Zeit hochfahren?
          Warum sind da die Sekunden so wichtig?
          Also mir persönlich wäre es ziemlich egal, ob das Rollo nun 14 oder 16 Minuten vor einer bestimmten Zeit hochfährt.

          Wenn die Weckzeit in einem DP hinterlegt ist, könnte man da bei Änderungen auch mit 'nem Trigger reagieren und einen passgenauen Zeitplan-Trigger erstellen.
          Das spart dann auch minütliche Ausführungen.

          smileS Offline
          smileS Offline
          smile
          schrieb am zuletzt editiert von smile
          #24

          @codierknecht sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

          @smile sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

          Gibt es eine einfachere / präziesere Funktion, um eine Abfrage zu machen

          Ich habe noch nicht durchblickt, was Dein Blockly denn genau machen soll.
          Dein Rollo soll genau x Sekunden vor einer bestimmten Zeit hochfahren?
          Warum sind da die Sekunden so wichtig?
          Also mir persönlich wäre es ziemlich egal, ob das Rollo nun 14 oder 16 Minuten vor einer bestimmten Zeit hochfährt.

          Wenn die Weckzeit in einem DP hinterlegt ist, könnte man da bei Änderungen auch mit 'nem Trigger reagieren und einen passgenauen Zeitplan-Trigger erstellen.
          Das spart dann auch minütliche Ausführungen.

          Ganz einfach: Ich stelle einen Wecker über eine MQTT Wecker app. (Ziemlich coole App von Joaquim Plantin: Google Play Store
          Dieser Überträgt die Weckzeit in hh:mm an den iobroker. Dort steht also in einer Variable 08:35
          Diese rechne ich um in einen Timestamp in Sekunden seit Tagesanfang:
          719ba6df-c317-499e-a37a-c95141481676-grafik.png
          Dann lasse ich die im Eingangspost beschriebene Abfrage 1 x pro Minute durchführen, ob dieser Timestamp + - 80 Sekunden gerade zutrifft.
          Und wenn ich eine entsprechende Aktion z.B. 15 Minuten davor haben möchte, ziehe ich eben 15 x 60 Sekunden davon ab.
          Das funktioniert ja auch alles, nur halt ist immer der 1-minütige Trigger aktiv und es hat diesen leichten Ungenauigkeitsaspekt.
          Ich stimme zu dass es nicht so kritisch ist ab 14, 15 oder 16 Minuten - aber es könnte auch in anderen denkbaren Szenarien eine höhere Bedeutung haben, dass der Zeitpunkt exakt übereinstimmt.

          Wie würdest du den passgenauen Zeitplan-Trigger erstellen? Wie bekommt man da die unterschiedlichen Werte rein, also einmal die Weckzeit und zum anderen die Unterschiedlichen Rollo - Vorlaufzeiten (15 Min, 30 Min oder 60 Min)?

          Danke für die spannenden Infos hier, ich habe schon wieder viel gelernt!


          io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

          Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • smileS smile

            @codierknecht sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

            @smile sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

            Gibt es eine einfachere / präziesere Funktion, um eine Abfrage zu machen

            Ich habe noch nicht durchblickt, was Dein Blockly denn genau machen soll.
            Dein Rollo soll genau x Sekunden vor einer bestimmten Zeit hochfahren?
            Warum sind da die Sekunden so wichtig?
            Also mir persönlich wäre es ziemlich egal, ob das Rollo nun 14 oder 16 Minuten vor einer bestimmten Zeit hochfährt.

            Wenn die Weckzeit in einem DP hinterlegt ist, könnte man da bei Änderungen auch mit 'nem Trigger reagieren und einen passgenauen Zeitplan-Trigger erstellen.
            Das spart dann auch minütliche Ausführungen.

            Ganz einfach: Ich stelle einen Wecker über eine MQTT Wecker app. (Ziemlich coole App von Joaquim Plantin: Google Play Store
            Dieser Überträgt die Weckzeit in hh:mm an den iobroker. Dort steht also in einer Variable 08:35
            Diese rechne ich um in einen Timestamp in Sekunden seit Tagesanfang:
            719ba6df-c317-499e-a37a-c95141481676-grafik.png
            Dann lasse ich die im Eingangspost beschriebene Abfrage 1 x pro Minute durchführen, ob dieser Timestamp + - 80 Sekunden gerade zutrifft.
            Und wenn ich eine entsprechende Aktion z.B. 15 Minuten davor haben möchte, ziehe ich eben 15 x 60 Sekunden davon ab.
            Das funktioniert ja auch alles, nur halt ist immer der 1-minütige Trigger aktiv und es hat diesen leichten Ungenauigkeitsaspekt.
            Ich stimme zu dass es nicht so kritisch ist ab 14, 15 oder 16 Minuten - aber es könnte auch in anderen denkbaren Szenarien eine höhere Bedeutung haben, dass der Zeitpunkt exakt übereinstimmt.

            Wie würdest du den passgenauen Zeitplan-Trigger erstellen? Wie bekommt man da die unterschiedlichen Werte rein, also einmal die Weckzeit und zum anderen die Unterschiedlichen Rollo - Vorlaufzeiten (15 Min, 30 Min oder 60 Min)?

            Danke für die spannenden Infos hier, ich habe schon wieder viel gelernt!

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

            @smile
            Du könntest z.B. auf die Änderung der Weckzeit im ioBroker reagieren und damit dann einen (oder mehrere) Zeitpläne erstellen.

            So in etwa nach diesem Prinzip:
            a536fef0-15f1-4217-ba08-938a088f5b92-grafik.png

            "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

            smileS 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @smile
              Du könntest z.B. auf die Änderung der Weckzeit im ioBroker reagieren und damit dann einen (oder mehrere) Zeitpläne erstellen.

              So in etwa nach diesem Prinzip:
              a536fef0-15f1-4217-ba08-938a088f5b92-grafik.png

              smileS Offline
              smileS Offline
              smile
              schrieb am zuletzt editiert von
              #26

              @codierknecht Ja das ist eine coole Idee. Und die Zeit davor, also z.B. 15 Minuten davor würdest du dann mit einem zweitem CRON Zeitplan realisieren, wo man die Werte entsprechend um 15 Minuten anpasst?


              io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

              Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • smileS smile

                @codierknecht Ja das ist eine coole Idee. Und die Zeit davor, also z.B. 15 Minuten davor würdest du dann mit einem zweitem CRON Zeitplan realisieren, wo man die Werte entsprechend um 15 Minuten anpasst?

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

                @smile sagte in Grundsätzliches: Mathematische Berechnungen in Blockly:

                Und die Zeit davor, also z.B. 15 Minuten davor würdest du dann mit einem zweitem CRON Zeitplan realisieren, wo man die Werte entsprechend um 15 Minuten anpasst?

                Exakt!

                Um mit Versatzzeiten arbeiten zu können, sollte man den Wert zunächst in einen Zeitwert konvertieren.
                Damit lässt sich dann rechnen. Also z.B. 15 Minuten abziehen.
                Mit dem Ergebnis lassen sich dann verschiedene Zeitpläne einrichten.

                Also z.B. die Weckzeit ohne Versatz und dann einen Zweiten Zeitplan mit - 15 Minuten.

                "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
                1
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                763

                Online

                32.6k

                Benutzer

                82.2k

                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