Ankündigung

Einklappen
Keine Ankündigung bisher.

Telegram, Alternative zu WhatsApp

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

  • bmx
    antwortet
    Welche telegram-bot Version benutzt Du?

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Guten Morgen,

    bei mir funktionieren die commands über telegram_info nach der Neuinstallation nicht mehr, auch nachdem ich alles in Kleinbuchstaben abgeändert habe. Ich hab probeweise auch die develop Version heruntergeladen.

    Die commands enden immer in telegram_message - command.

    Code:
    __init__          Telegram Dispatcher write item: Telegram.TextMessage value: Ivan:/wetter  --  (__init__.py:mHandler:408)
    Gruß Ivan

    Einen Kommentar schreiben:


  • bmx
    antwortet
    So ein Fix ist in develop. Es ist noch ein paar Kleinigkeiten dazugekommen. commands über telegram_info müssen z.B. kleingeschrieben werden sonst passiert nix.
    Hat mich heute zwei Stunden gekostet um rauszukriegen, das ich nicht mehr Raumtemperaturen als command nutzen kann sondern nur noch raumtemperaturen. Das steht auch nichts in der telegram Botfather Beschreibung das das nur Kleinbuchstaben sein dürfen. Aber sei es drum ...

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Schmeiß das Backend mal raus :-) Die Admin Gui deckt das alles bereits mit ab und noch einiges mehr...

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Ich hab jetzt inmeinem lokalen Plugin die Zeilen 335 und 347 geändert zu

    Code:
    if str(user_id) in self._chat_ids_item():
    jetzt gehts erst mal.

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Hm, wenn ich versuche im Admin-Interface den wert zu ändern schreibt mir das Backend immer den alten Wert wieder rein. (also mit ' )
    Im Log:
    Code:
    Item my_telegram.chat_ids: value "{12345678: 1}" does not match type dict. Via Backend None

    Wenn ich im Item die ' wegnehme um den Key, dann gibt es folgenden Fehler:

    Code:
    Item my_telegram.chat_ids: problem creating: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
    Traceback (most recent call last):
    File "/usr/local/smarthome/lib/item.py", line 1251, in _cast_dict
    value = json.loads(value)
    File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
    return _default_decoder.decode(s)
    File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/usr/lib/python3.4/json/decoder.py", line 359, in raw_decode
    obj, end = self.scan_once(s, idx)
    ValueError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
    Zuletzt geändert von Shai; 28.04.2020, 09:24.

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Moinsen,

    Du kannst mal im Admin Interface das item my_telegram.chat_ids aufrufen und dort den Itemwert ändern auf { 12345678: 1 }, sprich: Anführungszeichen um die ID weglassen.

    Wenn das klappt (und da bin ich mir eigentlich sicher) dann kannst Du in Deiner item.yaml das dauerhaft ändern.

    Das ist ein Bug im Plugin. Der Telegram Bit liefert für ID eigentlich immer int. So wie es aktuell (falsch) dokumentiert ist, trägt man aber beim value einen string als key ein. Solange ID von Telegram und id von SHNG nicht verglichen werden müssen, ist alles ok. Aber wenn Du /start eingibst, passiert genau das und er fällt auf die Nase.
    Ich pushe nachher einen Fix in develop.

    Gruß,
    Bernd

    Einen Kommentar schreiben:


  • Shai
    antwortet
    Nabend,
    ich habe ein merkwürdiges Problem:

    Plugin Version 1.6.1

    Ich habe ein Item angelegt mit den trusted Chat ids.

    Das Senden von Nachrichten funktioniert problemlos, ohne das ich gesonderte ChatIds im Aufruf verwenden muss.

    Wenn ich den bot allerdings anschreibe bekomme ich entweder:
    "This bot knows your chat id but you are not allowed to use this bot to write to items"
    (bei Nachrichten ohne / (also kein command))

    oder:
    "This bot does not know your chat id and thus does not trust it, you are not allowed to use this bot"
    (bei commands)
    ​​

    /Start liefert:
    Your chat id is 12345678, please add it to the list of trusted chat ids to get access


    Wie kann mir der Bot Nachrichten senden wenn ich im Aufruf keine ChatIds angebe, aber gleichzeitig sagen das er mich nicht kennt?


    Item.yaml
    Code:
    my_telegram:
      chat_ids:
        type: dict
        telegram_chat_ids: 'True'
        enforce_updates: 'true'
        cache: 'True'
        value: "{ '12345678': 1 }"
    Zuletzt geändert von Shai; 27.04.2020, 19:51.

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Hall Manuel,
    sorry für die späte Rückmeldung. Ja das geht, einfach an die Gruppen ID senden.
    value = "{gruppenID}

    Ich hatte es auch schon getestet aber lange her. Einfach mal rumprobieren

    Gesunde Grüße
    Michael

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Hallo Michael,

    ich habe nun einmal getestet. Was mir dabei aufgefallen ist, dass du, wenn es klingelt, ein Bild in eine Gruppe schickst, und die Meldung dass es geklingelt hat an deinen Bot ? Kann ich die Meldung auch in die Gruppe schicken?

    Nachtrag: Das funktioniert.

    Code:
    eval: sh.telegram.photo_broadcast("http://192.xxx.xxx.xxx/cgi-bin/api.cgi?---","Türkamera",-123456789) if sh.message.gong() == 1 else None , sh.telegram("Es hat geklingelt.","-473559566123456789") if sh.message.gong() == 1 else None
    Gruß Manuel
    Zuletzt geändert von manu241; 26.03.2020, 19:14.

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Hallo Michael,

    das teste ich mal aus.

    Danke dafür.

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Ich mache das mit einer Logik

    Code:
    batterie:[INDENT]type: num
    visu_acl: ro
    hm_address: 000393C99BFD72
    hm_channel: 0
    hm_function: LOW_BAT
    on_change: service.telegram.senden = 'Stellventil Batterie EG Bad wechseln' if value else 'Stellventil Batterie EG Bad  OK.'[/INDENT]
    senden an Bot
    Code:
    service:[INDENT]telegram:[/INDENT][INDENT=2]Chat_Ids:[/INDENT][INDENT=3]type: dict
    telegram_chat_ids: 'True'
    enforce_updates: 'true'
    cache: 'True'
    value: "{ '12345678': 1 }"[/INDENT][INDENT=2]senden:[/INDENT][INDENT=3]type: str
    enforce_updates: 'true'
    telegram_message: '[VALUE]'[/INDENT]
    senden an Bot und Gruppe
    Code:
    haustuer:[INDENT]klingel:[/INDENT][INDENT=2]type: bool
    visu_acl: r
    knx_dpt: 1
    knx_listen: 11/1/11
    enforce_updates: 'true'
    telegram_message: Es klingelt an der Tür
    telegram_value_match_regex: (true|True|1) # nur Nachricht senden wenn 1
    info:[/INDENT][INDENT=3]type: bool
    enforce_updates: 'true'
    eval_trigger: haustuer.klingel
    eval: sh.telegram.photo_broadcast("http://<IP>/cgi-bin/api.cgi?.....","Türkamera",-1009876543) if sh.haustuer.klingel() == 1 else None[/INDENT][INDENT] [/INDENT]
    Vielleicht hilft Dir das weiter

    Gruß
    Michael

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Hallo,

    danke für die Info. Muss ich das ganze dann über eine Logik machen, oder kann ich die ChatIds auch per item übergeben?

    Gruß Manuel

    Einen Kommentar schreiben:


  • yachti
    antwortet
    Zitat von ivande Beitrag anzeigen
    Es ist nur möglich innerhalb eines Bots an verschiedene Chat_ids zu senden
    So mache ich das auch. Nutze 2 Chat_Ids. Eine für WAF und eine für mich.

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Es kann derzeit leider nur ein token in der plugin.yaml hinterlegt werden. Da das Plugin nicht Multiinstance fähig ist, wüsste ich nicht wie man in verschiedene Bots Nachrichten senden kann. Es ist nur möglich innerhalb eines Bots an verschiedene Chat_ids zu senden.. Gruß Ivan

    Einen Kommentar schreiben:

Lädt...
X