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. Node-Red
  5. Telegram als Adapter und Nodered

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Telegram als Adapter und Nodered

Geplant Angeheftet Gesperrt Verschoben Node-Red
33 Beiträge 3 Kommentatoren 3.5k Aufrufe 3 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.
  • Basti17683B Offline
    Basti17683B Offline
    Basti17683
    schrieb am zuletzt editiert von
    #18

    @mickym Danke für dein Mühe.
    Ja das liegt daran dass ich es noch nicht so kapiere wie ich gerne würde. Bin Elektrotechniker und hab mit den Programmiersprachen noch nicht so viel Erfahrung.
    Das was du mir geschickt hast konnte ich importieren. Wenn ich das allerdings meinem "Telegram Sender" füttere dann bekomme ich eine Fehlermeldung da dieser meist eine Funktion vorgeschalten hat. In dieser muss sich die Chat ID befinden damit er weiß wohin er es senden soll.

    Gibt es etwas was du mir raten würdest um hier mehr Durchblick zu erhalten? Klar kann man sich durchgooglen, aber letztlich ist es wenig verstehen und mehr zusammen-kopieren. Ich will ja wirklich verstehen und dazulernen - weiß aber gar nicht wo ich hier anfangen soll.

    Das steht in der vorgeschaltenen Funktionsnode:

    msg.payload = {
        "chatId": -82123456, 
        "type": "message", 
        "content": msg.payload
        }
    return msg;
    

    Wie lässt man den "Next Days Left" Datenpunkt selbst triggern? Weil du gemeint hast das wäre die schönere Lösung.

    Viele Wege führen nach Rom - blöd nur wenn man keinen davon versteht. Wenn du mir Lern Videos hast die du mir ans Herz legen würdest, dann gerne her damit.

    Danke für deine Geduld und einen schönen Abend!

    mickymM 2 Antworten Letzte Antwort
    0
    • Basti17683B Basti17683

      @mickym Danke für dein Mühe.
      Ja das liegt daran dass ich es noch nicht so kapiere wie ich gerne würde. Bin Elektrotechniker und hab mit den Programmiersprachen noch nicht so viel Erfahrung.
      Das was du mir geschickt hast konnte ich importieren. Wenn ich das allerdings meinem "Telegram Sender" füttere dann bekomme ich eine Fehlermeldung da dieser meist eine Funktion vorgeschalten hat. In dieser muss sich die Chat ID befinden damit er weiß wohin er es senden soll.

      Gibt es etwas was du mir raten würdest um hier mehr Durchblick zu erhalten? Klar kann man sich durchgooglen, aber letztlich ist es wenig verstehen und mehr zusammen-kopieren. Ich will ja wirklich verstehen und dazulernen - weiß aber gar nicht wo ich hier anfangen soll.

      Das steht in der vorgeschaltenen Funktionsnode:

      msg.payload = {
          "chatId": -82123456, 
          "type": "message", 
          "content": msg.payload
          }
      return msg;
      

      Wie lässt man den "Next Days Left" Datenpunkt selbst triggern? Weil du gemeint hast das wäre die schönere Lösung.

      Viele Wege führen nach Rom - blöd nur wenn man keinen davon versteht. Wenn du mir Lern Videos hast die du mir ans Herz legen würdest, dann gerne her damit.

      Danke für deine Geduld und einen schönen Abend!

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #19

      @basti17683 Gut aber wenn Du die function Node einfach verbindest, der schreibt ja die payload in den content des neuen payload Objektes. Sprich Du musst eigentlich die function Node mit deiner Telegramm Node nur hinter die template Node schalten.

      Wie lässt man den "Next Days Left" Datenpunkt selbst triggern? Weil du gemeint hast das wäre die schönere Lösung.

      Nun irgendwas ändert doch den Wert des Datenpunktes Next Days Left. Wahrscheinlich um Mitternacht. Dann kannst Du Dir doch dann wenn sich dieser Wert ändert, den Flow anstoßen - das muss doch nicht zu einer bestimmten Uhrzeit sein. Oder willst Du immer um 18 Uhr die Nachricht bekommen? - Wenn ja dann ist es OK wie Du es machst.

      Ansonsten kann ich Dir die folgende Quellen geben - zum Lernen.

      Ist zwar schon älter der Blog, aber für die Grundlagen immer noch aktuell: https://www.smarthome-tricks.de/uebersicht-iobroker-node-red/

      Ein paar kleine Videos hat auch Matthias - der hier an Board sehr aktiv ist, auch zum Thema NodeRed gemacht: https://haus-automatisierung.com/nodered-tutorial-reihe/

      Ansonsten - wenn Englisch kein Problem ist und Du mal was nachschlagen oder fortgeschritten bist, dann empfehle ich den Kurs von Steve:

      https://stevesnoderedguide.com/

      Ansonsten kannst Du die von Steve auch mal diese Playliste anschauen - da hat er knapp 80 Videos zu verschiedenen Nodes gemacht: https://www.youtube.com/watch?v=I6ejwwKTsZc&list=PLk0D2S-fqJ7YvR1wrpl8A4mhtBbYOlsE4

      Das macht aber keinen Sinn, sondern je nachdem wenn Du eine bestimmte Node suchst.

      Und zu guten Letzt sind wir ja auch noch da. ;)

      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 Antwort Letzte Antwort
      0
      • Basti17683B Basti17683

        @mickym Danke für dein Mühe.
        Ja das liegt daran dass ich es noch nicht so kapiere wie ich gerne würde. Bin Elektrotechniker und hab mit den Programmiersprachen noch nicht so viel Erfahrung.
        Das was du mir geschickt hast konnte ich importieren. Wenn ich das allerdings meinem "Telegram Sender" füttere dann bekomme ich eine Fehlermeldung da dieser meist eine Funktion vorgeschalten hat. In dieser muss sich die Chat ID befinden damit er weiß wohin er es senden soll.

        Gibt es etwas was du mir raten würdest um hier mehr Durchblick zu erhalten? Klar kann man sich durchgooglen, aber letztlich ist es wenig verstehen und mehr zusammen-kopieren. Ich will ja wirklich verstehen und dazulernen - weiß aber gar nicht wo ich hier anfangen soll.

        Das steht in der vorgeschaltenen Funktionsnode:

        msg.payload = {
            "chatId": -82123456, 
            "type": "message", 
            "content": msg.payload
            }
        return msg;
        

        Wie lässt man den "Next Days Left" Datenpunkt selbst triggern? Weil du gemeint hast das wäre die schönere Lösung.

        Viele Wege führen nach Rom - blöd nur wenn man keinen davon versteht. Wenn du mir Lern Videos hast die du mir ans Herz legen würdest, dann gerne her damit.

        Danke für deine Geduld und einen schönen Abend!

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #20

        @basti17683 Und auch wenn Du vielleicht die eine oder andere function Node im Netz siehst, wie diese hier, die Deiner telegram Node vorgeschaltet ist, kann man das auch OHNE machen - dann musst Du auch nicht soviel programmieren. Du musst das nur verstehen, wie ein Schaltplan. Und kopiere nicht soviel aus dem Netz die Programmieren viel zu viel. Du kommst in 95% der Fälle auch in NodeRed ohne Programmierung aus, wenn Du weißt, was die Nodes Dir alles für Arbeit abnehmen.

        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 Antwort Letzte Antwort
        0
        • Basti17683B Offline
          Basti17683B Offline
          Basti17683
          schrieb am zuletzt editiert von
          #21

          @mickym said in Telegram als Adapter und Nodered:

          Du kommst in 95% der Fälle auch in NodeRed ohne Programmierung aus, wenn Du weißt, was die Nodes Dir alles für Arbeit abnehmen.

          Hallo Micky,
          ich habe die letzten Monate dank deiner Links einiges dazu lernen können. Hast du mir hier nur evtl noch einen Lösungsansatz?
          Die Ausgabe meines Objektes bringt mir diverse Abfalltypen. Jetzt würde ich gern mit einer Switch oder Change Node nach Text filtern?
          Wenn besipielsweise "Restmüll und Biotonne" kommt dann würde ich gerne dass er in dieser einen Message -> 2 Objekte erkennt, und mir jeweils für die/den betroffenen Zustand/Zustände die True Signale ausgibt.

          Anbei meine beiden gedanklichen Ansätze...

          [
              {
                  "id": "e5528eb5167161cb",
                  "type": "tab",
                  "label": "Müll",
                  "disabled": false,
                  "info": "[{\"id\":\"1dcb9f56.0c98f1\",\"type\":\"subflow\",\"name\":\"sendMessage\",\"info\":\"\",\"category\":\"\",\"in\":[{\"x\":160,\"y\":280,\"wires\":[{\"id\":\"7113a90f.78d288\"}]}],\"out\":[{\"x\":1200,\"y\":300,\"wires\":[{\"id\":\"c015a8c4.074c68\",\"port\":0}]}],\"env\":[],\"color\":\"#DDAA99\"},{\"id\":\"c015a8c4.074c68\",\"type\":\"telegram sender\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"bot\":\"\",\"haserroroutput\":false,\"outputs\":1,\"x\":1070,\"y\":300,\"wires\":[[]]},{\"id\":\"7113a90f.78d288\",\"type\":\"switch\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"property\":\"sentMessageId\",\"propertyType\":\"msg\",\"rules\":[{\"t\":\"nnull\"},{\"t\":\"else\"}],\"checkall\":\"true\",\"repair\":false,\"outputs\":2,\"x\":250,\"y\":280,\"wires\":[[\"291984d6.17272c\"],[\"dae111f3.e48ba\"]]},{\"id\":\"dae111f3.e48ba\",\"type\":\"function\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"Nachricht erstellen\",\"func\":\"var content = msg.message;\\n\\nmsg.payload = {};\\nmsg.payload.chatId = msg.chatId;\\nmsg.payload.options = {\\n    parse_mode : \\\"Markdown\\\"\\n};\\nmsg.payload.content = content.toString();\\nmsg.payload.type = 'message';\\n\\nreturn [msg];\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":870,\"y\":300,\"wires\":[[\"c015a8c4.074c68\"]]},{\"id\":\"99589480.be74f8\",\"type\":\"telegram sender\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"bot\":\"\",\"haserroroutput\":true,\"outputs\":2,\"x\":650,\"y\":260,\"wires\":[[\"dae111f3.e48ba\"],[\"dae111f3.e48ba\"]]},{\"id\":\"291984d6.17272c\",\"type\":\"function\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"L�schobjekt erstellen\",\"func\":\"msg.payload = {};\\nmsg.payload.chatId = msg.chatId;\\nmsg.payload.content = msg.sentMessageId;\\nmsg.payload.type = 'deleteMessage';\\nmsg.payload.options = {\\n    message_id : msg.sentMessageId,\\n    chat_id : msg.payload.chatId\\n};\\n\\nreturn [msg];\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":440,\"y\":260,\"wires\":[[\"99589480.be74f8\"]]},{\"id\":\"6cf432ca.c994fc\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"Nachricht erst l�schen, dann neu erstellen (wird sie nur geupdated, wird der Zeitstempel nicht aktualisiert und identische Nachrichten k�nnen nicht versendet werden)\",\"info\":\"\",\"x\":650,\"y\":40,\"wires\":[]},{\"id\":\"1719c06f.03c4a\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.chatId = ID des Chats, wohin die Nachricht gepostet werden soll\",\"info\":\"\",\"x\":360,\"y\":80,\"wires\":[]},{\"id\":\"7c488ee.709da7\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.sentMessageId = Nachrichten-ID der letzten (zugeh�rigen) Nachricht, die ersetzt werden soll\",\"info\":\"\",\"x\":450,\"y\":120,\"wires\":[]},{\"id\":\"56fd0e66.a48f2\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.message = Text-Nachricht, die gesendet werden soll, Markdown m�glich\",\"info\":\"\",\"x\":390,\"y\":160,\"wires\":[]},{\"id\":\"dca76fb9.f45c6\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 0400 den Entsorgungs-Kalender abfragen\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00 04 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":270,\"y\":460,\"wires\":[[\"eb319001.ff2e9\"]]},{\"id\":\"eb319001.ff2e9\",\"type\":\"ical-upcoming\",\"z\":\"3ba3e58f.887512\",\"confignode\":\"\",\"checkall\":false,\"cron\":\"\",\"timeout\":\"28\",\"timeoutUnits\":\"days\",\"name\":\"\",\"offset\":\"\",\"endpreview\":\"100\",\"preview\":\"14\",\"previewUnits\":\"days\",\"pastview\":\"\",\"pastviewUnits\":\"days\",\"trigger\":\"always\",\"filter\":\"\",\"x\":590,\"y\":460,\"wires\":[[\"630ff9a6.e2e2b8\"]]},{\"id\":\"630ff9a6.e2e2b8\",\"type\":\"function\",\"z\":\"3ba3e58f.887512\",\"name\":\"Termine aktualisieren\",\"func\":\"let map = global.get(\\\"disposalData\\\") || {};\\ndelete map[\\\"today\\\"];\\ndelete map[\\\"tomorrow\\\"];\\n\\nlet upcoming = false;\\nlet disposalDates = msg.payload;\\nfor (var i = 0; i < disposalDates.length; i++) {\\n    let key = disposalDates[i].topic;\\n    let countdown = disposalDates[i].countdown.days + 1;\\n    \\n    map[key] = countdown || 0;\\n\\n    if (countdown == 0) {\\n        if (map[\\\"today\\\"] === undefined) {\\n            map[\\\"today\\\"] = key;\\n        } else {\\n            map[\\\"today\\\"] += \\\" und \\\" + key;\\n        }\\n        upcoming = true;\\n\\n    } else if (countdown == 1) {\\n        if (map[\\\"tomorrow\\\"] === undefined) {\\n            map[\\\"tomorrow\\\"] = key;\\n        } else {\\n            map[\\\"tomorrow\\\"] += \\\" und \\\" + key;\\n        }\\n        upcoming = true;\\n    }\\n}\\n\\nglobal.set(\\\"disposalData\\\", map);\\n\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":820,\"y\":460,\"wires\":[[]]},{\"id\":\"28e9ceb5.e40b42\",\"type\":\"comment\",\"z\":\"3ba3e58f.887512\",\"name\":\"Abfalltermine\",\"info\":\"\",\"x\":110,\"y\":420,\"wires\":[]},{\"id\":\"2db5bad9.f786b6\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 1600 nachschauen, ob morgen etwas abgeholt wird\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00 16 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":300,\"y\":520,\"wires\":[[\"debd0fe3.ddfc7\"]]},{\"id\":\"c14dd758.d1d338\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 0600 erinnern, dass gleich etwas abgeholt wird\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00016 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":290,\"y\":560,\"wires\":[[\"7b365890.f35968\"]]},{\"id\":\"debd0fe3.ddfc7\",\"type\":\"function\",\"z\":\"3ba3e58f.887512\",\"name\":\"Nachricht f�r morgige Termine bauen\",\"func\":\"let map = global.get('disposalData') || {};\\n\\nif (map[\\\"tomorrow\\\"] !== undefined) {\\n    msg.message = \\\"",
                  "env": []
              },
              {
                  "id": "5d674b7b47749671",
                  "type": "inject",
                  "z": "e5528eb5167161cb",
                  "name": "Trigger um 18:00 Uhr. ",
                  "props": [
                      {
                          "p": "payload"
                      }
                  ],
                  "repeat": "",
                  "crontab": "00 18 * * *",
                  "once": false,
                  "onceDelay": 0.1,
                  "topic": "",
                  "payload": "true",
                  "payloadType": "bool",
                  "x": 150,
                  "y": 340,
                  "wires": [
                      [
                          "28c8e85eb6b06dca"
                      ]
                  ]
              },
              {
                  "id": "28c8e85eb6b06dca",
                  "type": "ioBroker get",
                  "z": "e5528eb5167161cb",
                  "name": "Verbleibende Tage",
                  "topic": "trashschedule.0.next.daysLeft",
                  "attrname": "inDays",
                  "payloadType": "value",
                  "errOnInvalidState": "nothing",
                  "x": 370,
                  "y": 340,
                  "wires": [
                      [
                          "561a8a6ccce8dffc"
                      ]
                  ]
              },
              {
                  "id": "561a8a6ccce8dffc",
                  "type": "switch",
                  "z": "e5528eb5167161cb",
                  "name": "Vergleich",
                  "property": "inDays",
                  "propertyType": "msg",
                  "rules": [
                      {
                          "t": "eq",
                          "v": "1",
                          "vt": "num"
                      },
                      {
                          "t": "lte",
                          "v": "4",
                          "vt": "num"
                      }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 2,
                  "x": 560,
                  "y": 340,
                  "wires": [
                      [
                          "74fac1eb1db6056a"
                      ],
                      [
                          "fd10917f9ec60c1c"
                      ]
                  ]
              },
              {
                  "id": "74fac1eb1db6056a",
                  "type": "ioBroker get",
                  "z": "e5528eb5167161cb",
                  "name": "[object Object]",
                  "topic": "trashschedule.0.next.typesText",
                  "attrname": "payload",
                  "payloadType": "value",
                  "errOnInvalidState": "nothing",
                  "x": 500,
                  "y": 160,
                  "wires": [
                      [
                          "9b7e6ab1a776c8a4"
                      ]
                  ]
              },
              {
                  "id": "9b7e6ab1a776c8a4",
                  "type": "template",
                  "z": "e5528eb5167161cb",
                  "name": "",
                  "field": "payload",
                  "fieldType": "msg",
                  "format": "handlebars",
                  "syntax": "mustache",
                  "template": "Morgen werden folgende Mülleimer geleert: {{payload}} !",
                  "output": "str",
                  "x": 720,
                  "y": 160,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "fd10917f9ec60c1c",
                  "type": "ioBroker get",
                  "z": "e5528eb5167161cb",
                  "name": "[object Object]",
                  "topic": "trashschedule.0.next.typesText",
                  "attrname": "payload",
                  "payloadType": "value",
                  "errOnInvalidState": "nothing",
                  "x": 520,
                  "y": 460,
                  "wires": [
                      [
                          "63d3fdc7738ac3dc",
                          "cecf9569ab79642a",
                          "7a382177e7c2a394",
                          "c10f72d2e82adfc8"
                      ]
                  ]
              },
              {
                  "id": "63d3fdc7738ac3dc",
                  "type": "switch",
                  "z": "e5528eb5167161cb",
                  "name": "Müllart",
                  "property": "payload",
                  "propertyType": "msg",
                  "rules": [
                      {
                          "t": "cont",
                          "v": "Biotonne",
                          "vt": "str"
                      },
                      {
                          "t": "cont",
                          "v": "Restmüll",
                          "vt": "str"
                      },
                      {
                          "t": "cont",
                          "v": "Papiertonne",
                          "vt": "str"
                      }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 3,
                  "x": 770,
                  "y": 440,
                  "wires": [
                      [],
                      [],
                      []
                  ]
              },
              {
                  "id": "cecf9569ab79642a",
                  "type": "change",
                  "z": "e5528eb5167161cb",
                  "name": "Biotonne",
                  "rules": [
                      {
                          "t": "change",
                          "p": "payload",
                          "pt": "msg",
                          "from": "Biotonne",
                          "fromt": "str",
                          "to": "true",
                          "tot": "bool"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 720,
                  "y": 520,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "7a382177e7c2a394",
                  "type": "change",
                  "z": "e5528eb5167161cb",
                  "name": "Restmüll",
                  "rules": [
                      {
                          "t": "change",
                          "p": "payload",
                          "pt": "msg",
                          "from": "Restmüll",
                          "fromt": "str",
                          "to": "true",
                          "tot": "bool"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 720,
                  "y": 560,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "c10f72d2e82adfc8",
                  "type": "change",
                  "z": "e5528eb5167161cb",
                  "name": "Papiertonne",
                  "rules": [
                      {
                          "t": "change",
                          "p": "payload",
                          "pt": "msg",
                          "from": "Papiertonne",
                          "fromt": "str",
                          "to": "true",
                          "tot": "bool"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 730,
                  "y": 600,
                  "wires": [
                      []
                  ]
              }
          ]
          
          mickymM 1 Antwort Letzte Antwort
          0
          • Basti17683B Basti17683

            @mickym said in Telegram als Adapter und Nodered:

            Du kommst in 95% der Fälle auch in NodeRed ohne Programmierung aus, wenn Du weißt, was die Nodes Dir alles für Arbeit abnehmen.

            Hallo Micky,
            ich habe die letzten Monate dank deiner Links einiges dazu lernen können. Hast du mir hier nur evtl noch einen Lösungsansatz?
            Die Ausgabe meines Objektes bringt mir diverse Abfalltypen. Jetzt würde ich gern mit einer Switch oder Change Node nach Text filtern?
            Wenn besipielsweise "Restmüll und Biotonne" kommt dann würde ich gerne dass er in dieser einen Message -> 2 Objekte erkennt, und mir jeweils für die/den betroffenen Zustand/Zustände die True Signale ausgibt.

            Anbei meine beiden gedanklichen Ansätze...

            [
                {
                    "id": "e5528eb5167161cb",
                    "type": "tab",
                    "label": "Müll",
                    "disabled": false,
                    "info": "[{\"id\":\"1dcb9f56.0c98f1\",\"type\":\"subflow\",\"name\":\"sendMessage\",\"info\":\"\",\"category\":\"\",\"in\":[{\"x\":160,\"y\":280,\"wires\":[{\"id\":\"7113a90f.78d288\"}]}],\"out\":[{\"x\":1200,\"y\":300,\"wires\":[{\"id\":\"c015a8c4.074c68\",\"port\":0}]}],\"env\":[],\"color\":\"#DDAA99\"},{\"id\":\"c015a8c4.074c68\",\"type\":\"telegram sender\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"bot\":\"\",\"haserroroutput\":false,\"outputs\":1,\"x\":1070,\"y\":300,\"wires\":[[]]},{\"id\":\"7113a90f.78d288\",\"type\":\"switch\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"property\":\"sentMessageId\",\"propertyType\":\"msg\",\"rules\":[{\"t\":\"nnull\"},{\"t\":\"else\"}],\"checkall\":\"true\",\"repair\":false,\"outputs\":2,\"x\":250,\"y\":280,\"wires\":[[\"291984d6.17272c\"],[\"dae111f3.e48ba\"]]},{\"id\":\"dae111f3.e48ba\",\"type\":\"function\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"Nachricht erstellen\",\"func\":\"var content = msg.message;\\n\\nmsg.payload = {};\\nmsg.payload.chatId = msg.chatId;\\nmsg.payload.options = {\\n    parse_mode : \\\"Markdown\\\"\\n};\\nmsg.payload.content = content.toString();\\nmsg.payload.type = 'message';\\n\\nreturn [msg];\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":870,\"y\":300,\"wires\":[[\"c015a8c4.074c68\"]]},{\"id\":\"99589480.be74f8\",\"type\":\"telegram sender\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"\",\"bot\":\"\",\"haserroroutput\":true,\"outputs\":2,\"x\":650,\"y\":260,\"wires\":[[\"dae111f3.e48ba\"],[\"dae111f3.e48ba\"]]},{\"id\":\"291984d6.17272c\",\"type\":\"function\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"L�schobjekt erstellen\",\"func\":\"msg.payload = {};\\nmsg.payload.chatId = msg.chatId;\\nmsg.payload.content = msg.sentMessageId;\\nmsg.payload.type = 'deleteMessage';\\nmsg.payload.options = {\\n    message_id : msg.sentMessageId,\\n    chat_id : msg.payload.chatId\\n};\\n\\nreturn [msg];\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":440,\"y\":260,\"wires\":[[\"99589480.be74f8\"]]},{\"id\":\"6cf432ca.c994fc\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"Nachricht erst l�schen, dann neu erstellen (wird sie nur geupdated, wird der Zeitstempel nicht aktualisiert und identische Nachrichten k�nnen nicht versendet werden)\",\"info\":\"\",\"x\":650,\"y\":40,\"wires\":[]},{\"id\":\"1719c06f.03c4a\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.chatId = ID des Chats, wohin die Nachricht gepostet werden soll\",\"info\":\"\",\"x\":360,\"y\":80,\"wires\":[]},{\"id\":\"7c488ee.709da7\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.sentMessageId = Nachrichten-ID der letzten (zugeh�rigen) Nachricht, die ersetzt werden soll\",\"info\":\"\",\"x\":450,\"y\":120,\"wires\":[]},{\"id\":\"56fd0e66.a48f2\",\"type\":\"comment\",\"z\":\"1dcb9f56.0c98f1\",\"name\":\"msg.message = Text-Nachricht, die gesendet werden soll, Markdown m�glich\",\"info\":\"\",\"x\":390,\"y\":160,\"wires\":[]},{\"id\":\"dca76fb9.f45c6\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 0400 den Entsorgungs-Kalender abfragen\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00 04 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":270,\"y\":460,\"wires\":[[\"eb319001.ff2e9\"]]},{\"id\":\"eb319001.ff2e9\",\"type\":\"ical-upcoming\",\"z\":\"3ba3e58f.887512\",\"confignode\":\"\",\"checkall\":false,\"cron\":\"\",\"timeout\":\"28\",\"timeoutUnits\":\"days\",\"name\":\"\",\"offset\":\"\",\"endpreview\":\"100\",\"preview\":\"14\",\"previewUnits\":\"days\",\"pastview\":\"\",\"pastviewUnits\":\"days\",\"trigger\":\"always\",\"filter\":\"\",\"x\":590,\"y\":460,\"wires\":[[\"630ff9a6.e2e2b8\"]]},{\"id\":\"630ff9a6.e2e2b8\",\"type\":\"function\",\"z\":\"3ba3e58f.887512\",\"name\":\"Termine aktualisieren\",\"func\":\"let map = global.get(\\\"disposalData\\\") || {};\\ndelete map[\\\"today\\\"];\\ndelete map[\\\"tomorrow\\\"];\\n\\nlet upcoming = false;\\nlet disposalDates = msg.payload;\\nfor (var i = 0; i < disposalDates.length; i++) {\\n    let key = disposalDates[i].topic;\\n    let countdown = disposalDates[i].countdown.days + 1;\\n    \\n    map[key] = countdown || 0;\\n\\n    if (countdown == 0) {\\n        if (map[\\\"today\\\"] === undefined) {\\n            map[\\\"today\\\"] = key;\\n        } else {\\n            map[\\\"today\\\"] += \\\" und \\\" + key;\\n        }\\n        upcoming = true;\\n\\n    } else if (countdown == 1) {\\n        if (map[\\\"tomorrow\\\"] === undefined) {\\n            map[\\\"tomorrow\\\"] = key;\\n        } else {\\n            map[\\\"tomorrow\\\"] += \\\" und \\\" + key;\\n        }\\n        upcoming = true;\\n    }\\n}\\n\\nglobal.set(\\\"disposalData\\\", map);\\n\",\"outputs\":1,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"x\":820,\"y\":460,\"wires\":[[]]},{\"id\":\"28e9ceb5.e40b42\",\"type\":\"comment\",\"z\":\"3ba3e58f.887512\",\"name\":\"Abfalltermine\",\"info\":\"\",\"x\":110,\"y\":420,\"wires\":[]},{\"id\":\"2db5bad9.f786b6\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 1600 nachschauen, ob morgen etwas abgeholt wird\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00 16 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":300,\"y\":520,\"wires\":[[\"debd0fe3.ddfc7\"]]},{\"id\":\"c14dd758.d1d338\",\"type\":\"inject\",\"z\":\"3ba3e58f.887512\",\"name\":\"t�glich 0600 erinnern, dass gleich etwas abgeholt wird\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"00016 * * *\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":290,\"y\":560,\"wires\":[[\"7b365890.f35968\"]]},{\"id\":\"debd0fe3.ddfc7\",\"type\":\"function\",\"z\":\"3ba3e58f.887512\",\"name\":\"Nachricht f�r morgige Termine bauen\",\"func\":\"let map = global.get('disposalData') || {};\\n\\nif (map[\\\"tomorrow\\\"] !== undefined) {\\n    msg.message = \\\"",
                    "env": []
                },
                {
                    "id": "5d674b7b47749671",
                    "type": "inject",
                    "z": "e5528eb5167161cb",
                    "name": "Trigger um 18:00 Uhr. ",
                    "props": [
                        {
                            "p": "payload"
                        }
                    ],
                    "repeat": "",
                    "crontab": "00 18 * * *",
                    "once": false,
                    "onceDelay": 0.1,
                    "topic": "",
                    "payload": "true",
                    "payloadType": "bool",
                    "x": 150,
                    "y": 340,
                    "wires": [
                        [
                            "28c8e85eb6b06dca"
                        ]
                    ]
                },
                {
                    "id": "28c8e85eb6b06dca",
                    "type": "ioBroker get",
                    "z": "e5528eb5167161cb",
                    "name": "Verbleibende Tage",
                    "topic": "trashschedule.0.next.daysLeft",
                    "attrname": "inDays",
                    "payloadType": "value",
                    "errOnInvalidState": "nothing",
                    "x": 370,
                    "y": 340,
                    "wires": [
                        [
                            "561a8a6ccce8dffc"
                        ]
                    ]
                },
                {
                    "id": "561a8a6ccce8dffc",
                    "type": "switch",
                    "z": "e5528eb5167161cb",
                    "name": "Vergleich",
                    "property": "inDays",
                    "propertyType": "msg",
                    "rules": [
                        {
                            "t": "eq",
                            "v": "1",
                            "vt": "num"
                        },
                        {
                            "t": "lte",
                            "v": "4",
                            "vt": "num"
                        }
                    ],
                    "checkall": "true",
                    "repair": false,
                    "outputs": 2,
                    "x": 560,
                    "y": 340,
                    "wires": [
                        [
                            "74fac1eb1db6056a"
                        ],
                        [
                            "fd10917f9ec60c1c"
                        ]
                    ]
                },
                {
                    "id": "74fac1eb1db6056a",
                    "type": "ioBroker get",
                    "z": "e5528eb5167161cb",
                    "name": "[object Object]",
                    "topic": "trashschedule.0.next.typesText",
                    "attrname": "payload",
                    "payloadType": "value",
                    "errOnInvalidState": "nothing",
                    "x": 500,
                    "y": 160,
                    "wires": [
                        [
                            "9b7e6ab1a776c8a4"
                        ]
                    ]
                },
                {
                    "id": "9b7e6ab1a776c8a4",
                    "type": "template",
                    "z": "e5528eb5167161cb",
                    "name": "",
                    "field": "payload",
                    "fieldType": "msg",
                    "format": "handlebars",
                    "syntax": "mustache",
                    "template": "Morgen werden folgende Mülleimer geleert: {{payload}} !",
                    "output": "str",
                    "x": 720,
                    "y": 160,
                    "wires": [
                        []
                    ]
                },
                {
                    "id": "fd10917f9ec60c1c",
                    "type": "ioBroker get",
                    "z": "e5528eb5167161cb",
                    "name": "[object Object]",
                    "topic": "trashschedule.0.next.typesText",
                    "attrname": "payload",
                    "payloadType": "value",
                    "errOnInvalidState": "nothing",
                    "x": 520,
                    "y": 460,
                    "wires": [
                        [
                            "63d3fdc7738ac3dc",
                            "cecf9569ab79642a",
                            "7a382177e7c2a394",
                            "c10f72d2e82adfc8"
                        ]
                    ]
                },
                {
                    "id": "63d3fdc7738ac3dc",
                    "type": "switch",
                    "z": "e5528eb5167161cb",
                    "name": "Müllart",
                    "property": "payload",
                    "propertyType": "msg",
                    "rules": [
                        {
                            "t": "cont",
                            "v": "Biotonne",
                            "vt": "str"
                        },
                        {
                            "t": "cont",
                            "v": "Restmüll",
                            "vt": "str"
                        },
                        {
                            "t": "cont",
                            "v": "Papiertonne",
                            "vt": "str"
                        }
                    ],
                    "checkall": "true",
                    "repair": false,
                    "outputs": 3,
                    "x": 770,
                    "y": 440,
                    "wires": [
                        [],
                        [],
                        []
                    ]
                },
                {
                    "id": "cecf9569ab79642a",
                    "type": "change",
                    "z": "e5528eb5167161cb",
                    "name": "Biotonne",
                    "rules": [
                        {
                            "t": "change",
                            "p": "payload",
                            "pt": "msg",
                            "from": "Biotonne",
                            "fromt": "str",
                            "to": "true",
                            "tot": "bool"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 720,
                    "y": 520,
                    "wires": [
                        []
                    ]
                },
                {
                    "id": "7a382177e7c2a394",
                    "type": "change",
                    "z": "e5528eb5167161cb",
                    "name": "Restmüll",
                    "rules": [
                        {
                            "t": "change",
                            "p": "payload",
                            "pt": "msg",
                            "from": "Restmüll",
                            "fromt": "str",
                            "to": "true",
                            "tot": "bool"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 720,
                    "y": 560,
                    "wires": [
                        []
                    ]
                },
                {
                    "id": "c10f72d2e82adfc8",
                    "type": "change",
                    "z": "e5528eb5167161cb",
                    "name": "Papiertonne",
                    "rules": [
                        {
                            "t": "change",
                            "p": "payload",
                            "pt": "msg",
                            "from": "Papiertonne",
                            "fromt": "str",
                            "to": "true",
                            "tot": "bool"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 730,
                    "y": 600,
                    "wires": [
                        []
                    ]
                }
            ]
            
            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #22

            Warum nach Text filtern - Du kannst in NodeRed direkt die Objekte analysieren. Allerdings musst Du wenn iobroker-get Nodes verwendest und ein JSON in Deinem Datenpunkt ein Objekt ist - diese erst mit einer JSON Node in ein Objekt verwandeln. So hilft mir Dein Flow deshalb nichts. Du musst dann mal so ein Objekt aus dem Debugfenster kopieren und hier in CodeTags einstellen, dann kann ich das mit einer Inject Node simulieren.

            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.

            Basti17683B 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              Warum nach Text filtern - Du kannst in NodeRed direkt die Objekte analysieren. Allerdings musst Du wenn iobroker-get Nodes verwendest und ein JSON in Deinem Datenpunkt ein Objekt ist - diese erst mit einer JSON Node in ein Objekt verwandeln. So hilft mir Dein Flow deshalb nichts. Du musst dann mal so ein Objekt aus dem Debugfenster kopieren und hier in CodeTags einstellen, dann kann ich das mit einer Inject Node simulieren.

              Basti17683B Offline
              Basti17683B Offline
              Basti17683
              schrieb am zuletzt editiert von
              #23

              @mickym said in Telegram als Adapter und Nodered:

              Warum nach Text filtern - Du kannst in NodeRed direkt die Objekte analysieren. Allerdings musst Du wenn iobroker-get Nodes verwendest und ein JSON in Deinem Datenpunkt ein Objekt ist - diese erst mit einer JSON Node in ein Objekt verwandeln. So hilft mir Dein Flow deshalb nichts. Du musst dann mal so ein Objekt aus dem Debugfenster kopieren und hier in CodeTags einstellen, dann kann ich das mit einer Inject Node simulieren.

              Oh sorry das wusste ich nicht.
              Ich hab einmal ein Screenshot vom Flow (was als Wert kommt), dann einen Screenshot von den Objekten im IObroker (welche mir ebe nals Text gesendet werden) und noch den Code aus dem Debug Fenster

              1d6390da-2403-488c-900e-03dfd49fbe30-grafik.png

              36d0e92a-5f4e-42f8-8ae4-08c50d91e907-grafik.png

              Papiertonne und Biotonne
              

              Eben weil ich die die verschiedenen Arten nicht als Bool Infos bekomme sondern nur als Text, wollte ich die quasi zurückwandeln

              mickymM 1 Antwort Letzte Antwort
              0
              • Basti17683B Basti17683

                @mickym said in Telegram als Adapter und Nodered:

                Warum nach Text filtern - Du kannst in NodeRed direkt die Objekte analysieren. Allerdings musst Du wenn iobroker-get Nodes verwendest und ein JSON in Deinem Datenpunkt ein Objekt ist - diese erst mit einer JSON Node in ein Objekt verwandeln. So hilft mir Dein Flow deshalb nichts. Du musst dann mal so ein Objekt aus dem Debugfenster kopieren und hier in CodeTags einstellen, dann kann ich das mit einer Inject Node simulieren.

                Oh sorry das wusste ich nicht.
                Ich hab einmal ein Screenshot vom Flow (was als Wert kommt), dann einen Screenshot von den Objekten im IObroker (welche mir ebe nals Text gesendet werden) und noch den Code aus dem Debug Fenster

                1d6390da-2403-488c-900e-03dfd49fbe30-grafik.png

                36d0e92a-5f4e-42f8-8ae4-08c50d91e907-grafik.png

                Papiertonne und Biotonne
                

                Eben weil ich die die verschiedenen Arten nicht als Bool Infos bekomme sondern nur als Text, wollte ich die quasi zurückwandeln

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #24

                @basti17683 Ja dann passt das doch - Du musst halt Dein true an die Switch Ausgänge hängen.

                5761c9e5-1cab-4d25-b16c-d8d5085d5f9f-image.png

                Aber Du suchst nicht sondern setzt true in den Change Nodes -

                20320288-5381-4c5c-ab61-3b1198a9b490-image.png

                Die Unterscheidung ob in dem Text Biotonne oder so was ist macht ja die Switch Node - Du kannst also direkt das true in 3 unterschiedliche Datenpunkte schicken - entweder über 3 iobroker-out Nodes oder 1 iobroker-Out NOdes und 3 verschiedene topics

                Oder willst Du ein Objekt daraus machen? Dann kannst Du es direkt über JSONATA machen.

                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.

                Basti17683B 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @basti17683 Ja dann passt das doch - Du musst halt Dein true an die Switch Ausgänge hängen.

                  5761c9e5-1cab-4d25-b16c-d8d5085d5f9f-image.png

                  Aber Du suchst nicht sondern setzt true in den Change Nodes -

                  20320288-5381-4c5c-ab61-3b1198a9b490-image.png

                  Die Unterscheidung ob in dem Text Biotonne oder so was ist macht ja die Switch Node - Du kannst also direkt das true in 3 unterschiedliche Datenpunkte schicken - entweder über 3 iobroker-out Nodes oder 1 iobroker-Out NOdes und 3 verschiedene topics

                  Oder willst Du ein Objekt daraus machen? Dann kannst Du es direkt über JSONATA machen.

                  Basti17683B Offline
                  Basti17683B Offline
                  Basti17683
                  schrieb am zuletzt editiert von
                  #25

                  @mickym said in Telegram als Adapter und Nodered:

                  @basti17683 Ja dann passt das doch - Du musst halt Dein true an die Switch Ausgänge hängen.

                  5761c9e5-1cab-4d25-b16c-d8d5085d5f9f-image.png

                  Aber Du suchst nicht sondern setzt true in den Change Nodes -

                  20320288-5381-4c5c-ab61-3b1198a9b490-image.png

                  Die Unterscheidung ob in dem Text Biotonne oder so was ist macht ja die Switch Node - Du kannst also direkt das true in 3 unterschiedliche Datenpunkte schicken - entweder über 3 iobroker-out Nodes oder 1 iobroker-Out NOdes und 3 verschiedene topics

                  Oder willst Du ein Objekt daraus machen? Dann kannst Du es direkt über JSONATA machen.

                  Verdammt, ich war so nah dran. Nein Objekt brauch ich keines draus machen. Ausser es würde so einfacher gehen und ich lern was draus. Auf den Gedanken die Hintereinander zu schalten bin ich nicht gekommen.
                  Und statt "Ändern" -> "Setzen" hab ic hauch verstanden.
                  Was wäre das Forum nur ohne dich... Herzlichen Dank!!!!

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • Basti17683B Basti17683

                    @mickym said in Telegram als Adapter und Nodered:

                    @basti17683 Ja dann passt das doch - Du musst halt Dein true an die Switch Ausgänge hängen.

                    5761c9e5-1cab-4d25-b16c-d8d5085d5f9f-image.png

                    Aber Du suchst nicht sondern setzt true in den Change Nodes -

                    20320288-5381-4c5c-ab61-3b1198a9b490-image.png

                    Die Unterscheidung ob in dem Text Biotonne oder so was ist macht ja die Switch Node - Du kannst also direkt das true in 3 unterschiedliche Datenpunkte schicken - entweder über 3 iobroker-out Nodes oder 1 iobroker-Out NOdes und 3 verschiedene topics

                    Oder willst Du ein Objekt daraus machen? Dann kannst Du es direkt über JSONATA machen.

                    Verdammt, ich war so nah dran. Nein Objekt brauch ich keines draus machen. Ausser es würde so einfacher gehen und ich lern was draus. Auf den Gedanken die Hintereinander zu schalten bin ich nicht gekommen.
                    Und statt "Ändern" -> "Setzen" hab ic hauch verstanden.
                    Was wäre das Forum nur ohne dich... Herzlichen Dank!!!!

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #26

                    @basti17683 So würde es über JSONATA gehen, um ein Objekt zu generieren:

                    97099fcf-ddea-4fee-98ae-da4183e71378-image.png

                    [
                       {
                           "id": "862558670840ac6a",
                           "type": "change",
                           "z": "e5528eb5167161cb",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "\t{\t   \"Biotonne\":$contains(payload, \"Biotonne\") ? true : false,\t   \"Restmüll\":$contains(payload, \"Restmüll\") ? true : false,\t   \"Papiertonne\":$contains(payload, \"Papiertonne\") ? true : false\t}",
                                   "tot": "jsonata"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 750,
                           "y": 520,
                           "wires": [
                               [
                                   "899786872f0dd20f"
                               ]
                           ]
                       },
                       {
                           "id": "9958b0693cba169e",
                           "type": "inject",
                           "z": "e5528eb5167161cb",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "Papiertonne, Restmüll",
                           "payloadType": "str",
                           "x": 460,
                           "y": 540,
                           "wires": [
                               [
                                   "862558670840ac6a"
                               ]
                           ]
                       },
                       {
                           "id": "899786872f0dd20f",
                           "type": "debug",
                           "z": "e5528eb5167161cb",
                           "name": "Objekt",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 970,
                           "y": 520,
                           "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.

                    Basti17683B 2 Antworten Letzte Antwort
                    1
                    • mickymM mickym

                      @basti17683 So würde es über JSONATA gehen, um ein Objekt zu generieren:

                      97099fcf-ddea-4fee-98ae-da4183e71378-image.png

                      [
                         {
                             "id": "862558670840ac6a",
                             "type": "change",
                             "z": "e5528eb5167161cb",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "\t{\t   \"Biotonne\":$contains(payload, \"Biotonne\") ? true : false,\t   \"Restmüll\":$contains(payload, \"Restmüll\") ? true : false,\t   \"Papiertonne\":$contains(payload, \"Papiertonne\") ? true : false\t}",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 750,
                             "y": 520,
                             "wires": [
                                 [
                                     "899786872f0dd20f"
                                 ]
                             ]
                         },
                         {
                             "id": "9958b0693cba169e",
                             "type": "inject",
                             "z": "e5528eb5167161cb",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "Papiertonne, Restmüll",
                             "payloadType": "str",
                             "x": 460,
                             "y": 540,
                             "wires": [
                                 [
                                     "862558670840ac6a"
                                 ]
                             ]
                         },
                         {
                             "id": "899786872f0dd20f",
                             "type": "debug",
                             "z": "e5528eb5167161cb",
                             "name": "Objekt",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 970,
                             "y": 520,
                             "wires": []
                         }
                      ]
                      

                      Basti17683B Offline
                      Basti17683B Offline
                      Basti17683
                      schrieb am zuletzt editiert von
                      #27

                      @mickym said in Telegram als Adapter und Nodered:

                      @basti17683 So würde es über JSONATA gehen, um ein Objekt zu generieren:

                      97099fcf-ddea-4fee-98ae-da4183e71378-image.png

                      [
                         {
                             "id": "862558670840ac6a",
                             "type": "change",
                             "z": "e5528eb5167161cb",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "\t{\t   \"Biotonne\":$contains(payload, \"Biotonne\") ? true : false,\t   \"Restmüll\":$contains(payload, \"Restmüll\") ? true : false,\t   \"Papiertonne\":$contains(payload, \"Papiertonne\") ? true : false\t}",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 750,
                             "y": 520,
                             "wires": [
                                 [
                                     "899786872f0dd20f"
                                 ]
                             ]
                         },
                         {
                             "id": "9958b0693cba169e",
                             "type": "inject",
                             "z": "e5528eb5167161cb",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "Papiertonne, Restmüll",
                             "payloadType": "str",
                             "x": 460,
                             "y": 540,
                             "wires": [
                                 [
                                     "862558670840ac6a"
                                 ]
                             ]
                         },
                         {
                             "id": "899786872f0dd20f",
                             "type": "debug",
                             "z": "e5528eb5167161cb",
                             "name": "Objekt",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 970,
                             "y": 520,
                             "wires": []
                         }
                      ]
                      

                      Den importiere ich mir mal um das besser nachvollziehen zu können.

                      Für alle die evtl mal auf mein Thema kommen habe ich noch eine nachträgliche Info. Die True oder "1" wird jetzt nach erfolgreicher Abfrage geschrieben. Aber die LEDs bzw Stati gingen nie wieder auf False "0". Daher habe ich beim automatischen Trigger einen Switch für einen Reset eingebaut welcher mir bei jedem Polling die LEDs erstmal ausmacht und mit einer Verzögerung von 2 Sekunden wieder an, falls es was gibt was angeschalten werden soll.

                      01f09351-c24e-4c04-85aa-85b3ed06f5bf-image.png

                      1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @basti17683 So würde es über JSONATA gehen, um ein Objekt zu generieren:

                        97099fcf-ddea-4fee-98ae-da4183e71378-image.png

                        [
                           {
                               "id": "862558670840ac6a",
                               "type": "change",
                               "z": "e5528eb5167161cb",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "\t{\t   \"Biotonne\":$contains(payload, \"Biotonne\") ? true : false,\t   \"Restmüll\":$contains(payload, \"Restmüll\") ? true : false,\t   \"Papiertonne\":$contains(payload, \"Papiertonne\") ? true : false\t}",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 750,
                               "y": 520,
                               "wires": [
                                   [
                                       "899786872f0dd20f"
                                   ]
                               ]
                           },
                           {
                               "id": "9958b0693cba169e",
                               "type": "inject",
                               "z": "e5528eb5167161cb",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "Papiertonne, Restmüll",
                               "payloadType": "str",
                               "x": 460,
                               "y": 540,
                               "wires": [
                                   [
                                       "862558670840ac6a"
                                   ]
                               ]
                           },
                           {
                               "id": "899786872f0dd20f",
                               "type": "debug",
                               "z": "e5528eb5167161cb",
                               "name": "Objekt",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 970,
                               "y": 520,
                               "wires": []
                           }
                        ]
                        

                        Basti17683B Offline
                        Basti17683B Offline
                        Basti17683
                        schrieb am zuletzt editiert von Basti17683
                        #28

                        @mickym
                        Ein Jahr später stehe ich wieder hier und lese mir meinen Thread durch :)
                        Da ich den Telegram Adapter in Verbindung mit anderen Adaptern verwenden muss, baue ich die Telegram-Node auf die Funktion des Teelgram Adapter um.
                        Alles an Text zum Senden funktioniert. Wie man ein Bild sendet werde ich nicht ganz schlau draus...
                        Lieber Micky, kannst du mir hier vielleicht auf die Sprünge helfen? Du sagtest damals dass man so ziemlich alles im Node Red machen kann. Ich habe unzählige Dinge gefunden das Bild mit einem Blockly senden zu können. Aber das muss doch eigentlich hier genauso funktionieren oder?

                        4358f58a-676b-4305-a826-15a3f9e75f12-grafik.png

                        933914e9-f2bf-48be-9456-e9fd6327ad6d-grafik.png

                        f5bc2b9e-5b77-4d7c-8f75-a23d85e5476c-grafik.png

                        So sieht der Subflow für mein Bild mit der alten Telegram-Node aus. 70a4af5c-6e64-42ff-8f4a-4c0ad9f8848d-grafik.png Jetzt muss hier ja statt dem "Telegram Sender" auch ein Telegram Sender mit IOB Out.
                        Nur ich begreife nicht so recht mit was ich den füttern soll. Bild wird gemacht -> Bild wird geschrieben und abgelegt -> und jetzt bräuchte ich die Funktion das Bild per Telegram zu senden.
                        In der Adapterbeschreibung wird hier auf NodeRed gar nicht eingegangen. Da heißt es nur 434c9a12-11a4-4cb1-946a-522431f479dd-grafik.png
                        https://www.iobroker.net/#en/adapters/adapterref/iobroker.telegram/README.md

                        Kannst du (oder jemand anderes) dazu etwas sagen und hast sowas schon im Einsatz?

                        Liebe Grüße Basti

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • Basti17683B Basti17683

                          @mickym
                          Ein Jahr später stehe ich wieder hier und lese mir meinen Thread durch :)
                          Da ich den Telegram Adapter in Verbindung mit anderen Adaptern verwenden muss, baue ich die Telegram-Node auf die Funktion des Teelgram Adapter um.
                          Alles an Text zum Senden funktioniert. Wie man ein Bild sendet werde ich nicht ganz schlau draus...
                          Lieber Micky, kannst du mir hier vielleicht auf die Sprünge helfen? Du sagtest damals dass man so ziemlich alles im Node Red machen kann. Ich habe unzählige Dinge gefunden das Bild mit einem Blockly senden zu können. Aber das muss doch eigentlich hier genauso funktionieren oder?

                          4358f58a-676b-4305-a826-15a3f9e75f12-grafik.png

                          933914e9-f2bf-48be-9456-e9fd6327ad6d-grafik.png

                          f5bc2b9e-5b77-4d7c-8f75-a23d85e5476c-grafik.png

                          So sieht der Subflow für mein Bild mit der alten Telegram-Node aus. 70a4af5c-6e64-42ff-8f4a-4c0ad9f8848d-grafik.png Jetzt muss hier ja statt dem "Telegram Sender" auch ein Telegram Sender mit IOB Out.
                          Nur ich begreife nicht so recht mit was ich den füttern soll. Bild wird gemacht -> Bild wird geschrieben und abgelegt -> und jetzt bräuchte ich die Funktion das Bild per Telegram zu senden.
                          In der Adapterbeschreibung wird hier auf NodeRed gar nicht eingegangen. Da heißt es nur 434c9a12-11a4-4cb1-946a-522431f479dd-grafik.png
                          https://www.iobroker.net/#en/adapters/adapterref/iobroker.telegram/README.md

                          Kannst du (oder jemand anderes) dazu etwas sagen und hast sowas schon im Einsatz?

                          Liebe Grüße Basti

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #29

                          @basti17683 Eigentlich müsste es gehen indem Du die neue sendTo Node nimmst und einfach den Pfad zur Datei einträgst.

                          Also in die payload den Pfad der Datei und in der Instanz telegram.0 oder vielleicht auch nur telegram. Ich nutze den Adapter nicht.

                          f691b986-1f18-48d1-957f-39be23edb739-image.png

                          In der Adapterbeschreibung steht es zumindest so:

                          55c96cce-2927-4e54-8879-62e1df64eb08-image.png

                          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.

                          Basti17683B 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @basti17683 Eigentlich müsste es gehen indem Du die neue sendTo Node nimmst und einfach den Pfad zur Datei einträgst.

                            Also in die payload den Pfad der Datei und in der Instanz telegram.0 oder vielleicht auch nur telegram. Ich nutze den Adapter nicht.

                            f691b986-1f18-48d1-957f-39be23edb739-image.png

                            In der Adapterbeschreibung steht es zumindest so:

                            55c96cce-2927-4e54-8879-62e1df64eb08-image.png

                            Basti17683B Offline
                            Basti17683B Offline
                            Basti17683
                            schrieb am zuletzt editiert von
                            #30

                            @mickym
                            Danke für deine schnelle Antwort. So funktioniert es scheinbar nicht. Die Debug Node spuckt hierzu auch nichts aus.
                            Ich kann bei der Sendto Node zwar eine Instanz reinschreiben, aber er spricht sie nicht an.

                            Bei der regulären IOB out Node kann ich diverse Funktionen in Sachen Kommunikation auswählen...

                            fe4dc412-70a2-4979-87c7-fc5ac588bdf7-grafik.png
                            2cf3545f-8a37-4888-b0de-a20525da09da-grafik.png

                            Vielleicht fällt wem anders noch was dazu ein... Danke dir - wieder mal :)

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • Basti17683B Basti17683

                              @mickym
                              Danke für deine schnelle Antwort. So funktioniert es scheinbar nicht. Die Debug Node spuckt hierzu auch nichts aus.
                              Ich kann bei der Sendto Node zwar eine Instanz reinschreiben, aber er spricht sie nicht an.

                              Bei der regulären IOB out Node kann ich diverse Funktionen in Sachen Kommunikation auswählen...

                              fe4dc412-70a2-4979-87c7-fc5ac588bdf7-grafik.png
                              2cf3545f-8a37-4888-b0de-a20525da09da-grafik.png

                              Vielleicht fällt wem anders noch was dazu ein... Danke dir - wieder mal :)

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #31

                              @basti17683 Nein ich würde schon die sendTo Funktion nutzen. Hast Du mal mit und ohne Instanznummer versucht?

                              ff60b1b5-b3fc-4744-86ed-35c55ffd101b-image.png

                              oder telegram.0

                              Dann sende den Dateipfad als Text:

                              a4db5bff-6c1d-4107-ad6f-c1bde76263ed-image.png

                              [
                                 {
                                     "id": "3a4a138c2487335a",
                                     "type": "ioBroker sendTo",
                                     "z": "7e6af0015415146d",
                                     "instance": "telegram",
                                     "command": "",
                                     "timeout": 1000,
                                     "x": 820,
                                     "y": 7380,
                                     "wires": [
                                         []
                                     ]
                                 },
                                 {
                                     "id": "cd4e463fd5626648",
                                     "type": "inject",
                                     "z": "7e6af0015415146d",
                                     "name": "/home/iobroker/datei.jpg",
                                     "props": [
                                         {
                                             "p": "payload"
                                         }
                                     ],
                                     "repeat": "",
                                     "crontab": "",
                                     "once": false,
                                     "onceDelay": 0.1,
                                     "topic": "",
                                     "payload": "{\"text\":\"/home/iobroker/datei.jpg\"}",
                                     "payloadType": "json",
                                     "x": 540,
                                     "y": 7380,
                                     "wires": [
                                         [
                                             "3a4a138c2487335a"
                                         ]
                                     ]
                                 }
                              ]
                              

                              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.

                              Basti17683B 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @basti17683 Nein ich würde schon die sendTo Funktion nutzen. Hast Du mal mit und ohne Instanznummer versucht?

                                ff60b1b5-b3fc-4744-86ed-35c55ffd101b-image.png

                                oder telegram.0

                                Dann sende den Dateipfad als Text:

                                a4db5bff-6c1d-4107-ad6f-c1bde76263ed-image.png

                                [
                                   {
                                       "id": "3a4a138c2487335a",
                                       "type": "ioBroker sendTo",
                                       "z": "7e6af0015415146d",
                                       "instance": "telegram",
                                       "command": "",
                                       "timeout": 1000,
                                       "x": 820,
                                       "y": 7380,
                                       "wires": [
                                           []
                                       ]
                                   },
                                   {
                                       "id": "cd4e463fd5626648",
                                       "type": "inject",
                                       "z": "7e6af0015415146d",
                                       "name": "/home/iobroker/datei.jpg",
                                       "props": [
                                           {
                                               "p": "payload"
                                           }
                                       ],
                                       "repeat": "",
                                       "crontab": "",
                                       "once": false,
                                       "onceDelay": 0.1,
                                       "topic": "",
                                       "payload": "{\"text\":\"/home/iobroker/datei.jpg\"}",
                                       "payloadType": "json",
                                       "x": 540,
                                       "y": 7380,
                                       "wires": [
                                           [
                                               "3a4a138c2487335a"
                                           ]
                                       ]
                                   }
                                ]
                                

                                Basti17683B Offline
                                Basti17683B Offline
                                Basti17683
                                schrieb am zuletzt editiert von
                                #32

                                @mickym
                                Ohne Instanznummer im Anhang funktioniert das senden.
                                Als Text schickt er es an den Bot. Nur als JSON kann ich es so schreiben dass er auch an eine Gruppe sendet.
                                Leider kommt da aber nur der Link und kein Bild.
                                c519217d-4b35-40df-9dfe-9a3fd1fb7d6c-grafik.png

                                Meinst du es hat was mit der API zu tun? IM Telegram Adapter gibt man ja die API an.
                                f3f8f54e-b8f6-46d8-812b-3a4dcba0688b-grafik.png
                                Dort steht unter anderem: https://core.telegram.org/bots/api#sendphoto

                                Ich tu mir immer schwer mit dem füttern der Nodes. Ich weiß jetzt was in der API steht. Muss das dann in eine Change Node als JSON oder Text oder ganz was anderes. Bei mir ist das mehr ein Try&Error :-/

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • Basti17683B Basti17683

                                  @mickym
                                  Ohne Instanznummer im Anhang funktioniert das senden.
                                  Als Text schickt er es an den Bot. Nur als JSON kann ich es so schreiben dass er auch an eine Gruppe sendet.
                                  Leider kommt da aber nur der Link und kein Bild.
                                  c519217d-4b35-40df-9dfe-9a3fd1fb7d6c-grafik.png

                                  Meinst du es hat was mit der API zu tun? IM Telegram Adapter gibt man ja die API an.
                                  f3f8f54e-b8f6-46d8-812b-3a4dcba0688b-grafik.png
                                  Dort steht unter anderem: https://core.telegram.org/bots/api#sendphoto

                                  Ich tu mir immer schwer mit dem füttern der Nodes. Ich weiß jetzt was in der API steht. Muss das dann in eine Change Node als JSON oder Text oder ganz was anderes. Bei mir ist das mehr ein Try&Error :-/

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #33

                                  @basti17683 Das kann ich Dir leider nicht sagen, da ich den Adapter nicht kenne. Ich denke, da muss jemand helfen, der den Adapter richtig kennt.

                                  Die neue send Node - sendet (wenn Du in command nichts einträgst) einfach mit send Dein Objekt. Mit welchen Eigenschaften Dein Objekt bestückt sein muss, dass musst Du in dem Adapter lesen.
                                  https://github.com/iobroker-community-adapters/ioBroker.telegram/blob/master/docs/en/README.md

                                  5db39a9c-bd1c-4f7b-b9a3-1758a288177f-image.png

                                  Vielleicht musst in der payload als Objekt noch die caption eintragen oder irgendwie die methoden mitgeben. Generell musst Du die parameter als JSON Objekt in der payload mitgeben. Wie Du die Methoden nutzt, die in der API als JSON nutzt ist mir auch nicht klar. Aber wenn Du das weißt, dann sollte es ja kein Problem sein, dass Objekt als payload zu definieren.

                                  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 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

                                  778

                                  Online

                                  32.4k

                                  Benutzer

                                  81.6k

                                  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