Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Konvertierung von Zeitraum Datum/Uhrzeit aus JSON

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Konvertierung von Zeitraum Datum/Uhrzeit aus JSON

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @memberx last edited by mickym

      @memberx sagte in Konvertierung von Zeitraum Datum/Uhrzeit aus JSON:

      Ich weiss nicht was, aber irgendwas mache ich noch falsch. Es kommt einfach keinerlei Output bei mir.

      Gegenüberdem, was Du mir bereits mühsam erstellt hast, ersetze ich nur oben die Objekt ID verlinkt auf diesen JSON. und habe einen trigger der alle 20s intervall anstösst.

      Die ID müsste doch stimmen, so wie ich sie auf dem Bildschirmfoto gesehen hatte:

      3c858e6e-9ccd-40d0-9666-dbad70f5e2c0-image.png

      das war doch schon fix und fertig.

      M 1 Reply Last reply Reply Quote 0
      • M
        memberx @mickym last edited by

        @mickym ahh danke, ich dachte ich muss auf die Objekt ID verlinken, jetzt kam ein Output. Obwohl die den Bleistift zum anpassen gar nicht habe in die Objekten, ich meinte aber der war irgendwann auch schon mal da früher. Im Expertenmodus geht es zwar auch, aber halt als Code.

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @memberx last edited by

          @memberx Versteh ich zwar nicht - aber wie gesagt in der Regel triggert der Adapter das Skript, in dem er in den JSON Datenpunkt was schreibt. Du kannst es auch so wie ich machen (ich habe den Adapter nicht), habe den gesamten JSON in einen eigenen Datenpunkt unter 0_userdata.0 geschrieben und dann das Skript getestet.

          M 1 Reply Last reply Reply Quote 0
          • M
            memberx @mickym last edited by

            @mickym ich kann es triggern in dem ich einfach die Region ändere, geht auch so.

            Das Format des Anfangs und Enddatums ist nun eine Zahl, kann ich die über Konvertierung bspw, in Telegram als normales Datum ausgeben? Dort kommt nämlich das hier an für Anfang und Ende

            1697871600000

            1697932740000

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @memberx last edited by mickym

              @memberx Ja aber es kommt auch true oder false - das war Dir doch wichtig ob wir uns im Zeitraum befinden oder nicht.

              So wie ich in der Debug Konsole das ausgegeben habe,
              so kannst Du natürlich auch das Datum so aus geben wie Du es brauchst,

              6a40dd16-e67b-47f0-80a1-9cdcbf15ab74-image.png

              Ich dachte du siehst wie ich es im Debug ausgebe. So kannst Du es auch für Telegramm konvertieren.

              M 1 Reply Last reply Reply Quote 0
              • M
                memberx @mickym last edited by

                @mickym im Debug sehe ich es auch wie Du, hab es nur noch ohne Sekunden geändert, nur im Telegram kommt nur eine Langzahl

                Debug sieht so aus:

                21.10.2023, 16:55:02.591	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 16:55:02.593	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 16:55:02.593	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 16:55:02.593	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 16:55:02.594	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 16:55:02.594	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 16:56:02.366	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 16:56:02.368	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 16:56:02.368	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 16:56:02.369	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 16:56:02.369	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 16:56:02.369	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 16:57:02.341	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 16:57:02.342	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 16:57:02.342	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 16:57:02.343	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 16:57:02.343	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 16:57:02.343	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 16:58:02.362	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 16:58:02.363	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 16:58:02.364	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 16:58:02.365	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 16:58:02.365	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 16:58:02.366	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 16:59:02.323	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 16:59:02.324	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 16:59:02.325	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 16:59:02.325	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 16:59:02.325	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 16:59:02.326	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 17:00:02.373	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 17:00:02.374	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 17:00:02.375	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 17:00:02.376	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 17:00:02.376	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 17:00:02.376	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 17:01:02.330	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 17:01:02.331	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 17:01:02.332	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 17:01:02.332	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 17:01:02.332	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 17:01:02.333	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                21.10.2023, 17:02:02.326	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: {'Event':'Giallo Pioggia Allerta','Description':'Sono previsti fenomeni meteorologici di moderata intensità\n (DISCLAIMER: \'Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\')','Level':2,'Effective':'Sa. 09:00 - So. 01:59','Icon':'/meteoalarm.admin/icons/black/t10.png','AlarmType':'Regen'}
                21.10.2023, 17:02:02.327	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Anfang wird berechnet
                21.10.2023, 17:02:02.328	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 21.10.2023. 09:00
                21.10.2023, 17:02:02.328	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: Ende wird berechnet
                21.10.2023, 17:02:02.329	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: 22.10.2023 01:59
                21.10.2023, 17:02:02.329	[info ]: javascript.0 (201) script.js.Datum_auslesen_Meteoalarm: true
                
                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @memberx last edited by mickym

                  @memberx Na Du musst halt den String schreiben - ich habe keine Ahnung wie Du was via Telegram versendest. Du darfst halt nicht die Variable sondern den konvertierten String senden.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    memberx @mickym last edited by

                    @mickym Telegram einfach auch im Blockly

                    Bildschirmfoto 2023-10-21 um 17.08.41.png

                    mickym 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @memberx last edited by

                      @memberx Na da mach halt nicht einfach Ende hin - sondern den gesamten Block:

                      den kannst doch einfach aus der Debugausgabe kopieren

                      89af382d-45a3-4a60-bae1-bf846f8be0d7-image.png

                      und als Meldung an dein Telegrammpuzzleteil anflanschen

                      1 Reply Last reply Reply Quote 1
                      • mickym
                        mickym Most Active @memberx last edited by mickym

                        @memberx Dieses ganze Blocklyteil ist in meinen Augen eine Katastrophe - aber du kannst Dir doch die Meldung zusammensetzen wie Du es brauchst:

                        07e0fa47-8df1-4905-b9a9-d9349ef9e6ea-image.png

                        und diesen grünen Block dann an das Telegramteil anhängen.

                        Diese Übung zeigt mir nur mehrfach - lernt NodeRed!!! 😉 - sorry das musste sein, da ich einige Bugs bei der Erstellung entdeckt habe.
                        Einmal wird der Wochentag bei Sonntag in 7 übersetzt und einmal nicht. Das soll es zwar anwenderfreundlicher machen - ist aber alles nur buggy.

                        Das hat jetzt nichts mit Dir zu tun - aber wirklich, sobald es komplizierter wird, lernt Javascript oder nutzt NodeRed - aber das Puzzeln - alleine um so einen Text zu erstellen ist einfach eine Katastrophe.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          memberx @mickym last edited by

                          @mickym ja funktioniert jetzt soweit. Vielen vielen Dank für die Hilfe und geopferte Zeit. Das ganze hat auch nicht nur einen nice to have Hintergrund. Versuche nämlich künftig Hagelmeldungen auszuwerten, weil der letzte Hagel vor einigerzeit zwei Jalousien beschädigt hat.

                          Andere Frage, bestellst Du bei regelmässig Amazon?

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @memberx last edited by

                            @memberx sagte in Konvertierung von Zeitraum Datum/Uhrzeit aus JSON:

                            Andere Frage, bestellst Du bei regelmässig Amazon?

                            Solche Fragen kann man ggf. via Boardmail diskutieren. Ansonsten überlege Dir lieber mal, ob Du nicht auf eine gescheite Logikmaschine umsteigst. 😉

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              memberx @mickym last edited by

                              @mickym
                              was wäre denn eine gescheite Logikmaschine?

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @memberx last edited by

                                @memberx NodeRed zum Beispiel. 😉 - Gibt zwar viele andere Meinungen dazu, aber wenn Du es Dir anschauen willst, helfe ich Dir gerne.

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  memberx @mickym last edited by memberx

                                  @mickym hab schon oft davon gelesen, aber wollte mir eigentlich nicht noch was anderes antun was ich lernen muss, abgesehen von KNX bisher, Logikserver dafür, ioBroker 😄

                                  Blöde Frage, Nodered ist ne reine Software wie eben ioBroker und Home Assistent? Und kann auf nem NAS laufen?

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @memberx last edited by mickym

                                    @memberx NodeRed kann zwar auch alleine betrieben werden, ist aber hier als Adapter gut im iobroker integriert und hast trotzdem alle Möglichkeiten der noch größeren Community zur Verfügung.
                                    Bis auf ein paar Kleinigkeiten, kann man deshalb NodeRed einfach anstelle von Blockly einsetzen. Du kannst damit genauso auf Datenpunkte des iobrokers zugreifen und schreiben, wie in Blockly.

                                    55fb4fd9-1a32-421f-9288-b3911aa83120-image.png

                                    Du würdest es also nicht extra installieren, sondern als Teil deines iobrokers (eigener Adapter). Dann nimmst Du ein einfaches Blockly und versuchst das in NodeRed umzusetzen und schaust, ob Dir das gefällt. Im Prinzip kannst Du Node-Red zusätzlich oder als Ersatz zum Javascript Adapter sehen.

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active last edited by

                                      Hier mal das Beispiel dieses Threads in NodeRed umgesetzt:

                                      e693097e-7ac1-4e18-b85d-31bf0a261059-image.png

                                      [
                                         {
                                             "id": "6b221f540253d656",
                                             "type": "ioBroker in",
                                             "z": "7e6af0015415146d",
                                             "name": "",
                                             "topic": "0_userdata.0.Test.meteoalarm",
                                             "payloadType": "value",
                                             "onlyack": "",
                                             "func": "all",
                                             "gap": "",
                                             "fireOnStart": "false",
                                             "outFormat": "MQTT",
                                             "x": 140,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "0262326a57a3e1be"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "0262326a57a3e1be",
                                             "type": "json",
                                             "z": "7e6af0015415146d",
                                             "name": "",
                                             "property": "payload",
                                             "action": "",
                                             "pretty": false,
                                             "x": 350,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "fc867d5b79432725"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "fc867d5b79432725",
                                             "type": "change",
                                             "z": "7e6af0015415146d",
                                             "name": "Berechne und Extrahiere",
                                             "rules": [
                                                 {
                                                     "t": "set",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "$map($split(payload[0].Effective,\" - \"),function($val){$moment($val,\"dd. HH:mm\",\"de\") })",
                                                     "tot": "jsonata"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "payload[1]",
                                                     "pt": "msg",
                                                     "to": "$moment($$.payload[1]).isBefore($$.payload[0]) ? $moment($$.payload[1]).add(1,'w') : $$.payload[1]",
                                                     "tot": "jsonata"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "aktiv",
                                                     "pt": "msg",
                                                     "to": "$moment().isBetween($$.payload[0],$$.payload[1]) ",
                                                     "tot": "jsonata"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "{\t   \"Beginn\":$moment(payload[0]).tz('Europe/Berlin').format(\t       '[am:] dddd, [den] DD.MM.YYYY [um:] HH:mm'\t   ),\t   \"Ende\":$moment(payload[1]).tz('Europe/Berlin').format(\t       '[am:] dddd, [den] DD.MM.YYYY [um:] HH:mm'\t   ) \t}",
                                                     "tot": "jsonata"
                                                 }
                                             ],
                                             "action": "",
                                             "property": "",
                                             "from": "",
                                             "to": "",
                                             "reg": false,
                                             "x": 550,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "14da7f1f08c8b7d3",
                                                     "28adc5134af8df02"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "14da7f1f08c8b7d3",
                                             "type": "debug",
                                             "z": "7e6af0015415146d",
                                             "name": "Extrahiere Anfang und Ende",
                                             "active": true,
                                             "tosidebar": true,
                                             "console": false,
                                             "tostatus": false,
                                             "complete": "payload",
                                             "targetType": "msg",
                                             "statusVal": "",
                                             "statusType": "auto",
                                             "x": 840,
                                             "y": 4180,
                                             "wires": []
                                         },
                                         {
                                             "id": "240b27628aa1db02",
                                             "type": "debug",
                                             "z": "7e6af0015415146d",
                                             "name": "Text für Telegramm",
                                             "active": true,
                                             "tosidebar": true,
                                             "console": false,
                                             "tostatus": false,
                                             "complete": "payload",
                                             "targetType": "msg",
                                             "statusVal": "",
                                             "statusType": "auto",
                                             "x": 1170,
                                             "y": 4240,
                                             "wires": []
                                         },
                                         {
                                             "id": "1f47709675c2bb30",
                                             "type": "template",
                                             "z": "7e6af0015415146d",
                                             "name": "",
                                             "field": "payload",
                                             "fieldType": "msg",
                                             "format": "handlebars",
                                             "syntax": "mustache",
                                             "template": "Aktive Wetterwarnung !!!\nBeginn: {{payload.Beginn}}\nEnde: {{payload.Ende}}",
                                             "output": "str",
                                             "x": 980,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "240b27628aa1db02"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "28adc5134af8df02",
                                             "type": "switch",
                                             "z": "7e6af0015415146d",
                                             "name": "Aktive Warnung?",
                                             "property": "aktiv",
                                             "propertyType": "msg",
                                             "rules": [
                                                 {
                                                     "t": "true"
                                                 }
                                             ],
                                             "checkall": "true",
                                             "repair": false,
                                             "outputs": 1,
                                             "x": 790,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "1f47709675c2bb30"
                                                 ]
                                             ]
                                         }
                                      ]
                                      

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        memberx last edited by

                                        @mickym Wie kompliziert ist Node Red denn zu lernen? Gibt es Kosten? Sieht etwas zu einfach aus, einfach ektrahiere, kommt sicher noch etwas mehr dazu oder? 🙂

                                        mickym 2 Replies Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @memberx last edited by

                                          @memberx Nein Kosten gibt es keine. So wie Blockly ursprünglich von Google entwickelt wurde, so wurde NodeRed von der IBM entwickelt und beides so ca. 2016 der OpenSource Community zur Weiterentwicklung gegeben. (s. https://de.wikipedia.org/wiki/Node-RED)

                                          Ja das tolle an NodeRed ist eben, dass Du auch komplizierte Dinge in diesen Knoten verstecken kannst und deshalb in meinen Augen einen viel besseren Überblick über die Funktionsweise der Knoten hast und leicht einfach mal ein Kabel kappen kannst oder eines hinzufügen kannst.

                                          Ich habe aber auch in Deinem Blockly JSONATA verwendet - das ist sehr mächtig aber nicht ganz einfach zu lernen.
                                          Die Logik ist in 4 Regeln mit JSONATA Code versteckt:

                                          de8fa7e4-db83-46d2-aef2-b6544ccb8d36-image.png

                                          Man kann es auch mit mehr Knoten aufdröseln, wenn einem das zu kompliziert ist und man nicht soviel Programmsprache kann. Ich zeig Dir noch eine Version in der man weniger Code schreibt - die moments Bibliothek da gibts ein eigenes Verzeichnis - da diese für die Zeitberechnung sehr mächtig ist: https://momentjs.com/docs/#/displaying/format/

                                          1 Reply Last reply Reply Quote 1
                                          • mickym
                                            mickym Most Active @memberx last edited by mickym

                                            @memberx Ich hab alles mal in Einzelschritte zerlegt - wie gesagt mit der Moments Bibliothek bei Datums - und Zeitberechnungen muss man sich bissi beschäftigen:

                                            3c3fb858-d8a9-4ab6-9b72-85ca8cf87467-image.png

                                            ansonsten enthält jetzt quasi jede Node nur noch einen Schritt.

                                            [
                                               {
                                                   "id": "4ccc5df4d865b87c",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "in schön",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 3280,
                                                   "y": 3680,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "d903332e86918bee",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Text für Telegramm",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 3370,
                                                   "y": 3580,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "be54b18dfc9929a0",
                                                   "type": "template",
                                                   "z": "7e6af0015415146d",
                                                   "name": "",
                                                   "field": "payload",
                                                   "fieldType": "msg",
                                                   "format": "handlebars",
                                                   "syntax": "mustache",
                                                   "template": "Aktive Wetterwarnung !!!\nBeginn: {{payload.Beginn}}\nEnde: {{payload.Ende}}",
                                                   "output": "str",
                                                   "x": 3180,
                                                   "y": 3580,
                                                   "wires": [
                                                       [
                                                           "d903332e86918bee"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "b273529fd5ba628d",
                                                   "type": "split",
                                                   "z": "7e6af0015415146d",
                                                   "name": "",
                                                   "splt": " - ",
                                                   "spltType": "str",
                                                   "arraySplt": 1,
                                                   "arraySpltType": "len",
                                                   "stream": false,
                                                   "addname": "",
                                                   "x": 2450,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "070bbe468ca3eb44",
                                                           "faef99f46925cb1e"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "1f87292f1df6e20c",
                                                   "type": "change",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Extrahiere Effective",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "payload",
                                                           "pt": "msg",
                                                           "to": "payload[0].Effective",
                                                           "tot": "msg"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 2270,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "b273529fd5ba628d",
                                                           "cb1d4ed32547d7c4"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "45ec520a6208783f",
                                                   "type": "inject",
                                                   "z": "7e6af0015415146d",
                                                   "name": "",
                                                   "props": [
                                                       {
                                                           "p": "payload"
                                                       }
                                                   ],
                                                   "repeat": "",
                                                   "crontab": "",
                                                   "once": false,
                                                   "onceDelay": 0.1,
                                                   "topic": "",
                                                   "payload": "[{\"Event\":\"Giallo Pioggia Allerta\",\"Description\":\"Sono previsti fenomeni meteorologici di moderata intensità\\n (DISCLAIMER: \\\"Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\\\")\",\"Level\":2,\"Effective\":\"Sa. 09:00 - So. 01:59\",\"Icon\":\"/meteoalarm.admin/icons/black/t10.png\",\"AlarmType\":\"Regen\"},{\"Event\":\"Giallo Temporali Allerta\",\"Description\":\"Sono previsti fenomeni meteorologici di moderata intensità\\n (DISCLAIMER: \\\"Le informazioni fornite su METEOALARM per l'Italia riguardano esclusivamente l'intensità e la ricorrenza dei fenomeni, maggiori dettagli sono disponibili su www.meteoam.it. Le informazioni METEOALARM non forniscono la valutazione di impatto sul territorio e non rappresentano i messaggi di Allerta Ufficiali che vengono emessi dal Servizio Nazionale di Protezione Civile https://www.protezionecivile.gov.it\\\")\",\"Level\":2,\"Effective\":\"Sa. 09:00 - So. 01:59\",\"Icon\":\"/meteoalarm.admin/icons/black/t3.png\",\"AlarmType\":\"Blitz und Donner\"}]",
                                                   "payloadType": "json",
                                                   "x": 2070,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "1154820b84dcbff6",
                                                           "1f87292f1df6e20c"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "1154820b84dcbff6",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Input ist ein JSON Objekt",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 2290,
                                                   "y": 3340,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "cb1d4ed32547d7c4",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Effektive des 1.Objektes extrahiert",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 2560,
                                                   "y": 3460,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "08aa9f357ae2b7f2",
                                                   "type": "join",
                                                   "z": "7e6af0015415146d",
                                                   "name": "",
                                                   "mode": "custom",
                                                   "build": "array",
                                                   "property": "payload",
                                                   "propertyType": "msg",
                                                   "key": "topic",
                                                   "joiner": "\\n",
                                                   "joinerType": "str",
                                                   "accumulate": false,
                                                   "timeout": "",
                                                   "count": "2",
                                                   "reduceRight": false,
                                                   "reduceExp": "",
                                                   "reduceInit": "",
                                                   "reduceInitType": "",
                                                   "reduceFixup": "",
                                                   "x": 2870,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "fa7e2ea550e7514e",
                                                           "3fb465f4d5b1624b"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "070bbe468ca3eb44",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "erstelle Einzelnachrichten",
                                                   "active": false,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 2670,
                                                   "y": 3340,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "fa7e2ea550e7514e",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Erstelle Array aus Einzelnachrichten",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 3130,
                                                   "y": 3460,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "faef99f46925cb1e",
                                                   "type": "change",
                                                   "z": "7e6af0015415146d",
                                                   "name": "erstelle Datum und Uhrzeit",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "payload",
                                                           "pt": "msg",
                                                           "to": "$moment(payload,\"dd. HH:mm\",\"de\")",
                                                           "tot": "jsonata"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 2660,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "08aa9f357ae2b7f2",
                                                           "4f683133ce85b697"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "4f683133ce85b697",
                                                   "type": "debug",
                                                   "z": "7e6af0015415146d",
                                                   "name": "vollständiges Datum und Uhrzeit",
                                                   "active": true,
                                                   "tosidebar": true,
                                                   "console": false,
                                                   "tostatus": false,
                                                   "complete": "payload",
                                                   "targetType": "msg",
                                                   "statusVal": "",
                                                   "statusType": "auto",
                                                   "x": 3010,
                                                   "y": 3340,
                                                   "wires": []
                                               },
                                               {
                                                   "id": "3fb465f4d5b1624b",
                                                   "type": "switch",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Ist Ende vor Anfang?",
                                                   "property": "$moment($$.payload[1]).isBefore($$.payload[0])",
                                                   "propertyType": "jsonata",
                                                   "rules": [
                                                       {
                                                           "t": "true"
                                                       },
                                                       {
                                                           "t": "false"
                                                       }
                                                   ],
                                                   "checkall": "true",
                                                   "repair": false,
                                                   "outputs": 2,
                                                   "x": 3080,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "a8aada056e2343e3"
                                                       ],
                                                       [
                                                           "179169cf0de101fe"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "a8aada056e2343e3",
                                                   "type": "change",
                                                   "z": "7e6af0015415146d",
                                                   "name": "addiere 1 Woche zu Ende",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "payload[1]",
                                                           "pt": "msg",
                                                           "to": "$moment($$.payload[1]).add(1,'w')",
                                                           "tot": "jsonata"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 3330,
                                                   "y": 3360,
                                                   "wires": [
                                                       [
                                                           "179169cf0de101fe"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "c35d1bedaa326b46",
                                                   "type": "change",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Mach schönes Format",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "payload",
                                                           "pt": "msg",
                                                           "to": "{    \"Beginn\":$moment(payload[0]).tz('Europe/Berlin').format(        '[am:] dddd, [den] DD.MM.YYYY [um:] HH:mm'    ),    \"Ende\":$moment(payload[1]).tz('Europe/Berlin').format(        '[am:] dddd, [den] DD.MM.YYYY [um:] HH:mm'    )  }",
                                                           "tot": "jsonata"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 2960,
                                                   "y": 3580,
                                                   "wires": [
                                                       [
                                                           "4ccc5df4d865b87c",
                                                           "be54b18dfc9929a0"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "503a4d422934e44c",
                                                   "type": "switch",
                                                   "z": "7e6af0015415146d",
                                                   "name": "Aktive Warnung?",
                                                   "property": "aktiv",
                                                   "propertyType": "msg",
                                                   "rules": [
                                                       {
                                                           "t": "true"
                                                       }
                                                   ],
                                                   "checkall": "true",
                                                   "repair": false,
                                                   "outputs": 1,
                                                   "x": 2730,
                                                   "y": 3580,
                                                   "wires": [
                                                       [
                                                           "c35d1bedaa326b46"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "179169cf0de101fe",
                                                   "type": "change",
                                                   "z": "7e6af0015415146d",
                                                   "name": "",
                                                   "rules": [
                                                       {
                                                           "t": "set",
                                                           "p": "aktiv",
                                                           "pt": "msg",
                                                           "to": "$moment().isBetween($$.payload[0],$$.payload[1]) ",
                                                           "tot": "jsonata"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 3560,
                                                   "y": 3400,
                                                   "wires": [
                                                       [
                                                           "503a4d422934e44c"
                                                       ]
                                                   ]
                                               }
                                            ]
                                            

                                            Der Vorteil in NodeRed ist übrigens auch, dass man mit einer Inject Node die eingehenden Daten direkt testen kann ohne über einen Datenpunkt triggern zu müssen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            415
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            50
                                            2188
                                            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