Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlermeldung bei SQLITE Datenbabfrage vermeiden 'NoneType'

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

    #16
    Hallo,
    So wie ich das verstanden habe ist der letzte Wert nicht in der DB sondern in einem Zwischenspeicher im Plugin.
    Erst wenn der Wert sich ändert wird er in die DB geschrieben und der neue Wert wandert in den Zwischenspeicher.
    Damit wird verhindert das unnütze gleiche Werte in der DB stehen. Wenn dein Wasserwert 68 Stunden alt ist, ist er
    vermutlich seit 68 Stunden konstant.
    Die Abfrage 10i schlägt fehl, weil der Wert halt fehlt. Den Bug hatte ich schon vor Jahren gemeldet und mknx
    hat noch ein paar Zeilen hinzugefügt die das Problem beheben sollen. Siehe weiter oben. Das hat bei mir aber
    auch nicht immer funktioniert. Ich habe bis heute nicht raus bekommen warum.
    Ich habe das bei meinem Regensensor anders gelöst. Ich ändere den Wert über den Scheduler alle fünf Minuten
    um 0,001 oder so. Damit erzwinge ich ein Schreiben des Wertes in die DB. Nicht elegant, geht aber.
    Die DB wird halt größer.
    Mein Ziel ist weiterhin das so zum Laufen zu bringen wie mknx es gedacht hat. Derzeit mache ich alllerdings
    nix daran.

    Michael
    Zuletzt geändert von MichaelBu; 21.06.2017, 07:17.

    Kommentar


      #17
      Hi,

      ich bekomme folgende Fehlermeldung:

      Code:
      2017-06-21  00:00:00 WARNING  HOME.heating.central.hours.heating.yesterday-eval Item HOME.heating.central.hours.heating.yesterday: problem evaluating sh.HOME.heating.central.hours.heating() - sh.HOME.heating.central.hours.heating.db('max', '1d', '1d'): unsupported operand type(s) for -: 'float' and 'NoneType'
      Anzug der Config:
      Code:
                                              [[[[[[yesterday]]]]]]
                                                      name = Betriebsstunden gestern
                                                      type = num
                                                      visu_acl = r
                                                      sqlite = yes
                                                      crontab = 0 0 * * = 1
                                                      eval = sh.HOME.heating.central.hours.heating() - sh.HOME.heating.central.hours.heating.db('max', '1d', '1d')

      Kommentar


        #18
        Zitat von MichaelBu Beitrag anzeigen
        Ich ändere den Wert über den Scheduler alle fünf Minuten
        um 0,001 oder so. Damit erzwinge ich ein Schreiben des Wertes in die DB. Nicht elegant, geht aber.
        Die DB wird halt größer.
        Habe diese Idee bei mir gleich ausprobiert und tatsächlich wird mit einer Variation von 0.001 der Wert nun sauber in die Datenbank eingetragen. Danke für den Hinweis !

        Kommentar


          #19
          MichaelBu manhartm

          Hallo,
          könntet ihr den Code oder den Ausschnitt posten, mit dem ihr den Wert um 0,001 erhöht um ein Schreiben in die DB zu erzwingen?
          DANKE

          Kommentar

          Lädt...
          X