Ankündigung

Einklappen
Keine Ankündigung bisher.

sqlite funktion avg gibt None zurück

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

    sqlite funktion avg gibt None zurück

    Hallo,
    Woran kann das liegen?

    sh.EG.Aussen.LichtWest.db('avg','2i')

    gibt gelegentlich den Wert None zurück. Jedenfalls wird das angezeigt wenn
    ich die Funktion in ein logger.info schreibe.

    if ((sh.EG.Aussen.LichtWest.db('avg','2i')>50.0)

    gibt dann einen Fehler. Ich habe zwei avg auf den gleiche Wert im Script,
    einmal mit 2i einmal mit 5i. Während 5i None zurück gibt, kommt bei 2i
    z.b. 125.5 wie es sein sollte. Ideen?

    Michael

    #2
    Hallo,

    zu wenig Information....

    Kein Log, keine Version

    Keine Antwort.

    Bis bald

    Marcus

    Kommentar


      #3
      Können wir gerne ändern:
      Code:
      admin@smarthome: smarthome.py --version
      SmartHome.py 1.0-5-g5300605
      So wird die Funktion aufgerufen:
      Code:
      #!/usr/bin/env python
      #
      if sh.EG.Flur.Treppe.Auto()==1:
       if sh.EG.Aussen.LichtWest.db('avg','5i')<sh.EG.Flur.Treppe.Schaltschwelle()-5:
        sh.EG.Flur.Treppe(True)
       if sh.EG.Aussen.LichtWest.db('avg','5i')>sh.EG.Flur.Treppe.Schaltschwelle()+5:
        sh.EG.Flur.Treppe(False)
      So wird LichtWest gemacht:
      Code:
         [[[LichtWest]]]
             type = num
             visu_acl = r
             sqlite = yes
             knx_dpt = 5
             knx_listen = 3/0/2
             knx_init = 3/0/2
      Und das kommt dabei raus:

      Code:
      2014-09-26 03:02:20 ERROR    Treppenlicht Logic: Treppenlicht, File: /usr/smarthome/logics/treppenlicht.py, Line: 7, Method: <module>, Exception: unorderable types: NoneType() < int()
      Traceback (most recent call last):
        File "/usr/smarthome/lib/scheduler.py", line 327, in _task
          exec(obj.bytecode)
        File "/usr/smarthome/logics/treppenlicht.py", line 7, in <module>
          if sh.EG.Aussen.LichtWest.db('avg','5i')<sh.EG.Flur.Treppe.Schaltschwelle()-5:
      TypeError: unorderable types: NoneType() < int()
      Die Logik wird per cron gestartet:

      Code:
       [Treppenlicht]
          filename=treppenlicht.py
          cycle=300
      Der Fehler passiert nicht immer. Wie man sieht wird die Logik alle 5 Minute aufgerufen. Hier dagegen mal die Timestamps aller Meldungen aus dem aktuellen smarthome.log

      Code:
      2014-09-26 03:02:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:07:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:12:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:17:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:22:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:27:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:32:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:37:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 03:42:18 ERROR    Treppenlicht Logic: ...
      2014-09-26 05:02:19 ERROR    Treppenlicht Logic: ...
      2014-09-26 05:22:18 ERROR    Treppenlicht Logic: ...
      2014-09-26 05:57:20 ERROR    Treppenlicht Logic: ...
      2014-09-26 06:17:22 ERROR    Treppenlicht Logic: ...
      2014-09-26 06:52:21 ERROR    Treppenlicht Logic: ...
      2014-09-26 12:22:24 ERROR    Treppenlicht Logic: ...
      2014-09-26 14:02:25 ERROR    Treppenlicht Logic: ...
      Hardware Raspberry Pi. Installiert mit eurem Image.
      Browser: Explorer unter WIN7
      Das mit dem Debug mode habe ich mal probiert. Ich habe den Fehler allerdings nicht erwischt wie er halt nur recht selten, wie man sieht
      meisst, aber nicht immer, nachts auftritt. Könnte es was mit Null zu tun haben? Die tritt nachts häufiger auf als am Tage.
      Bitte sagt Bescheid wenn noch Informationen fehlen.

      Michael

      Kommentar


        #4
        Hallo Michael,

        ok, das ist das 1.0 Release.
        Ich habe mir den Code noch mal angesehen, konnte aber auf den ersten Blick keine Stelle identifizieren die für den Fehler verantwortlich ist. (Der Fehler liegt auf jeden Fall im Plugin).

        Ich habe das Plugin allerdings grundlegend überarbeitet, es sollte insgesamt wesentlich besser sein.

        Wenn Du das Plugin gegen die develop Version tauscht und immer noch Probleme hast, dann beseitige ich die. Bei dem master-Plugin möchte ich hier nicht mehr hinlassen.
        Mehr Informationen zu dem neuen Plugin findest Du unter: https://knx-user-forum.de/smarthome-...ase-1-1-a.html

        P.S. Und danke für die aufbereiteten Informationen, wenn es immer so wäre würde der Support schneller gehen.

        Bis bald

        Marcus

        Kommentar


          #5
          Hallo,
          Ich habe das sqlite plugin durhc das neue mit der _version=3 am
          Anfang ersetzt. War jetzt nichjt so der Bringer :-)

          Code:
          Init SmartHome.py 1.0-5-g5300605+
          2014-09-27 20:41:46 INFO     Main         Start SmartHome.py 1.0-5-g5300605+
          2014-09-27 20:41:46 INFO     Main         Init Scheduler
          2014-09-27 20:41:46 INFO     Main         Init Plugins
          2014-09-27 20:41:50 INFO     Main         Init UZSU
          2014-09-27 20:41:50 INFO     Main         Init Items
          2014-09-27 20:41:50 ERROR    Main         Item DG.Wohnen.Temperatur: problem creating: ()
          2014-09-27 20:41:50 ERROR    Main         Item env.core.memory: problem creating: ()
          2014-09-27 20:41:50 ERROR    Main         Item env.core.threads: problem creating: ()
          2014-09-27 20:41:50 ERROR    Main         Item env.core.garbage: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item env.system.load: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item EG.Aussen.LichtOst: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item EG.Aussen.LichtSued: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item EG.Aussen.LichtWest: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item EG.Wintergarten.Temperatur: problem creating: ()
          2014-09-27 20:41:51 ERROR    Main         Item EG.Wintergarten.SollwertFensterAuf: problem creating: ()
          2014-09-27 20:41:51 INFO     Main         Start Plugins
          2014-09-27 20:41:51 INFO     Main         Start Logics
          2014-09-27 20:42:01 ERROR    Treppenlicht Logic: Treppenlicht, File: /usr/smarthome/logics/treppenlicht.py, Line: 7, Method: <module>, Exception: 'Item' object has no attribute 'LichtWest'
          Traceback (most recent call last):
            File "/usr/smarthome/lib/scheduler.py", line 327, in _task
              exec(obj.bytecode)
            File "/usr/smarthome/logics/treppenlicht.py", line 7, in <module>
              if sh.EG.Aussen.LichtWest.db('avg','5i')<sh.EG.Flur.Treppe.Schaltschwelle()-5:
          AttributeError: 'Item' object has no attribute 'LichtWest'
          Ich schau morgen nochmal rein was schief gelaufen ist. Gute Nacht,

          MIchael

          Kommentar


            #6
            Hallo Michael,

            poste doch mal ein Debug-Log, das Log von Dir sieht komisch aus.

            Bis bald

            Marcus

            Kommentar


              #7
              Hallo,
              Ich habs eingepackt.
              Ich habe das heute nochmal probiert:
              Smarthome.py gestoppt
              Den Ordner sqlite in plugins umbenannt in sqlite_old
              Den Ordner sqlite aus dem develop git nach plugins kopiert
              Smarthome gestartet. Dabei kommt dann das raus.
              Mach is irgendwas falsch oder sollte ich einfach mal smarthome.py auch
              aus develop nehmen? Danke für die Hilfe,

              MIchael
              Angehängte Dateien

              Kommentar


                #8
                Ich bins nochmal :-)
                Ich habe mal versuchsweise item.py in lib auch getauscht. Dann ist der
                Fehler mit den "Problem creating..." weg. Der anderere bleibt allerdings:

                Code:
                Init SmartHome.py 1.0-5-g5300605+
                2014-09-28 21:04:30 INFO     Main         Start SmartHome.py 1.0-5-g5300605+
                2014-09-28 21:04:30 INFO     Main         Init Scheduler
                2014-09-28 21:04:30 INFO     Main         Init Plugins
                2014-09-28 21:04:38 INFO     Main         Init UZSU
                2014-09-28 21:04:38 INFO     Main         Init Items
                2014-09-28 21:04:40 INFO     Main         Start Plugins
                2014-09-28 21:04:40 INFO     Main         Start Logics
                2014-09-28 21:04:51 ERROR    Treppenlicht Logic: Treppenlicht, File: /usr/smarthome/logics/treppenlicht.py, Line: 7, Method: <module>, Exception: unorderable types: NoneType() < int()
                Traceback (most recent call last):
                  File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                    exec(obj.bytecode)
                  File "/usr/smarthome/logics/treppenlicht.py", line 7, in <module>
                    if sh.EG.Aussen.LichtWest.db('avg','5i')<sh.EG.Flur.Treppe.Schaltschwelle()-5:
                TypeError: unorderable types: NoneType() < int()
                2014-09-28 21:04:55 ERROR    Rollo        Logic: Rollo, File: /usr/smarthome/logics/rollo.py, Line: 9, Method: <module>, Exception: unorderable types: NoneType() > float()
                Traceback (most recent call last):
                  File "/usr/smarthome/lib/scheduler.py", line 327, in _task
                    exec(obj.bytecode)
                  File "/usr/smarthome/logics/rollo.py", line 9, in <module>
                    if ((sh.EG.Aussen.LichtWest.db('avg','2i')>sh.OG.Flur.RolloPos.Schaltschwelle()+5.0) and (sh.OG.Flur.RolloPos()<50)):
                TypeError: unorderable types: NoneType() > float()
                Die Datei smarthome.db schwillt von 380k auf 580k an, enthält aber
                keine Daten mehr. Alle Plots sind leer. Hab ein Backup :-) Ich bau wieder
                auf die alte um. Gute Nacht,

                MIchael

                Kommentar


                  #9
                  Hallo,
                  Hab mal in die db geschaut:
                  Code:
                  2014-09-29 16:03:04 ERROR    Treppenlicht Logic: ...
                  Das müsste in etwa die markierte Stelle im Anhang sein wenn ich die Zeiten
                  richtig umgerechnet habe. Ich kann da nichts finden. Auch der Plot zeigt um
                  16:03 keine Auffälligkeit.
                  Ich bin wieder auf der alten db.

                  Michael
                  Angehängte Dateien

                  Kommentar


                    #10
                    Hallo Michael,

                    ok, ich vermute ein Problem bei der Migration der DB.
                    Das kann ich aber so nicht nachvollziehen.

                    Bis bald

                    Marcus

                    Kommentar


                      #11
                      Zitat von mknx Beitrag anzeigen
                      Hallo Michael,
                      ok, ich vermute ein Problem bei der Migration der DB.
                      Vermutlich. Das ist aber hier nicht das Problem. Wenn da bei der Umstellung
                      was verloren geht ist mir das erstmal egal. So viel Tolles steht da nicht drin.

                      Das Problem ist die Rückgabe von None der Funktion avg. Das passiert bei der
                      neuen Version gleichermassen.
                      Es ist vermutlich ein Problem mit gleichzeitigem Zugriff auf das gleiche
                      Item. Ich habe zwei Logiken welche auf das gleiche Item zugreifen.

                      sh.EG.Aussen.LichtWest.db('avg','5i')

                      Beide werden mit cron=300 gestartet. Das scheint das Problem zu
                      verursachen. Ich habe beide Logiken zu einer zusammengefasst was ja
                      auch Sinn macht. Seither ist Ruhe.

                      Michael

                      Kommentar


                        #12
                        Hallo Michael,

                        schön das es für Dich funktioniert.

                        Deine Überlegungen treffen aber leider nicht zu. Es darf keinen Unterschied machen wenn mehrere Items parallel abgefragt werden. Die Logiken (mit cycle) werden beim Start etwas entzerrt, sodas zwei Logiken mit cycle=X wahrscheinlich nicht zur selben Zeit laufen.

                        Wenn Du noch mal Probleme haben solltest, melde Dich.

                        Bis bald

                        Marcus

                        Kommentar

                        Lädt...
                        X