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. JavaScript
  5. Nello Telegram

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.2k

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

Nello Telegram

Geplant Angeheftet Gesperrt Verschoben JavaScript
33 Beiträge 4 Kommentatoren 1.6k Aufrufe 2 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.
  • CKMartensC CKMartens

    @Jan1 sagte in Nello Telegram:

    @CKMartens
    Gibt es eine Änderung des DP beim Klingeln? Wenn ja würde das schon als Trigger für Telegram ausreichen.

    Klar... Wenn über den iot Adapter ein Service wie in der Anleitung steht eingerichtet ist, wird beim klingeln unter iot.x.service.servicename der Datenpunkt aktualisiert. In dem wird als Json String die Rückgabe von Nello gespeichert (geklingelt und nicht geöffnet , geöffnet, über Geo geöffnet usw.).
    Diesen Datenpunkte liest dann der Nello-Adapter aus und speichert ihn unter events. Da kannst du dann den Json-String auswerten. Schau dir die Beispiele auf der Github Seite an, da nimmt Zefau das um die Echo Ansage zu machen.

    J Offline
    J Offline
    Jan1
    schrieb am zuletzt editiert von
    #16

    @CKMartens
    Den DP gibt es aber bei @Marek im Screenshot nicht, somit hat er auch die Vorbereitung dazu noch nicht gemacht.
    Wenn das allerdings erledigt ist, stehen die Events im Klartext drin oder ist das noch ein JASON String? Wobei das für ein Telegramm Nachricht schon reichen würde, wenn man das auf "wurde geändert" prüft.

    Da muss @Marek wohl noch ein wenig lesen, oder es ist einer so nett der das auch zu Hause hat (@CKMartens) und baut im das mal schnell zusammen :blush:

    1 Antwort Letzte Antwort
    0
    • M Marek

      Hallo Leute :)
      Danke im vorraus für eure Hilfe!

      Ich wollte fragen ob es möglich ist, über Telegram Benachrichtigungen zu erhalten wenn es zuhause geklingelt hat. Das Problem ist das man in der Wohnung die Türklingel oftmals nicht hört und die Benachrichtigungen der Nello app nicht zuverlässig sind. Würde ich gerne eine Telegram Nachricht bekommen wenn es klingelt bzw. wissen wer geklingelt hat.

      Ist das möglich mittels JavaScript oder Blockly?

      Ich freue mich über jede Hilfe.

      Vielen Dank und schöne Grüße

      Marek

      CKMartensC Offline
      CKMartensC Offline
      CKMartens
      schrieb am zuletzt editiert von
      #17

      @Marek

      Mal ein kurzer Quick Guide:
      Nello Adapter installieren und einen Tocken eintragen oder wenn Du noch keinen generiert hast unter https://auth.nello.io/admin einen erstellen und eintragen
      20190927_002.png

      Dann im iot-Adapter den Service eintragen...
      20190927_001.png
      ...und im Nello-Adaper fertig einstellen
      20190927_003.png

      Wenn alles richtig ist werden die Datenpunkte unter anderem beim Klingeln geändert:
      20190927_004.png
      20190927_005.png

      In dem feed-Datenpunkt unter nello.0.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx.events.feed steht dann als Json-String alle letzten Ereignisse drinnen:

      [{"action":"swipe","data":{"location_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx","name":"Carsten Martens","user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx","timestamp":1560788361}},
      [...]
      

      Unter iot.0.services.custom_nello (also dem eingerichteten Service) steht dann immer das letzte Event als Json

      {"action": "deny", "data": {"location_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx"}}
      

      Diese kannst du mit einem Script parsen und auswerten. Schau Dir dazu Zafus Beispiel an.

      Ich hoffe das es etwas geholfen hat.

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Marek
        schrieb am zuletzt editiert von
        #18

        Okay, das Grundprinzip habe ich verstanden. Ich muss jetzt ein Script erstellen, welches mit dann diese Benachrichtigungen erstellt.
        Mache ich das in Scripts? Kann mir da einer einen kurzen Denkanstoß geben. Bitte :)

        J 1 Antwort Letzte Antwort
        0
        • M Marek

          Okay, das Grundprinzip habe ich verstanden. Ich muss jetzt ein Script erstellen, welches mit dann diese Benachrichtigungen erstellt.
          Mache ich das in Scripts? Kann mir da einer einen kurzen Denkanstoß geben. Bitte :)

          J Offline
          J Offline
          Jan1
          schrieb am zuletzt editiert von
          #19

          @Marek
          Nein musst Du nicht,es reicht erst mal wenn Du das oben machst und dann in Deinem Adapter ein DP hast der zappelt wenn es klingelt.

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Marek
            schrieb am zuletzt editiert von
            #20

            also den Datenpunkt habe ich ja jetzt. Bin nämlich nach der Anleitung oben vorgegangen. Das klappt auch. Nur wie mache ich das jetzt mit dem Script.

            J 1 Antwort Letzte Antwort
            0
            • M Marek

              also den Datenpunkt habe ich ja jetzt. Bin nämlich nach der Anleitung oben vorgegangen. Das klappt auch. Nur wie mache ich das jetzt mit dem Script.

              J Offline
              J Offline
              Jan1
              schrieb am zuletzt editiert von
              #21

              @Marek
              Du hast jetzt ein DP der sich ändert wenn es klingelt?
              Wie der sich ändert spielt dabei keine Rolle.

              1 Antwort Letzte Antwort
              0
              • ZefauZ Offline
                ZefauZ Offline
                Zefau
                schrieb am zuletzt editiert von
                #22

                Siehe https://github.com/Zefau/ioBroker.nello#let-telegram-inform-you-about-door-ring

                Meine Adapter: https://zefau.github.io/iobroker/

                1 Antwort Letzte Antwort
                1
                • M Offline
                  M Offline
                  Marek
                  schrieb am zuletzt editiert von
                  #23

                  Hallo zusammen,

                  Wow eine so große Resonanz hatte ich nicht erwartet, danke an alle die sich die Zeit nehmen mir zu helfen!

                  Ja es stimmt, anfangs hatte ich den Datenpunkt custom_nello nicht aber ich hab es jetzt hinbekommen. Auch ändern sich die Aktionen deny usw.

                  Danke an Zefau für das Hinzufügen des Scripts!

                  Nun wenn ich es richtig verstanden habe:

                  
                  /**
                   * Send something with Telegram
                   * 
                   * @param       {string}        content         Content to send via Telegram
                   * @param       {string}  		[user='']		User to send the content to
                   * @return      void
                   * 
                   */
                  function msg(content, user = '')
                  {
                      const CONFIG = {
                          text: content,
                          parse_mode: 'HTML',
                          reply_markup: {
                              keyboard: ACTIONS,
                              resize_keyboard: true,
                              one_time_keyboard: false
                          }
                      };
                      
                      sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                  }
                  
                  

                  Erstelle ich ein Java Script im common Ordner.

                  Und dann schreibe ich das drunter

                  
                  var L = {
                     'actionRingUnknown': 'Es hat geklingelt',
                     'actionOpenName': '%name% hat die Tür geöffnet',
                     'actionOpenGeo': '%name% hat das Haus betreten',
                     'actionOpen': 'Die Haustür wurde geöffnet'
                  };
                  
                  on({id: 'nello.0.ID.events.feed', change: 'any'}, function(obj)
                  {
                     var events = JSON.parse(obj.state.val);
                     if (events.length === 0) return;
                  
                     var event = events[events.length-1];
                     if (event.action == 'deny')
                        msg(L.actionRingUnknown);
                  
                     else if (event.action == 'swipe')
                        msg(L.actionOpenName.replace(/%name%/gi, event.data.name));
                  
                     else if (event.action == 'geo')
                        msg(L.actionOpenGeo.replace(/%name%/gi, event.data.name));
                  
                     else
                        msg(L.actionOpen);
                  });
                  
                  

                  Und dann bei nello.0.ID schreib ich die Nello id rein.

                  Ich bin da noch wirklich Neuling und fange gerade erst an zu lernen mit dem Scripte erstellen. Ich muss erstmal nur das Grundprinzip verstehen.

                  Ziel ist es das ich eine Telegram Nachricht bekomme wenn es geklingelt hat und wenn die Tür geöffnet wurde und wer die Tür geöffnet hat usw.

                  Kann mir da einer ne kleine Step by step Anleitung für komplette idioten geben.

                  Ich danke nochmal allen Hilfsbereiten. :v:

                  ZefauZ 1 Antwort Letzte Antwort
                  0
                  • M Marek

                    Hallo zusammen,

                    Wow eine so große Resonanz hatte ich nicht erwartet, danke an alle die sich die Zeit nehmen mir zu helfen!

                    Ja es stimmt, anfangs hatte ich den Datenpunkt custom_nello nicht aber ich hab es jetzt hinbekommen. Auch ändern sich die Aktionen deny usw.

                    Danke an Zefau für das Hinzufügen des Scripts!

                    Nun wenn ich es richtig verstanden habe:

                    
                    /**
                     * Send something with Telegram
                     * 
                     * @param       {string}        content         Content to send via Telegram
                     * @param       {string}  		[user='']		User to send the content to
                     * @return      void
                     * 
                     */
                    function msg(content, user = '')
                    {
                        const CONFIG = {
                            text: content,
                            parse_mode: 'HTML',
                            reply_markup: {
                                keyboard: ACTIONS,
                                resize_keyboard: true,
                                one_time_keyboard: false
                            }
                        };
                        
                        sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                    }
                    
                    

                    Erstelle ich ein Java Script im common Ordner.

                    Und dann schreibe ich das drunter

                    
                    var L = {
                       'actionRingUnknown': 'Es hat geklingelt',
                       'actionOpenName': '%name% hat die Tür geöffnet',
                       'actionOpenGeo': '%name% hat das Haus betreten',
                       'actionOpen': 'Die Haustür wurde geöffnet'
                    };
                    
                    on({id: 'nello.0.ID.events.feed', change: 'any'}, function(obj)
                    {
                       var events = JSON.parse(obj.state.val);
                       if (events.length === 0) return;
                    
                       var event = events[events.length-1];
                       if (event.action == 'deny')
                          msg(L.actionRingUnknown);
                    
                       else if (event.action == 'swipe')
                          msg(L.actionOpenName.replace(/%name%/gi, event.data.name));
                    
                       else if (event.action == 'geo')
                          msg(L.actionOpenGeo.replace(/%name%/gi, event.data.name));
                    
                       else
                          msg(L.actionOpen);
                    });
                    
                    

                    Und dann bei nello.0.ID schreib ich die Nello id rein.

                    Ich bin da noch wirklich Neuling und fange gerade erst an zu lernen mit dem Scripte erstellen. Ich muss erstmal nur das Grundprinzip verstehen.

                    Ziel ist es das ich eine Telegram Nachricht bekomme wenn es geklingelt hat und wenn die Tür geöffnet wurde und wer die Tür geöffnet hat usw.

                    Kann mir da einer ne kleine Step by step Anleitung für komplette idioten geben.

                    Ich danke nochmal allen Hilfsbereiten. :v:

                    ZefauZ Offline
                    ZefauZ Offline
                    Zefau
                    schrieb am zuletzt editiert von
                    #24

                    @Marek Auf Github ist es doch beschrieben?

                    Das erste Skript (also die Funktion) muss in den global Ordner. Das zweite Skript in den common Ordner und dort nello.0.ID mit deiner ID austauschen.

                    Meine Adapter: https://zefau.github.io/iobroker/

                    1 Antwort Letzte Antwort
                    1
                    • M Offline
                      M Offline
                      Marek
                      schrieb am zuletzt editiert von
                      #25

                      Also ich bekomme da den Fehler:

                      javascript.0 script.js.common.Nello.Klingeln compile failed:
                      at script.js.common.Nello.Klingeln:9

                      Hab es jetzt genau nach deiner Beschreibung gemacht...

                      Oh Mann...

                      J ZefauZ 2 Antworten Letzte Antwort
                      0
                      • M Marek

                        Also ich bekomme da den Fehler:

                        javascript.0 script.js.common.Nello.Klingeln compile failed:
                        at script.js.common.Nello.Klingeln:9

                        Hab es jetzt genau nach deiner Beschreibung gemacht...

                        Oh Mann...

                        J Offline
                        J Offline
                        Jan1
                        schrieb am zuletzt editiert von
                        #26

                        @Marek
                        Du willst doch nur ein Telegram wenn es klingelt, warum fängst dann nicht klein an und antwortest auf meine Fragen?
                        Du hast von Java Script keine Plan, dann machs mit Blockly und das was Du willst ist in Blockly mit 3 Blöcken erledigt.

                        1 Antwort Letzte Antwort
                        0
                        • M Marek

                          Also ich bekomme da den Fehler:

                          javascript.0 script.js.common.Nello.Klingeln compile failed:
                          at script.js.common.Nello.Klingeln:9

                          Hab es jetzt genau nach deiner Beschreibung gemacht...

                          Oh Mann...

                          ZefauZ Offline
                          ZefauZ Offline
                          Zefau
                          schrieb am zuletzt editiert von
                          #27

                          @Marek habe die Skripte nochmal angepasst, versuch mal:

                          /**
                           * Send something with Telegram
                           * 
                           * @param       {string}        content         Content to send via Telegram
                           * @param       {string}  		[user='']		User to send the content to
                           * @return      void
                           * 
                           */
                          function msg(content, user = '')
                          {
                              const CONFIG = {
                                  text: content,
                                  parse_mode: 'HTML'
                              };
                              
                              sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                          }
                          

                          sowie

                          var L = {
                             'actionRingUnknown': 'Es hat geklingelt',
                             'actionOpenName': '%name% hat die Tür geöffnet',
                             'actionOpenGeo': '%name% hat das Haus betreten',
                             'actionOpen': 'Die Haustür wurde geöffnet'
                          };
                          
                          on({id: 'javascript.0.test', change: 'any'}, function(obj)
                          {
                             var events = obj && obj.state && JSON.parse(obj.state.val);
                             if (!events || events.length == 0) return;
                          
                             var event = events[events.length-1];
                             if (event.action == 'deny')
                                msg(L.actionRingUnknown);
                          
                             else if (event.action == 'swipe')
                                msg(L.actionOpenName.replace(/%name%/gi, event.data.name));
                          
                             else if (event.action == 'geo')
                                msg(L.actionOpenGeo.replace(/%name%/gi, event.data.name));
                          
                             else
                                msg(L.actionOpen);
                          });
                          

                          Telegram Adapter hast du installiert und konfiguriert, richtig?

                          Meine Adapter: https://zefau.github.io/iobroker/

                          M 1 Antwort Letzte Antwort
                          0
                          • M Offline
                            M Offline
                            Marek
                            schrieb am zuletzt editiert von
                            #28

                            Haloo Zefau,

                            also ich habe jetzt dein neues script genommen. Das funktioniert. Ich habe nur "javascript.0.test" in nello.0.ID.events.feed anstelle "ID" die ID vom nello eingetragen. Es funktioniert. Danke dir !

                            M 1 Antwort Letzte Antwort
                            1
                            • M Marek

                              Haloo Zefau,

                              also ich habe jetzt dein neues script genommen. Das funktioniert. Ich habe nur "javascript.0.test" in nello.0.ID.events.feed anstelle "ID" die ID vom nello eingetragen. Es funktioniert. Danke dir !

                              M Offline
                              M Offline
                              Marek
                              schrieb am zuletzt editiert von
                              #29

                              @Marek und natürlich bei dem oberen script bei User den user im telegram Adapter eingetragen

                              1 Antwort Letzte Antwort
                              0
                              • ZefauZ Zefau

                                @Marek habe die Skripte nochmal angepasst, versuch mal:

                                /**
                                 * Send something with Telegram
                                 * 
                                 * @param       {string}        content         Content to send via Telegram
                                 * @param       {string}  		[user='']		User to send the content to
                                 * @return      void
                                 * 
                                 */
                                function msg(content, user = '')
                                {
                                    const CONFIG = {
                                        text: content,
                                        parse_mode: 'HTML'
                                    };
                                    
                                    sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                                }
                                

                                sowie

                                var L = {
                                   'actionRingUnknown': 'Es hat geklingelt',
                                   'actionOpenName': '%name% hat die Tür geöffnet',
                                   'actionOpenGeo': '%name% hat das Haus betreten',
                                   'actionOpen': 'Die Haustür wurde geöffnet'
                                };
                                
                                on({id: 'javascript.0.test', change: 'any'}, function(obj)
                                {
                                   var events = obj && obj.state && JSON.parse(obj.state.val);
                                   if (!events || events.length == 0) return;
                                
                                   var event = events[events.length-1];
                                   if (event.action == 'deny')
                                      msg(L.actionRingUnknown);
                                
                                   else if (event.action == 'swipe')
                                      msg(L.actionOpenName.replace(/%name%/gi, event.data.name));
                                
                                   else if (event.action == 'geo')
                                      msg(L.actionOpenGeo.replace(/%name%/gi, event.data.name));
                                
                                   else
                                      msg(L.actionOpen);
                                });
                                

                                Telegram Adapter hast du installiert und konfiguriert, richtig?

                                M Offline
                                M Offline
                                Marek
                                schrieb am zuletzt editiert von
                                #30

                                @Zefau wenn ich die Telegram an mehrere user schicken möchte wie mache ich das dann?

                                ZefauZ 1 Antwort Letzte Antwort
                                0
                                • M Marek

                                  @Zefau wenn ich die Telegram an mehrere user schicken möchte wie mache ich das dann?

                                  ZefauZ Offline
                                  ZefauZ Offline
                                  Zefau
                                  schrieb am zuletzt editiert von Zefau
                                  #31

                                  @Marek sagte in Nello Telegram:

                                  wenn ich die Telegram an mehrere user schicken möchte wie mache ich das dann?

                                  /**
                                   * Send something with Telegram
                                   * 
                                   * @param       {string}        content         Content to send via Telegram
                                   * @param       {array}  		[user=[]]		Users to send the content to
                                   * @return      void
                                   * 
                                   */
                                  function msg(content, users = [])
                                  {
                                      const CONTENT = {
                                          text: content,
                                          parse_mode: 'HTML'
                                      };
                                      
                                  	if (!Array.isArray(users) || users.length == 0)
                                  		sendTo('telegram', CONTENT);
                                  	else
                                  		users.forEach(user => sendTo('telegram', Object.assign({ user: user }, CONTENT)))
                                  }
                                  

                                  und dann msg('hallo', ['Zefau', 'Marek']) bzw. msg('hallo') schickt an alle.

                                  Meine Adapter: https://zefau.github.io/iobroker/

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • ZefauZ Zefau

                                    @Marek sagte in Nello Telegram:

                                    wenn ich die Telegram an mehrere user schicken möchte wie mache ich das dann?

                                    /**
                                     * Send something with Telegram
                                     * 
                                     * @param       {string}        content         Content to send via Telegram
                                     * @param       {array}  		[user=[]]		Users to send the content to
                                     * @return      void
                                     * 
                                     */
                                    function msg(content, users = [])
                                    {
                                        const CONTENT = {
                                            text: content,
                                            parse_mode: 'HTML'
                                        };
                                        
                                    	if (!Array.isArray(users) || users.length == 0)
                                    		sendTo('telegram', CONTENT);
                                    	else
                                    		users.forEach(user => sendTo('telegram', Object.assign({ user: user }, CONTENT)))
                                    }
                                    

                                    und dann msg('hallo', ['Zefau', 'Marek']) bzw. msg('hallo') schickt an alle.

                                    M Offline
                                    M Offline
                                    Marek
                                    schrieb am zuletzt editiert von Marek
                                    #32

                                    @Zefau

                                    /**
                                      * Send something with Telegram
                                      * 
                                      * @param       {string}        content         Content to send via Telegram
                                      * @param       {array}  		[user=[]]		Users to send the content to
                                      * @return      void
                                      * 
                                      */
                                    function msg(content, users = 'Marco', 'Nadine' )
                                    {
                                        const CONFIG = {
                                            text: content,
                                            parse_mode: 'HTML'
                                        };
                                        
                                        sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                                    }
                                    

                                    haut irgendwie nicht hin.. grübel. Ich muss mal so nen Java Kurs belegen...

                                    ZefauZ 1 Antwort Letzte Antwort
                                    0
                                    • M Marek

                                      @Zefau

                                      /**
                                        * Send something with Telegram
                                        * 
                                        * @param       {string}        content         Content to send via Telegram
                                        * @param       {array}  		[user=[]]		Users to send the content to
                                        * @return      void
                                        * 
                                        */
                                      function msg(content, users = 'Marco', 'Nadine' )
                                      {
                                          const CONFIG = {
                                              text: content,
                                              parse_mode: 'HTML'
                                          };
                                          
                                          sendTo('telegram', user ? Object.assign({user: user}, CONFIG) : CONFIG);
                                      }
                                      

                                      haut irgendwie nicht hin.. grübel. Ich muss mal so nen Java Kurs belegen...

                                      ZefauZ Offline
                                      ZefauZ Offline
                                      Zefau
                                      schrieb am zuletzt editiert von
                                      #33

                                      @Marek Nimm den neuen Code?

                                      Meine Adapter: https://zefau.github.io/iobroker/

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      757

                                      Online

                                      32.4k

                                      Benutzer

                                      81.5k

                                      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