Ankündigung

Einklappen
Keine Ankündigung bisher.

Nach dem update von testing geht das DLMS Plugin nicht mehr

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

    #16
    Hi,

    ich habe jetzt folgenden Fehler

    Code:
    2017-02-25 15:54:26 ERROR    Core         Plugin DLMS (/data/callidomus/local/plugins/dlms) exception: 'int' object has no attribute 'lower'
    Traceback (most recent call last):
      File "/mfs/core/lib/plugin.py", line 103, in create
        plugin_thread = Thread(self._core, modclass, conf)
      File "/mfs/core/lib/plugin.py", line 182, in __init__
        self.plugin = _class(core, conf)
      File "/data/callidomus/local/plugins/dlms/__init__.py", line 48, in __init__
        if (baudrate.lower() == 'auto'):
    AttributeError: 'int' object has no attribute 'lower'
    2017-02-25 15:54:26 DEBUG    Core         Item Demo: no type specified.
    baudrate.JPG

    Warum ist baudrate hier ein int und kein String?

    Was gibt die Methode conf.get den zurück? Ich habe beide varianten ausprobiert mit und ohne auto beides int. when die Liste Auto, 300, 600, usw ist gehe ich von Strings aus als rückgabewert.

    Viele Grüsse
    Jürgen



    Kommentar


      #17
      Hi Markus,
      okay das kann ich selber fixen mit einem str(conf.get(ATTRIBUT)
      ich denke aber es ist besser das du das in der cong.get machtst.

      Hat sich was an dem Objekt item welche von parse item zurückkommt kommt zum Objekt node welches von config.query_nodes('dlms_obis_code'): kommt geändert?

      Weil ich habe jetzt folgende Fehlermeldungen

      Code:
      2017-02-25 17:18:35 WARNING DLMS dlms: line=0.0.0(03424749) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=0.9.1(171812) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=0.9.2(170225) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=1.7.0(0.009*kW) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=1.8.0(0008120.82*kWh) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=1.9.0(0000160.82*kWh) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=2.7.0(0.016*kW) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=2.8.0(0028992.14*kWh) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      2017-02-25 17:18:35 WARNING DLMS dlms: line=2.9.0(0000262.57*kWh) exception=__call__() takes from 1 to 3 positional arguments but 4 were given
      Das ist der code
      items.JPG


      Viele Grüsse
      Jürgen


      Kommentar


        #18
        Hallo Jürgen,

        schaue Dir doch bitte das Plugin auf Github an. Dort ist das bereits richtig.

        Bis bald

        Marcus

        Kommentar


          #19
          Marcus,
          die Probleme treten mit grosser sicherheit auch dort auf...weil an der stelle ist der code gleich. Zeile 149 diff.JPG



          Hast du so eine Zähler das du es Testen kannst? Ich denke nein weil sonst hättest du das problem aus post #16 sehen müssen.

          VG
          Jürgen
          Angehängte Dateien
          Zuletzt geändert von heckmannju; 25.02.2017, 18:28.

          Kommentar


            #20
            Jürgen,

            das Problem ist der Unterschied in Zeile 176 zu Deinem Code:
            https://github.com/callidomus/plugin...init__.py#L176

            Nein, ich habe keinen DLMS Zähler.

            Bis sicherlich bald

            Marcus

            Kommentar


              #21
              Änderst du das mit dem Rückgabewert von conf.get auf einen String noch? Ansonsten wird das Plugin so nicht funktionieren wie es auf git steht.
              VG
              Jürgen

              Kommentar


                #22
                Du meinst wegen self._baudrate? Doch das funktioniert.

                Bis bald

                Marcus

                Kommentar


                  #23
                  Hi Marcus,

                  scheint wieder zu tun.

                  warum wir eigentlich als by= Logic im Log ausgegeben? Die Änderung kommt doch von einem Plugin.

                  Item Smartmeter.LastReadingTime = 192842 Trigger caller=DLMS, OBIS=0.9.1, by=Logic

                  VG
                  Jürgen

                  Kommentar


                    #24
                    Zitat von callidomus Beitrag anzeigen
                    Du meinst wegen self._baudrate? Doch das funktioniert.

                    Bis bald

                    Marcus
                    Es ist nicht nur die baudrate sondern auch noch 3 andere Paramter die einen int zurückgeben statt eien string.

                    serialport = conf.get('serialport')
                    baudrate = str(conf.get('baudrate', 'auto'))
                    update_cycle = conf.get('update_cycle')
                    use_checksum = str(conf.get('use_checksum'))
                    reset_baudrate = str(conf.get('reset_baudrate'))
                    no_waiting = str(conf.get('no_waiting'))

                    Kommentar


                      #25
                      Hallo Jürgen,

                      das 'by' habe ich in git angepasst.
                      Die anderen drei Parameter werde auch korrekt behandelt.

                      Bis bald

                      Marcus

                      Kommentar


                        #26
                        Hi,
                        könntes du diese item und die Paramter noch in deiner Doku mal erklären? inkl der method add_method trigger. Das wird ja jetzt gebraucht so wie ich gesehen habe wenn man will das ein item die update methode ruft wenn es geändert wird. Habe ich in der doku nicht gefundne.

                        Code:
                        item.add_method_trigger(self.update_item)
                        Code:
                        item(data[1], by='Plugin', caller='DLMS', OBIS=data[0])
                        Viele Grüsse & Danke
                        Jürgen
                        Zuletzt geändert von heckmannju; 26.02.2017, 09:11.

                        Kommentar

                        Lädt...
                        X