Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Inject am ersten/letzten Tag des Monats

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Inject am ersten/letzten Tag des Monats

Scheduled Pinned Locked Moved Node-Red
10 Posts 4 Posters 1.3k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hpgo
    wrote on last edited by
    #1

    Wie der Titel sagt suche ich nach einer Möglichkeit (für Smartmeter) einen inject am ersten und am Letzten des Monats auszulösen.
    Klingt erstmal einfach, am Monatsbeginn auch kein Problem mit der simpletime node aber der letzte Tag im Monat kann ja der 30. der 31. der 28. Feb oder auch der 29. Feb sein.

    Jemand eine Idee, wie das am schnellsten/einfachsten umsetzbar ist?
    Danke und Lg

    HomoranH 1 Reply Last reply
    0
    • H hpgo

      Wie der Titel sagt suche ich nach einer Möglichkeit (für Smartmeter) einen inject am ersten und am Letzten des Monats auszulösen.
      Klingt erstmal einfach, am Monatsbeginn auch kein Problem mit der simpletime node aber der letzte Tag im Monat kann ja der 30. der 31. der 28. Feb oder auch der 29. Feb sein.

      Jemand eine Idee, wie das am schnellsten/einfachsten umsetzbar ist?
      Danke und Lg

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      @hpgo sagte in Inject am ersten/letzten Tag des Monats:

      Jemand eine Idee, wie das am schnellsten/einfachsten umsetzbar ist?

      ja! Aber leider nicht mit node red.
      du musst einfach prüfen was in x Millisekunden am nächsten Tag für ein Tag im Datum steht.
      ist es eine 1 ist aktuell der letzte des aktuellen Monats

      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 -

      H 1 Reply Last reply
      0
      • HomoranH Homoran

        @hpgo sagte in Inject am ersten/letzten Tag des Monats:

        Jemand eine Idee, wie das am schnellsten/einfachsten umsetzbar ist?

        ja! Aber leider nicht mit node red.
        du musst einfach prüfen was in x Millisekunden am nächsten Tag für ein Tag im Datum steht.
        ist es eine 1 ist aktuell der letzte des aktuellen Monats

        H Offline
        H Offline
        hpgo
        wrote on last edited by hpgo
        #3

        Danke für den Vorschlag, wie ich das Umsetzen werde/soll weiß ich jetzt nicht - ich lese mir mal das wiki der simpletime Node genauer durch, vlt kann man da schon iwie angezeigt bekommen was morgen für ein Tag sein wird und deinen Vorschlag umsetzen.

        Lg

        mickymM 1 Reply Last reply
        -1
        • H hpgo

          Danke für den Vorschlag, wie ich das Umsetzen werde/soll weiß ich jetzt nicht - ich lese mir mal das wiki der simpletime Node genauer durch, vlt kann man da schon iwie angezeigt bekommen was morgen für ein Tag sein wird und deinen Vorschlag umsetzen.

          Lg

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          @hpgo Anstelle von 1000 Zeit Node - nimm die Cronplus Node.

          Die cronplus Node - kann alle Zeitnodes ersetzen. Gibt nur wenige die man da noch brauchst. Diese kann ich Dir empfehlen - wobei man wie man unten sieht - auch mit Standardnodes machen kann. Aber die cronplus Node ist wirklich eine der Besten.

          058e097c-e081-479a-9ba8-9a1fcaa8e385-image.png

          932742fb-6449-4982-9381-2e4bc5e0af38-image.png

          [
             {
                 "id": "139eaefe163a3c90",
                 "type": "cronplus",
                 "z": "54b226bc.0793e8",
                 "name": "",
                 "outputField": "payload",
                 "timeZone": "",
                 "persistDynamic": false,
                 "commandResponseMsgOutput": "output1",
                 "outputs": 1,
                 "options": [
                     {
                         "name": "schedule1",
                         "topic": "topic1",
                         "payloadType": "str",
                         "payload": "Monatserster oder Monatsletzter",
                         "expressionType": "cron",
                         "expression": "0 0 0 1,L * * *",
                         "location": "",
                         "offset": "0",
                         "solarType": "all",
                         "solarEvents": "sunrise,sunset"
                     }
                 ],
                 "x": 740,
                 "y": 3820,
                 "wires": [
                     [
                         "9352559182085679"
                     ]
                 ]
             },
             {
                 "id": "9352559182085679",
                 "type": "debug",
                 "z": "54b226bc.0793e8",
                 "name": "debug 1",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "false",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 900,
                 "y": 3820,
                 "wires": []
             }
          ]
          

          Es geht aber auch ohne irgendwelche zustätzlichen Nodes mit Standardmitteln.

          Du kannst einfach täglich zum irgendeiner Zeit die Inject Node triggern und dann halt wie üblich mit einer Switch Node nur die richtigen Tage herausfiltern.

          de98dd33-68cf-49e0-b948-71611fa462d1-image.png
          51c58289-1943-4976-a08c-705f4521ec29-image.png

          [
              {
                  "id": "b33f844a1ce99b65",
                  "type": "inject",
                  "z": "54b226bc.0793e8",
                  "name": "",
                  "props": [
                      {
                          "p": "trigger",
                          "v": "true",
                          "vt": "bool"
                      }
                  ],
                  "repeat": "",
                  "crontab": "00 00 * * *",
                  "once": false,
                  "onceDelay": 0.1,
                  "topic": "",
                  "x": 650,
                  "y": 4200,
                  "wires": [
                      [
                          "17ff8c212366fbf5"
                      ]
                  ]
              },
              {
                  "id": "17ff8c212366fbf5",
                  "type": "switch",
                  "z": "54b226bc.0793e8",
                  "name": "",
                  "property": "$moment().format('D')\t",
                  "propertyType": "jsonata",
                  "rules": [
                      {
                          "t": "eq",
                          "v": "1",
                          "vt": "str"
                      },
                      {
                          "t": "eq",
                          "v": "$moment().endOf('month').format('D')\t",
                          "vt": "jsonata"
                      }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 2,
                  "x": 810,
                  "y": 4200,
                  "wires": [
                      [
                          "4b90b6be6bc7b518"
                      ],
                      [
                          "d3f1ed412003e94c"
                      ]
                  ],
                  "outputLabels": [
                      "Monatserster",
                      "Monatsletzter"
                  ]
              },
              {
                  "id": "4b90b6be6bc7b518",
                  "type": "debug",
                  "z": "54b226bc.0793e8",
                  "name": "ist Monatserster",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "payload",
                  "targetType": "msg",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 1020,
                  "y": 4180,
                  "wires": []
              },
              {
                  "id": "d3f1ed412003e94c",
                  "type": "debug",
                  "z": "54b226bc.0793e8",
                  "name": "ist Monatsletzter",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "payload",
                  "targetType": "msg",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 1020,
                  "y": 4220,
                  "wires": []
              }
          ]
          

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          H 1 Reply Last reply
          1
          • mickymM mickym

            @hpgo Anstelle von 1000 Zeit Node - nimm die Cronplus Node.

            Die cronplus Node - kann alle Zeitnodes ersetzen. Gibt nur wenige die man da noch brauchst. Diese kann ich Dir empfehlen - wobei man wie man unten sieht - auch mit Standardnodes machen kann. Aber die cronplus Node ist wirklich eine der Besten.

            058e097c-e081-479a-9ba8-9a1fcaa8e385-image.png

            932742fb-6449-4982-9381-2e4bc5e0af38-image.png

            [
               {
                   "id": "139eaefe163a3c90",
                   "type": "cronplus",
                   "z": "54b226bc.0793e8",
                   "name": "",
                   "outputField": "payload",
                   "timeZone": "",
                   "persistDynamic": false,
                   "commandResponseMsgOutput": "output1",
                   "outputs": 1,
                   "options": [
                       {
                           "name": "schedule1",
                           "topic": "topic1",
                           "payloadType": "str",
                           "payload": "Monatserster oder Monatsletzter",
                           "expressionType": "cron",
                           "expression": "0 0 0 1,L * * *",
                           "location": "",
                           "offset": "0",
                           "solarType": "all",
                           "solarEvents": "sunrise,sunset"
                       }
                   ],
                   "x": 740,
                   "y": 3820,
                   "wires": [
                       [
                           "9352559182085679"
                       ]
                   ]
               },
               {
                   "id": "9352559182085679",
                   "type": "debug",
                   "z": "54b226bc.0793e8",
                   "name": "debug 1",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "false",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 900,
                   "y": 3820,
                   "wires": []
               }
            ]
            

            Es geht aber auch ohne irgendwelche zustätzlichen Nodes mit Standardmitteln.

            Du kannst einfach täglich zum irgendeiner Zeit die Inject Node triggern und dann halt wie üblich mit einer Switch Node nur die richtigen Tage herausfiltern.

            de98dd33-68cf-49e0-b948-71611fa462d1-image.png
            51c58289-1943-4976-a08c-705f4521ec29-image.png

            [
                {
                    "id": "b33f844a1ce99b65",
                    "type": "inject",
                    "z": "54b226bc.0793e8",
                    "name": "",
                    "props": [
                        {
                            "p": "trigger",
                            "v": "true",
                            "vt": "bool"
                        }
                    ],
                    "repeat": "",
                    "crontab": "00 00 * * *",
                    "once": false,
                    "onceDelay": 0.1,
                    "topic": "",
                    "x": 650,
                    "y": 4200,
                    "wires": [
                        [
                            "17ff8c212366fbf5"
                        ]
                    ]
                },
                {
                    "id": "17ff8c212366fbf5",
                    "type": "switch",
                    "z": "54b226bc.0793e8",
                    "name": "",
                    "property": "$moment().format('D')\t",
                    "propertyType": "jsonata",
                    "rules": [
                        {
                            "t": "eq",
                            "v": "1",
                            "vt": "str"
                        },
                        {
                            "t": "eq",
                            "v": "$moment().endOf('month').format('D')\t",
                            "vt": "jsonata"
                        }
                    ],
                    "checkall": "true",
                    "repair": false,
                    "outputs": 2,
                    "x": 810,
                    "y": 4200,
                    "wires": [
                        [
                            "4b90b6be6bc7b518"
                        ],
                        [
                            "d3f1ed412003e94c"
                        ]
                    ],
                    "outputLabels": [
                        "Monatserster",
                        "Monatsletzter"
                    ]
                },
                {
                    "id": "4b90b6be6bc7b518",
                    "type": "debug",
                    "z": "54b226bc.0793e8",
                    "name": "ist Monatserster",
                    "active": true,
                    "tosidebar": true,
                    "console": false,
                    "tostatus": false,
                    "complete": "payload",
                    "targetType": "msg",
                    "statusVal": "",
                    "statusType": "auto",
                    "x": 1020,
                    "y": 4180,
                    "wires": []
                },
                {
                    "id": "d3f1ed412003e94c",
                    "type": "debug",
                    "z": "54b226bc.0793e8",
                    "name": "ist Monatsletzter",
                    "active": true,
                    "tosidebar": true,
                    "console": false,
                    "tostatus": false,
                    "complete": "payload",
                    "targetType": "msg",
                    "statusVal": "",
                    "statusType": "auto",
                    "x": 1020,
                    "y": 4220,
                    "wires": []
                }
            ]
            

            H Offline
            H Offline
            hpgo
            wrote on last edited by hpgo
            #5

            @mickym
            Vielen Dank, das ist genau, was ich gesucht habe.
            Wie kommt man auf 0 0 0 1,L * * * in der Cronplus Node um am Monatsersten und Monatsletzten ein inject bekommt? Wird das irgendwo erstellt?

            Danke und Lg

            H mickymM 2 Replies Last reply
            0
            • H hpgo

              @mickym
              Vielen Dank, das ist genau, was ich gesucht habe.
              Wie kommt man auf 0 0 0 1,L * * * in der Cronplus Node um am Monatsersten und Monatsletzten ein inject bekommt? Wird das irgendwo erstellt?

              Danke und Lg

              H Offline
              H Offline
              hpgo
              wrote on last edited by hpgo
              #6

              Sorry - bitte löschen wenn möglich!

              1 Reply Last reply
              0
              • H hpgo

                @mickym
                Vielen Dank, das ist genau, was ich gesucht habe.
                Wie kommt man auf 0 0 0 1,L * * * in der Cronplus Node um am Monatsersten und Monatsletzten ein inject bekommt? Wird das irgendwo erstellt?

                Danke und Lg

                mickymM Online
                mickymM Online
                mickym
                Most Active
                wrote on last edited by
                #7

                @hpgo sagte in Inject am ersten/letzten Tag des Monats:

                Wie kommt man auf 0 0 0 1,L * * * in der Cronplus Node um am Monatsersten und Monatsletzten ein inject bekommt? Wird das irgendwo erstellt?

                Ich glaube ich verstehe die Frage nicht? Das musst Du halt so in die Node eintragen bzw. konfigurieren.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                H 1 Reply Last reply
                0
                • mickymM mickym

                  @hpgo sagte in Inject am ersten/letzten Tag des Monats:

                  Wie kommt man auf 0 0 0 1,L * * * in der Cronplus Node um am Monatsersten und Monatsletzten ein inject bekommt? Wird das irgendwo erstellt?

                  Ich glaube ich verstehe die Frage nicht? Das musst Du halt so in die Node eintragen bzw. konfigurieren.

                  H Offline
                  H Offline
                  hpgo
                  wrote on last edited by
                  #8

                  Danke, hab ich in der Infobox der cronplus Node entdeckt das mit Minute Stunde, Monat, usw....
                  Wäre zwar nie auf das 0 0 0 1,L * * * gekommen - danke dafür.

                  Jetzt hab ich allerdings noch ein Problem, es soll ja der Monatsverbrauch berechnet und gespeichert werden, damit ich zu Jahresende auch den Jahresverbrauch berechnen kann. dazu würde ich sowas wie einen switch benötigen der mir den payload "Monatsbeginn und Monatsende" auf die jeweiligen Monate aufteilet.
                  Vlt hat dazu jemand noch eine tolle Idee.

                  Danke

                  CodierknechtC mickymM 2 Replies Last reply
                  0
                  • H hpgo

                    Danke, hab ich in der Infobox der cronplus Node entdeckt das mit Minute Stunde, Monat, usw....
                    Wäre zwar nie auf das 0 0 0 1,L * * * gekommen - danke dafür.

                    Jetzt hab ich allerdings noch ein Problem, es soll ja der Monatsverbrauch berechnet und gespeichert werden, damit ich zu Jahresende auch den Jahresverbrauch berechnen kann. dazu würde ich sowas wie einen switch benötigen der mir den payload "Monatsbeginn und Monatsende" auf die jeweiligen Monate aufteilet.
                    Vlt hat dazu jemand noch eine tolle Idee.

                    Danke

                    CodierknechtC Offline
                    CodierknechtC Offline
                    Codierknecht
                    Developer Most Active
                    wrote on last edited by
                    #9

                    @hpgo
                    Du könntest natürlich auch den Adapter "SourceAnalytics" verwenden.
                    Der ist genau dafür gemacht, Verbräuche zu erfassen. Tag, Woche, Monat, Quartal, Jahr ... alles kein Problem.

                    "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 Reply Last reply
                    0
                    • H hpgo

                      Danke, hab ich in der Infobox der cronplus Node entdeckt das mit Minute Stunde, Monat, usw....
                      Wäre zwar nie auf das 0 0 0 1,L * * * gekommen - danke dafür.

                      Jetzt hab ich allerdings noch ein Problem, es soll ja der Monatsverbrauch berechnet und gespeichert werden, damit ich zu Jahresende auch den Jahresverbrauch berechnen kann. dazu würde ich sowas wie einen switch benötigen der mir den payload "Monatsbeginn und Monatsende" auf die jeweiligen Monate aufteilet.
                      Vlt hat dazu jemand noch eine tolle Idee.

                      Danke

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #10

                      @hpgo Also erstens würde ich dann nur einen Trigger nehmen - entweder zu Monatsbeginn oder zu Monatsende und dann einfach die Differenz berechnen. (das mit den 2 Trigger am Monatsende und Monatsanfang macht doch keinen Sinn).

                      Wenn Du am Monatsersten um 00:00:00 triggerst, dann ist doch automatisch das Ende der vergangen Periode - bis dahin enthalten. Was hast Du den davon, dass Du am Monatsletzten um 23:59:59 nochmal triggerst. Was soll denn in der 1 sek. passiert sein bzw. würde erst recht für einen Trigger sprechen.

                      Wenn der Trigger am 1. jeden Monats läuft - dann kannst Du doch einfach die Differenz zum Vormonat nehmen, da brauchst Du doch keinen Trigger mehr am Monatsletzten?

                      Ich halte das mit 2 Triggern für Blödsinn.

                      So und die payload und das topic kannst Du doch alles konfigurieren. Wenn Du 2 trigger machst und die im topic unterscheidest. Zudem kannst Du auch die Default payload belassen.

                      Hier sind 2 Scheduler in einer cron Node definiert und über topic kannst Du entscheiden (in einem Switch) ob der last oder first Scheduler aktiv war.

                      f362bbc8-279c-466e-bbab-6ff129f964e5-image.png

                      Wenn Du dann noch die payload auf Standard belässt - dann hast ewig viel Information.

                      {
                        "triggerTimestamp": 1666614240000,
                        "status": {
                          "type": "static",
                          "modified": false,
                          "isRunning": true,
                          "count": 1,
                          "limit": 0,
                          "nextDescription": "in 59 seconds",
                          "nextDate": "2022-10-24T12:25:00.000Z",
                          "nextDateTZ": "24. Okt. 2022, 14:25:00 MESZ",
                          "timeZone": "Europe/Berlin",
                          "serverTime": "2022-10-24T12:24:00.022Z",
                          "serverTimeZone": "Europe/Berlin",
                          "description": "Every minute"
                        },
                        "config": {
                          "topic": "topic3",
                          "name": "schedule3",
                          "payloadType": "default",
                          "payload": "",
                          "limit": null,
                          "expressionType": "cron",
                          "expression": "0 * * * * * *"
                        }
                      }
                      

                      Aus der Standardpayload bekommst Du das Datum, wann getriggert wurde als timestamp oder als Datum (serverTime) alles raus.

                      Du kannst die payload natürlich auch nach Deinem Geschmack anpassen:

                      dfd7a2d7-6b2d-40a6-9d62-e88d74d7939b-image.png

                      "Beginn Monat: " & $moment().locale("de").tz('Europe/Berlin').format('MMMM YYYY')	
                      

                      bzw.

                      "Ende Monat: " & $moment().locale("de").tz('Europe/Berlin').format('MMMM YYYY')	
                      

                      mit dem entsprechenden Topic - bekommst Du dann halt das als Ausgabe:

                      b8e23a28-2159-4874-a149-dfbcd0685860-image.png

                      Die Kombinationen sind unendlich. ;)

                      ABER:
                      Aber wie gesagt, ich würde einfach nur EINEN Trigger am Monatsersten um 0:00 nehmen und dann die Differenz vom Vormonat

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      577

                      Online

                      32.6k

                      Users

                      82.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe