Ankündigung

Einklappen
Keine Ankündigung bisher.

(neuer) Fehler im Plugin

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

    [Codebeispiel] (neuer) Fehler im Plugin

    Hat sich irgendwas im Handling der Plugins geändert?
    Ich bekomme eine für mich nicht nachvollziehbare Fehlermeldung beim ebus-Plugin:


    Hier die item.conf:
    Code:
    [ebusd]
        [[mode]]
            type = num
            knx_dpt = 5
            knx_send = 8/6/100
            knx_listen = 8/7/100
            knx_reply = 8/6/100
            comment = Heizkreis - Betriebsart
            ebus_type = "set"
            ebus_cmd = "cir2 mode"
    Mal gehts (scheinbar nicht der Erstaufruf bzw. immer wenn sich das item nicht ändert):
    Code:
    2013-08-30 21:19:57,091 eBus         INFO     eBus: connected to localhost:8888 -- __init__.py:connect:58
    2013-08-30 21:19:57,092 eBus         DEBUG    eBus: REQUEST: get mv boiler_temp temp -- __init__.py:_request:77
    2013-08-30 21:19:57,215 eBus         DEBUG    eBus: ANSWER: 42.125000  -- __init__.py:_request:80
    2013-08-30 21:19:57,217 eBus         DEBUG    eBus: request: get mv boiler_temp temp >>><<< answer: 42.125000  -- __init__.py:_request:81
    2013-08-30 21:19:57,220 eBus         INFO     eBus: disconnected -- __init__.py:close:67
    2013-08-30 21:19:57,221 eBus         DEBUG    eBus: Parameter/Refresh 3/3 -- __init__.py:refresh_attributes:115

    und mal nicht:
    Code:
    2013-08-30 21:18:45,153 eBus         INFO     eBus: connected to localhost:8888 -- __init__.py:connect:58
    2013-08-30 21:18:45,155 eBus         DEBUG    eBus: REQUEST: get mv boiler_temp temp -- __init__.py:_request:77
    2013-08-30 21:18:45,280 eBus         DEBUG    eBus: ANSWER: 42.125000  -- __init__.py:_request:80
    2013-08-30 21:18:45,281 eBus         DEBUG    eBus: request: get mv boiler_temp temp >>><<< answer: 42.125000  -- __init__.py:_request:81
    2013-08-30 21:18:45,282 eBus         INFO     eBus: disconnected -- __init__.py:close:67
    2013-08-30 21:18:45,283 eBus         DEBUG    eBus: Parameter/Refresh 3/3 -- __init__.py:refresh_attributes:115
    2013-08-30 21:18:45,285 eBus         DEBUG    ebusd.boiler = 42.125 via eBus refresh -- item.py:_update:219
    2013-08-30 21:18:45,288 eBus         ERROR    Problem running <bound method eBus.update_item of <plugins.ebus.eBus instance at 0x8a049ec>>: update_item() takes at most 4 arguments (5 given) -- item.py:_update:230
    Das Plugin liegt hier:
    https://github.com/mknx/smarthome/bl...us/__init__.py

    Grüße
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    (neuer) Fehler im Plugin

    Zumindest im develop hat update_item bei anderen Plugins noch einen fünften Parameter 'dest'. Dein ebus Branch ist schon ziemlich veraltet, du solltest mal die Änderungen vom develop nachziehen. Änder das update_item wie folgt ab und es sollte gehen:

    Code:
        def update_item(self, item, caller=None, source=None, dest=None):
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Ich hatte lediglich die __init.py__ aus dem branch nach master gezogen.
      Ich konnte jetzt nichts zu 'dest' finden, wofür ist das gut und müssten andere Plugins nicht das gleiche Problem haben? Den branch würde ich (nach Überarbeitung + Doku) dann eh nach develop ziehen wollen.
      So richtig verstehe ich aber immer noch nicht warum das auf die Nase fällt, oder ist es das knx-plugin welches die 'dest' mitgibt und mein plugin in dem Falle noch nichts damit anfangen konnte?

      btw.:
      Gibt es die Möglichkeit bestimmte Parameter von items im Parent zu definieren? So dass man z.B. nur im Parent "enforce_updates" o.ä. definiert und diese sich vererben?
      Umgezogen? Ja! ... Fertig? Nein!
      Baustelle 2.0 !

      Kommentar


        #4
        Hi Mirko,

        für das KNX-Plugin wurde der Item() Aufruf um dest erweitert.
        Damals hatte ich alle Plugins in Master/develop geändert und den Entwicklern eine Mail geschrieben. Siehe Mail vom 31.05.
        Die update Methode der Plugins wird seit dem auch mit dem dest aufgerufen.
        Wer die nicht erwartet, fliegt auf die Nase.

        Eine Vererbung von Attributen wird nicht unterstützt.

        Bis bald

        Marcus

        Kommentar


          #5
          (neuer) Fehler im Plugin

          Das hat Marcus mal eingeführt, um das Ziel (destination) zu bestimmen. Keine Ahnung für was das gebraucht wird. Das KNX Plugin sendet das glaub mit. Aber generell solltest du nicht einzelne Files von einem anderen branch holen, wenn du nicht genau weißt, warum du das tust. Gerade bei so lange auseinander gelaufenen branches ist die Wahrscheinlichkeit hoch, dass es irgendwo Abhängigkeiten gibt.

          EDIT: Marcus war schneller
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            Besten Dank euch beiden ... ich hoffe ja irgendwann damit eh im Master zu sein
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar

            Lädt...
            X