Ankündigung

Einklappen
Keine Ankündigung bisher.

Telegram, Alternative zu WhatsApp

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gama
    antwortet
    Zumindest bei mir gibt es immer wieder Verbindungsprobleme. Bilder werden seitens der Python lib unterstütz, sind aber noch nicht implementiert.

    Einen Kommentar schreiben:


  • Manuel1889
    antwortet
    Habe es nun doch noch hingebracht. Hatte einen Fehler in der item-definition.

    Wurde für das Verbindungsproblem bereits eine Lösung gefunden und ist es möglich auch Bilder zu senden?

    Danke und lg. Manuel

    Einen Kommentar schreiben:


  • Manuel1889
    antwortet
    Hätte es versucht, funktioniert jedoch nicht. Ich habe ein Item angelegt und auch in der logic die zeile wie folgt eingebaut:
    You do not have permission to view this gallery.
    This gallery has 3 photos.

    Einen Kommentar schreiben:


  • Manuel1889
    antwortet
    Vielen Dank für die Informationen.

    lg. Manuel

    Einen Kommentar schreiben:


  • gama
    antwortet
    Hallo Manuel,

    an dieser Stelle sei vermerkt, dass es immer noch "Verbindungsprobleme" mit dem Backend gibt, d.h. die Nachrichten werden nicht zuverlässig gesendet. Ich habe (wie in machen Foren empfohlen) versucht mit einem Keep-alive Thread den Kanal offen zu halten, aber das funktioniert auch nicht 100%ig. Ansonsten sendest Du eine Nachricht durch direkte Aufruf von sh.telegram("Nachricht")

    Grüße
    Markus

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Mit dem aktuellen Plugin geht es bei mir in einer Logik mit
    Code:
     sh.telegram._msg_broadcast( "Hier kommt Deine Meldung rein")
    .

    Einen Kommentar schreiben:


  • Manuel1889
    antwortet
    Hallo,

    ich bin gerade am Telegram plugin installieren und möchte nun in einer Logic eine Telegramnachricht mit variable absenden. Weiß jemand wie ich das direkt in der logik absenden kann?

    Danke
    lg. Manuel

    Einen Kommentar schreiben:


  • gama
    antwortet
    Letztes Wochenende hatte ich noch Urlaub und etwas am plugin geschraubt. Die Ursache war, dass der Telegram Server die Verbindung gekappt hat, wenn eine "gewisse Zeit" kein Messagetransfer stattgefunden hat. Jetzt habe ich mal einen KeepAlive Thread gestartet, der die Leitung offen hält. Ich werde die Implementierung noch etwas testen und bei gut Befund pushen...

    Einen Kommentar schreiben:


  • gama
    antwortet
    Danke. Ich habe auch immer noch Abbrüche, aber leider die Ursache noch nicht lokalisiert - aber auch erst seit ein paar Wochen... seltsam...

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    gama Kurze Beschreibung zum Anlegen des Bots habe ich oben eingefügt.. Ich habe nun auch die Retries auf 10 erhöht und werde das beobachten. Aktuell gehen nach wie vor ca. 30% der Messages verloren Dankeschön!

    Leider auch verlorene Messages mit mehr Retries. Bleib ich wohl doch bei Pushbullet..?
    Zuletzt geändert von Onkelandy; 02.06.2017, 01:08.

    Einen Kommentar schreiben:


  • gama
    antwortet
    Danke für die Rückmeldung. Muss ich mir ansehen und testen...

    Einen Kommentar schreiben:


  • Foxi352
    antwortet
    Zitat von gama Beitrag anzeigen
    /subscribe Aktuell wird die chat-id zurückgemeldet die manuell in die conf Datei eingetragen werden muss.
    Hi Markus,

    Das funktioniert anscheinend nicht richtig. Hier mal was ich dir noch in dein Pull Request reingeschrieben hatte letzte Woche. Ich weiss nicht ob du das gesehen hast da das Request ja schon geschlossen wurde:

    Hallo @gamade,

    Seems to be a problem if an unknown user sends "/subscribe" to the bot to get his ID.

    Line 210: self._bot.sendMessage(tmp_chat_id, "Welcome at %s. Please register your ID: [%d]" % (self._name, tmp_chat_id))

    That line does not work. If you remove the %s and self._name it does work:
    self._bot.sendMessage(tmp_chat_id, "Please register your ID: [%d]" % (tmp_chat_id))

    I have no clue why the self._name does not work here as it works two line above on the "you are already signed up" line ....

    Serge

    Einen Kommentar schreiben:


  • gama
    antwortet
    Hi,

    kannst Du deine "frischen" Erfahrungen zum Installieren in ein paar Stichworte zusammenfassen - dann nehme ich das gerne in die Doku mit auf.

    /subscribe soll mal dazu dienen, dass ich Benutzer, z.B. über Passwort und/oder Auth-Url authentifizieren sollen. Aktuell wird die chat-id zurückgemeldet die manuell in die conf Datei eingetragen werden muss.

    Den Fehler, dass er nicht Nachrichten verschicken kann, hatte ich die letzte Zeit auch. Ich meine, dass eine Änderung bei PoolManger auf
    urllib3.PoolManager(num_pools=3, maxsize=10, retries=10, timeout=30) Besserung gebracht hat. Ich hatte aber in letzter Zeit etwas Probleme mit dem I-Net und war mir der Ursache nicht gewiss... wäre gut, wenn das jemand verifizieren könnte.

    Grüße
    Markus

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Irgendwie antwortet mein Bot erst, nachdem ich ihn übers Plugin eingebunden habe.. deshalb hat er bei nicht laufendem Plugin auf "/subscribe" nicht reagiert. Keine Ahnung, ob das so sein soll

    Ich bin nun nach dieser Anleitung vorgegangen:
    https://www.forsomedefinition.com/au...notifications/
    um die ChatID ausfindig zu machen. Vielleicht könnt man da auch die relevanten Parts ins README nehmen für noobs wie mich?

    Kommunikation mit BotFather zB via https://telegram.me/botfather
    beliebigen Text an neuen Bot schicken
    Danach die URL aufrufen: https://api.telegram.org/bot$TOKEN/getUpdates

    Woran kann's liegen wenn die Fehlermeldung kommt: could not broadcast to chat id
    Die ChatID stimmt 100%, gerade kontrolliert. /subscribe liefert mir die gleiche ID.

    UPDATE: Es kamen nun schon mehrfach erfolgreiche Meldungen von Smarthome raus. Mittendrin dann aber wieder ein broadcast error..
    Zuletzt geändert von Onkelandy; 28.05.2017, 20:59.

    Einen Kommentar schreiben:


  • KHome
    antwortet
    Moin,

    um ein lokales Photo zu versenden und ggf. auch nur Nachrichten, habe ich dieses Plug-In zusammengeflickt
    (der bisherige Stand von gama in GitHub hat dies nicht hergegeben)
    Wäre cool, wenn Ihr das Photo-Versenden-Feature mit aufnehmen könntet
    (falls nicht ehe schon geplant)

    Als Erweiterung für die Zukunft wären Bilder lokal + remote =per HTML-Adresse; gemäß folgender Anleitung noch sinnvoll.
    http://stackoverflow.com/questions/3...h-telegram-bot
    Dies könnte man nutzen um Webcam-Bilder zu versenden...

    Nun folgt mein Zwischenstand:

    __init__.py
    Code:
    #!/usr/bin/env python3
    #########################################################################
    #  Copyright 2017 KNX-User-Forum: KHome         http://knx-user-forum.de/
    #  Based on NMA-Plug-In
    #########################################################################
    #  This file is part of SmartHome.py       https://github.com/smarthomeNG
    #
    #  SmartHome.py is free software: you can redistribute it and/or modify
    #  it under the terms of the GNU General Public License as published by
    #  the Free Software Foundation, either version 3 of the License, or
    #  (at your option) any later version.
    #
    #  SmartHome.py is distributed in the hope that it will be useful,
    #  but WITHOUT ANY WARRANTY; without even the implied warranty of
    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #  GNU General Public License for more details.
    #
    #  You should have received a copy of the GNU General Public License
    #  along with SmartHome.py. If not, see <http://www.gnu.org/licenses/>.
    #########################################################################
    
    import logging
    import telepot
    
    logger = logging.getLogger('telegram')
    
    
    class telegram():
        def __init__(self, smarthome, botkey=None, targetid=None):
            self._botkey = botkey
            self._targetid = targetid
            self._sh = smarthome
    
        def run(self):
            pass
    
        def stop(self):
            pass
    
        def __call__(self, mytype='', message='', photofile=None, botkey=None, targetid=None):
            localbotkey = self._botkey
            if botkey:
                localbotkey = botkey
            localtargetid = self._targetid
            if targetid:
                localtargetid = targetid
            try:
                bot = telepot.Bot(localbotkey)
                bot.getMe()
                if (mytype == 'sendMessage'):
                    logger.debug('Sending Message ' + message + ' to ID: ' + str(localtargetid) )
                    bot.sendMessage(int(localtargetid), message)
                elif (mytype == 'sendPhoto'):
                    logger.debug('Sending Photo, file: ' + photofile + ' with caption: ' + message + ' to ID: ' + str(localtargetid))
                    bot.sendPhoto(int(localtargetid),open(photofile,'rb'), message)
                elif (mytype == 'dummy'):
                    logger.debug('For future functions')
                else:
                    logger.error('Type for telegram unknown: ' + mytype)
            except Exception as e:
                logger.warning('Could not send telegram message, error: {1}'.format(e))
    sowie eine kurze Beschreibung, damit ich später noch zusammenbekomme wie das Ding läuft:
    README.md
    Code:
    # Telegram
    
    # Requirements
    telepot python library,
     get it from  http://telepot.readthedocs.io/en/latest/index.html
     e.g. pip install telepot or pip3 install telepot
     or: https://github.com/nickoala/telepot
    
    Telegram Bot-Key
     get it from https://telegram.org/ for free
     Hint: "chat" to Botfather and ask for "/newbot" as described here: https://core.telegram.org/bots#6-botfather
    
    Telegram Target-ID
     Write a message to the new bot via your smartphone, I wrote: "test"
     Now I've check this via python3 shell (replace 'YOUR-BOT-KEY' with your own new one)
     > import telepot
     > bot = telepot.Bot('YOUR-BOT-KEY')
     > bot.getMe()
                   ANSWER: {'first_name': 'XXXX', 'id': 111111111111, 'username': 'YYYYYYYYYYY'}
                   # this is your Bot-ID: "11111111111" - I don't think it's needed, just go ahead
     > response = bot.getUpdates()
     > print(response)
                   ANSWER: [{'edited_message': {'chat': {'last_name': 'uuuuuuuuuu', 'first_name': 'uuuuuuuuuu', 'id': 22222222222, 'type': 'private'}, 'text': 'Test', '...
                   # this is YOUR-TARGET-ID: "22222222222222"
    
    # Configuration
    
    ## plugin.conf
    
    <pre>
    [telegram]
        class_name = telegram
        class_path = plugins.telegram
    #   botkey = 'YOUR-BOT-KEY'
    #   targetid = YOUR-TARGET-ID
    </pre>
    
    Description of the attributes:
    
    * __botkey__: set bot-key globally so you do not have to set it in the function calls
    * __targetid__: set targetid globally so you do not have to set it in the function calls
    
    # Functions
    
    There are serveral functions you could access through the telepot-API. Some are used by the first keyword.
    These simple messages are implemented (as an improvement to the NMA Plug-In)
    
    <pre>
    sh.telegram('sendMessage', 'your message string')
    sh.telegram('sendPhoto', 'your message string, caption', 'path_to_photo_file')
    </pre>
    
    This function takes several arguments:
    
    * __mytype__:      Keyword to distinguish the action / parameter-set {'sendMessage', 'sendPhoto'}
    * __message__:   Text, which you want to share
    * __photofile__: Path to local file
    * __targetid__:  targetid - not necessary if global is set
    * __botkey__:    botkey   - not necessary if global is set
    
    # Examples
    <pre>
    sh.telegram('sendMessage', 'Hello from Bot')
    sh.telegram('sendPhoto', 'Outside', '/home/pi/test.jpg')
    </pre>
    Have Fun! HKome

    Einen Kommentar schreiben:

Lädt...
X