Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das Tasmota Plugin

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

    #31
    shNG setze ich schon lange ein (ausschließlich MASTER), kenne also den Aufbau und die Struktur; der große Programmierer bin ich leider nicht 😔; beschränke mich auf Logiken für meine privaten Sachen.

    Interesse habe ich definitiv. Im Rahmen meiner Möglichkeiten kann ich unterstützen....

    Kommentar


      #32
      knxms
      henfri

      Hallo,

      anbei eine Dev-Version des Tasmota Plugins zum Testen.
      Zur Vewendung müsstest Du folgendes tun:
      • Zip im Ordner /plugins entpacken; Es wird ein neuer Ordner "tasmota_dev" dabei erstallt, der parallel zu "tasmota" exisitiert
      • Das aktuelle Tasmota Plugin deaktivieren (über Admin GUI / Plugins / Konfiguration)
      • Das Tasmota_dev Plugin als neues Plugin über die Admin GUI aktivieren und konfigurieren (gleiche Parameter nutzen, wie beim Tasmota Master Plugin)
      Zusätzlich ist implementiert:
      • HSB Senden und Empfangen implementiert als "list of int"
      • Sensor DS18B20 und AM2301 implementiert mit entsprechenden Payload-Prüfungen
      • Paypload Prüfungen bei Sensor Energy ergänzt
      • Hardware Modell / Module aus INFO1 mit abfragen und ins Web-IF-dict übernehmen; Anzeige im WebIF
      • Hardware Modell und Template auslesen und ins Web-IF-dict übernehmen; Anzeige im WebIF
      • WifiSignalstärke aus stat/STATE auslesen und und ins Web-IF-dict übernehmen; Anzeige im WebIF
      • RF-Send ermöglicht; Plugin erwartet Item-Wert als Dict im Format {'RfSync': 12220, 'RfLow': 440, 'RfHigh': 1210, 'RfCode':'#F06104'}
      • Statusinfo abrufen, wenn bereits bekanntes Geräte (Topics sind über Items verbunden) nach Plugin-Start wieder verbunden
      Rückmeldung gern am mich per PN
      Angehängte Dateien

      Kommentar


        #33
        Hallo,

        vielen Dank dafür!
        Leider hab ich momentan verdammt wenig Zeit das auszuprobieren.
        Aktuell sende ich garnicht. Ich hatte es bisher nur manuell per mqtt ausprobiert - dann ist mir die Zeit ausgegangen.

        Gruß,
        Hendrik

        Kommentar


          #34
          Hallo

          das Tasmota Plugin wurde im diverse Features erweitert. Dafür habe ich einen PR gegen develeop gestellt.

          Zudem möchte ich noch die Zigbee-Funktionalität von Tasmota mit einbauen.Hier gibt es das Problem, dass meine IKEA Tradfri E1766 Fernbedienung eine MQTT Message mit unzulässigen Zeichen abschickt, und dadurch das Plugin bzw. auch schon das MQTT Modul Probleme bekommt.

          Die MQTT Message ist:
          Code:
          tele/D1B8/ZbReceived = {"0xD1B8":{"Device":"0xD1B8","ModelId":"TRADFRI open/close remote","Manufacturer":"�KE","Endpoint":1,"LinkQua lity":68}}
          Bei "Manufacturer" seht ihr das unzulässige Zeichen. Es sollte "IKEA" heißen.
          So kommt es in der Konsole an, wenn man dort alle empfangenen Nachrichten von Mosquitto anzeigen lässt.

          Msinn


          Wie kann ich diesen Fehler abfangen?
          DANKE

          PS
          Die Fehlermeldung im Log lautet:
          Code:
          cast_from_mqtt: datatype 'dict', error 'Invalid control character at: line 1 column 138 (char 137)', data = ‘{"ZbStatus3":[{"Device":"0xD1B8","Name":"E1766_01","IEEEAddr":"0x588E81FFFE28DEC5","ModelId":"TRADFRI open/close remote","Manufacturer":"KE","Endpoints":[1],"Config":[],"Reachable":true,"LastSeen":24938,"LastSeenEpoch":1619442844,"LinkQuality":37}]}‘
          Zuletzt geändert von Sisamiwe; 26.04.2021, 21:15.

          Kommentar


            #35
            Hallo,

            ich habe gerade das tasmota-plugin aktiviert.
            Ich habe noch keine Items definiert, lediglich die plugin.yaml:
            Code:
            my_tasmota_plugin:
            plugin_name: tasmota
            Das MQTT Modul habe ich bereits In Benutzung. Das funktioniert auch soweit.

            Allerdings wird das Plugin im Webinterface als inaktiv angezeigt. Im log sehe ich:
            Code:
            Traceback (most recent call last):
            File "/usr/local/smarthome/lib/plugin.py", line 675, in run
            self.plugin.run()
            File "/usr/local/smarthome/plugins/tasmota/__init__.py", line 114, in run
            for topic in self.tasmota_devices:
            RuntimeError: dictionary changed size during iteration
            und

            Code:
            2021-07-06 23:10:40 ERROR cherrypy.error.140056979657448 [06/Jul/2021:23:10:40] HTTP
            Traceback (most recent call last):
            File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 638, in respond
            self._do_respond(path_info)
            File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 697, in _do_respond
            response.body = self.handler()
            File "/usr/local/lib/python3.7/dist-packages/cherrypy/lib/encoding.py", line 219, in __call__
            self.body = self.oldhandler(*args, **kwargs)
            File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cpdispatch.py", line 54, in __call__
            return self.callable(*self.args, **self.kwargs)
            File "/usr/local/smarthome/plugins/tasmota/webif/__init__.py", line 81, in index
            return tmpl.render(p=self.plugin, items=sorted(self.items.return_items(), key=lambda k: str.lower(k['_path'])))
            File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 1090, in render
            self.environment.handle_exception()
            File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 832, in handle_exception
            reraise(*rewrite_traceback_stack(source=source))
            File "/usr/local/lib/python3.7/dist-packages/jinja2/_compat.py", line 28, in reraise
            raise value.with_traceback(tb)
            File "/usr/local/smarthome/plugins/tasmota/webif/templates/index.html", line 237, in top-level template code
            {% set tab4title = "<strong>" ~ " Broker Information</strong>" %}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 183, in top-level template code
            {% if scroll_heading is not defined %}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 1, in top-level template code
            {% block doc -%}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 4, in block "doc"
            {%- block html %}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 76, in block "html"
            {% block body -%}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base.html", line 79, in block "body"
            {% block content -%}
            File "/usr/local/smarthome/modules/http/webif/gtemplates/base_plugin.html", line 160, in block "content"
            {% block bodytab3 %}
            File "/usr/local/smarthome/plugins/tasmota/webif/templates/index.html", line 214, in block "bodytab3"
            <td class="py-1">{{ p.tasmota_devices[device].energy_sensors.voltage }}V</td>
            File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 471, in getattr
            return getattr(obj, attribute)
            jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'energy_sensors'
            mosquitto sagt:
            Code:
            tele/gosund4/SENSOR {"Time":"2021-07-06T22:27:40","ENERGY":{"TotalStartTime":"2019-11-28T20:30:04","Total":272.192,"Yesterday":0.002,"To day":0.001,"Period":0,"Power":0,"ApparentPower":0, "ReactivePower":0,"Factor":0.00,"Voltage":0,"Curre nt":0.000}}
            Hast du eine Idee, woran das liegen kann?

            Gruß,
            Hendrik

            Kommentar


              #36
              Zitat von henfri Beitrag anzeigen
              RuntimeError: dictionary changed size during iteration
              Das ist ein Fehler, der auftritt, wenn verschiedene Threads das dict zeitgleich verändern. So ein Fehler tritt generell nur ab und zu auf und muss vermutlich durch Locks abgefangen werden. Da muss ich mal rein schauen.

              Zitat von henfri Beitrag anzeigen
              jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'energy_sensors'
              Dazu habe ich im Moment noch keine Idee. Auch da muss ich mal rein schauen.

              Da bei mir die Zeit im Moment recht knapp ist, kann das aber dauern bis ich dazu komme.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #37
                Zitat von Msinn Beitrag anzeigen
                Dazu habe ich im Moment noch keine Idee. Auch da muss ich mal rein schauen.

                Da bei mir die Zeit im Moment recht knapp ist, kann das aber dauern bis ich dazu komme.
                henfri nutzt eine von mir veränderte Version des Plugins. Ich kümmere mich darum.

                Kommentar


                  #38
                  Huch, das war mir nicht (mehr?) bewusst

                  Kommentar


                    #39
                    Zitat von henfri Beitrag anzeigen
                    Hallo,

                    vielen Dank dafür!
                    Leider hab ich momentan verdammt wenig Zeit das auszuprobieren.
                    Aktuell sende ich garnicht. Ich hatte es bisher nur manuell per mqtt ausprobiert - dann ist mir die Zeit ausgegangen.

                    Gruß,
                    Hendrik
                    Schau mal hier, dass war unsere Kommunikation im März dazu.
                    Welches Version des Plugin hast Du im Einsatz? Die aus dem Master Branch oder die von mir, die oben im Beitrag #32 anhängt ist.

                    Kommentar


                      #40
                      Hallo,

                      ui, das hatte ich überhaupt nicht mehr in Erinnerung... Blackout.
                      Ich hab diese Version genutzt https://raw.githubusercontent.com/sm...ta/__init__.py
                      Der Ordner tasmota_dev ist vorhanden, aber unbenutzt - sorry, dazu war ich noch nicht gekommen. Erstmal mit dem "basic" Tasmota-Plugin befassen, bevor ich deine Änderung teste.
                      Ich fürchte also, der Fehler existiert schon im Release.
                      @Msinn: Es eilt nicht.
                      Zitat von Msinn Beitrag anzeigen
                      Das ist ein Fehler, der auftritt, wenn verschiedene Threads das dict zeitgleich verändern. So ein Fehler tritt generell nur ab und zu auf und muss vermutlich durch Locks abgefangen werden
                      Ich habe den Eindruck, dass das Problem hier immer auftritt. Jedenfalls habe ich mehrfach sh.py neugestartet und immer war das Plugin inaktiv (vermutlich aufgrund des Fehlers oben).

                      Gruß,
                      Hendrik

                      Kommentar

                      Lädt...
                      X