Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das Telegram Plugin

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

    Support Thread für das Telegram Plugin

    Aktuell ist in develop eine neue Revision für das Telegram Plugin eingestellt worden. Mit Version 12 der zu Grunde liegenden Bibliothek sind einige Dinge grundlegend geändert worden. Die neue Revision für das Plugin berücksichtigt diese Änderungen ab Release > 1.7.2.

    Wer aktuell Schwierigkeiten mit der Release 1.7.x und der python-telegram-bot Version 13.0 der kann eine ältere Version der Bibliothek nutzen.
    Das sollte mit python3 -m pip install "python-telegram-bot<13.0" --user --upgrade funktionieren

    Fragen und/oder Problem mit dem Plugin hier im Thread ...
    Zuletzt geändert von bmx; 17.11.2020, 16:43.


    #2
    hab soeben einen pull-request mit einer neuen plugin Version erstellt, mit welcher nun auch SH-Item via telegram verändert werden können (bool: ein- und Ausschalten, num: Zahlenwert senden)
    vielleicht kann sich jemand die Sache schon durchsehen und testen..

    Code:
    Telegram_Test:
        BeregnungZone1:
            type: bool
            cache: True
            telegram_control: "name:BeregnungZ1, type:onoff"
        BeregnungZone2:
            type: bool
            cache: True
            telegram_control: "name:BeregnungZ2, type:toggle, question:Ventil wirklich umschalten?"
        Gartentor:
            type: bool
            cache: True
            telegram_control: "name:Gartentor, type:on, question:Gartentor wirklich öffnen?"
        Dachfenster:
            type: num
            cache: True
            telegram_control: "name:Dachfenster, type:num, min:0, max:100, timeout:30"
         Kamera:
            type: bool
            cache: True
            telegram_control: "name:Kamera, type:toggle"
            eval: sh.plugins.return_plugin("telegram").photo_broadcast("http://192.168.0.78/snapshot/view0.jpg", datetime.datetime.now().strftime("%H:%M %d.%m.%Y"))
    Zuletzt geändert von ivande; 11.12.2022, 11:35.

    Kommentar


      #3
      Zitat von ivande Beitrag anzeigen
      hab soeben einen pull-request mit einer neuen plugin Version erstellt,
      Hallo,

      ich habe mir die Änderungen mal angeschaut und getestet. Im Prinzip sieht es gut aus, aber an einigen Stellen muss noch nachgearbeitet werden.
      ivande
      Melde Dich bitte per PM oder gitter.

      Danke.

      Kommentar


        #4
        Ich komme nicht so recht klar mit dem Plugin. Theoretisch sollten es doch so gehen?

        Code:
        Service:
            Telegram:
                Chat_Ids:
                    type: dict
                    telegram_chat_ids: True
                    cache: yes
                    value: '{ XXXXXXXXX: 1 }'
        
                Senden:
                    type: str
                    telegram_message: '[VALUE]'​
        Code:
                        Status:
                            type: bool
                            knx_dpt: 1
                            knx_cache: 1/7/1
                            telegram_message: '!ACHTUNG: Störung Gefrierschrank'
                            telegram_condition: on_change
                            telegram_value_match_regex: (false|false|0)​
        Es wird aber nichts gesendet.

        So hingegen geht es:

        Code:
                        Status:
                            type: bool
                            knx_dpt: 1
                            knx_cache: 1/7/1
                            visu_acl: ro
                            on_change: Service.Telegram.Senden = 'ACHTUNG - Störung Gefrierschrank!' if not value else None​
        Allerdings zum letzten Punkt ein Problem, dass mich schon wirklich Nerven gekostet hat. Sofern ein Doppelpunkt in dem String ist, bekomme ich eine Fehlermeldung ins Log. Irgendwas mit Unicode-String. Ich kann den Fehler aber nicht nachvollziehen - also warum ein Doppelpunkt unzuässig ist.

        Kommentar


          #5
          Ich fürchte, da wirst Du den Source-Code bemühen und das logging einschalten müssen um da näheres rauszufinden.

          Du kannst auch ivande oder gama direkt kontaktieren ...

          Kommentar


            #6
            Cannon

            Hier mal eine funktionierende Config:

            Code:
            %YAML 1.1
            ---
            telegram:
                chat_ids:
                    type: dict
                    telegram_chat_ids: true
                    initial_value: '{xx: 1, xx: 1, xx: 1}'
                    # a dict with chat id and 1 for read and write access or 0 for readonly access
                    cache: yes
                    
                info:
                    message:
                        type: str
                        enforce_updates: yes
                        telegram_text: True

            Code:
                        waschmaschine:
                            onoff:
                                type: bool
                                visu_acl: rw
                                knx_dpt: 1
                                knx_send: 2/3/8
                                knx_cache: 2/3/9
                                cache: yes
                                struct: uzsu.child
            
                            schwellwert_ueberschritten:
                                type: bool
                                visu_acl: rw
                                knx_dpt: 1
                                knx_listen: 2/3/10
                                cache: yes
            
                                inbetrieb:
                                    name: Waschmaschine in Betrieb (wenn 0 dann fertig)
                                    type: bool
                                    cache: yes
                                    eval: True if int(value) < 2 else False
                                    eval_trigger: ..
                                    autotimer: 15m = 2 = compat_1.2
                                    telegram_message: Waschmaschine fertig!
                                    telegram_value_match_regex: "(false|False|0)"
                                    telegram_message_chat_id: 454648104

            Das funktioniert seit langem fehlerfrei.

            Beste Grüße

            Kommentar


              #7
              Zitat von Cannon Beitrag anzeigen
              telegram_value_match_regex: (false|false|0)​
              mindestens ein "false" sollte mit dem F als Großbuchstaben geschrieben sein...

              Kommentar


                #8
                Zitat von ivande Beitrag anzeigen
                mindestens ein "false" sollte mit dem F als Großbuchstaben geschrieben sein...
                Danke vielleicht ist genau das schon das Problem. Teste ich.

                Kommentar


                  #9
                  Wenn ich mir den Code im Plugin ansehe müßte da sogar ein "(0)" ausreichen weil der type bool in einen String 1 oder 0 gewandelt wird.

                  Kommentar


                    #10
                    der Doppelpunkt wirft schon beim Start von SH einen Fehler:

                    Code:
                    2023-01-15  20:28:03 WARNING  lib.shyaml          Unable to correct line number for yaml-file error. Wrong line number is ng values are not allowed here
                      in "<unicode string>", line 33, column 60:
                         ... .Senden = "Das ist nur ein Test : 2" if not value else None​
                                                             ^ (line: 33
                    2023-01-15  20:28:03 ERROR    lib.shyaml          YAML-file load error in /usr/local/smarthome/items/telegram.yaml:  
                    mapping values are not allowed here
                      in "<unicode string>", line 33, column 60:
                         ... .Senden = "Das ist nur ein Test : 2" if not value else None​
                                                             ^ (line: 33)
                    NOTE: Look for the error at the expected <block end>, near the second specified line number
                    Code:
                    on_change: sh.Telegram.Senden("Das ist nur ein Test : 2") if not value else None # Fehler wenn Doppelpunkt String??
                    Zuletzt geändert von ivande; 15.01.2023, 22:17.

                    Kommentar


                      #11
                      Zitat von bmx Beitrag anzeigen
                      Wenn ich mir den Code im Plugin ansehe müßte da sogar ein "(0)" ausreichen weil der type bool in einen String 1 oder 0 gewandelt wird.
                      stimmt, bei type bool wird in 0 oder 1 gewandelt. Das Problem gab es bei einer älteren Version vom Plugin und wurde behoben.

                      Ich habe soben mehrere Varianten mit einem Test-Item ausprobiert

                      Code:
                      TestStatus:
                          type: bool
                          telegram_message: 'ACHTUNG: Das ist nur ein Test'
                          telegram_condition: on_change
                          #telegram_value_match_regex: (false|false|0)​ # funktioniert
                          #telegram_value_match_regex: (false|False|0)​ # funktioniert
                          telegram_value_match_regex: 0​ # funktioniert

                      Kommentar

                      Lädt...
                      X