Ankündigung

Einklappen
Keine Ankündigung bisher.

error saving config

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

    #31
    Hallo Hendrik,

    und lösch/verschieb bitte mal die 1w_items.conf.

    Und wenn alles nichts hilft, bitte mal die gesammte Config löschen. Also in der plugin.conf nur die visu drin lassen und alle Items löschen.
    Und dann Telnet auf 2424.

    Danke

    Marcus

    Kommentar


      #32
      Hallo,

      danke für Deine Tipps. Sie haben mich auf den richgigen weg gebracht.
      Nach 1h Trial&Error habe ich dies als den Bösewicht identifiziert:
      Code:
      #           eval = "sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i')"
      Jetzt muss es nicht an der Zeile selbst liegen... Es kann sein, dass es noch keine Daten für den gewünschten Zeitraum gibt, da ich den Rechner ja neu aufgesetzt habe.
      Dennoch ist das komisch.


      Hast du eine Idee?

      Gruß,
      Hendrik

      Kommentar


        #33
        Hallo Hendrik,

        Zitat von henfri Beitrag anzeigen
        Hast du eine Idee?
        leider Nein. Ich verstehe momentan den Zusammenhang noch nicht.
        Ich muss das mal nachstellen.

        Bis bald

        Marcus

        Kommentar


          #34
          Hallo Marcus,

          bist du da schon zu gekommen?

          Gruß,
          Hendrik

          Kommentar


            #35
            Hi Hendrik,

            es war ein Bug im SQLite Plugin. Ist in develop gefixed.

            Danke für die Geduld.

            Bis bald

            Marcus

            Kommentar


              #36
              error saving config

              Ich habe zu danken!

              Kommentar


                #37
                ist auch in master gefixed.

                bis bald

                Marcus

                Kommentar


                  #38
                  Was ist auch gefixt? Das du dich bedankst, obwohl ich zu danken habe?!

                  Wie auch immer:
                  Es funktioniert soweit, dass es nicht abstürzt.
                  Aber die Werte sind komisch:

                  Code:
                  sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i')
                  Das sollte der aktuelle Zählerstand , also z.B. 280, Minus dem Durchschnittswert vor einer Minute, richtig?
                  Wie kann der Wert negativ sein (das ist er hier).
                  Eigentlich will ich auch garnicht den Mittelwert vor 2 min über eine Minute, sondern den Wert vor genau einer Minute.
                  Das geht aber nicht, oder? Das wäre ein Feature-Request.

                  Gruß,
                  Hendrik

                  Kommentar


                    #39
                    Hi Hendrik,

                    ich fasse das noch einmal zusammen. Du hast einen Zählerstand der regelmäßig aktualisiert wird und stetig größer wird.

                    Code:
                    sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i')
                    wird z.T. negativ. Oder immer? Kannst Du das reproduzieren?
                    Kannst Du bitte etwas zu dem Updateintervall und die Größe sagen.
                    Ist 280 eine realistische Größenordnung?

                    Das scheint ein Bug zu sein den ich wirklich gerne fixen würde!

                    Davon abgesehen, könntest Du in Deinem Fall 'max' anstelle von 'avg' verwenden.
                    Das sollte ohne Probleme funktionieren.

                    Bis bald

                    Marcus

                    Kommentar


                      #40
                      Hi Marcus,
                      Zitat von mknx Beitrag anzeigen
                      ich fasse das noch einmal zusammen. Du hast einen Zählerstand der regelmäßig aktualisiert wird und stetig größer wird.
                      Richtig.

                      Code:
                      sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i')
                      wird z.T. negativ. Oder immer? Kannst Du das reproduzieren?
                      Kannst Du bitte etwas zu dem Updateintervall und die Größe sagen.
                      Ist 280 eine realistische Größenordnung?
                      Der tatsächliche Code ist:
                      Code:
                      "(sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i'))/60"
                      Und da habe ich Werte von 0.0014, -0.0246 und -0.05 in meinem Plot.


                      Im log finde ich:
                      Code:
                      1min = -4.98918420139 via
                      1min = -4.98919923889 via
                      1min = 0.00040461875 via 
                      1min = 0.000424542708332 
                      1min = 0.00040452361111 v
                      1min = 0.000404415277778 
                      1min = 0.000406177777777 
                      1min = 0.000406282986111 
                      1min = 0.000406467878313 
                      1min = 0.000406612847223 
                      1min = 0.000406839236112 
                      1min = 0.000406697569446 
                      1min = 0.000406807455987 
                      1min = 0.000406694791668 
                      1min = 0.000406818055555 
                      1min = 0.000406369616061 
                      1min = 0.000404819097221 
                      1min = 0.000404892013889 
                      1min = 0.000404140625001 
                      1min = 0.000403825694444 
                      1min = 0.000402888888889 
                      1min = 0.000402139236111 
                      1min = 0.000401755902778 
                      1min = 0.000401768651078 
                      1min = 0.000401571180555 
                      1min = 0.00040116875 via 
                      1min = 0.000400942361111 
                      1min = 0.000400499999999 
                      1min = 0.000400169719395 
                      1min = 0.000399573895991 
                      1min = 0.000399136805556 
                      1min = 0.000399154513889 
                      1min = 0.000398997863925 
                      1min = 0.000398852430556 
                      1min = 0.000399080208335 
                      1min = 0.000399153125 via
                      1min = 0.000399256887385 
                      1min = 0.000399360646313 
                      1min = 0.000399441606529 
                      1min = 0.000399733680555 
                      1min = 0.000399725000001 
                      1min = 0.000399934375 via
                      1min = 0.000400055902778 
                      1min = 0.000400368055555 
                      1min = 0.000400410416665 
                      1min = 0.000400404861111 
                      1min = 0.000400512152778 
                      1min = 0.000400308680555 
                      1min = 0.000399977777777 
                      1min = 0.000399263831714 
                      1min = 0.000398449305555 
                      1min = 0.000397736458333 
                      1min = 0.000397075673739 
                      1min = 0.000396314930556 
                      1min = 0.000395580902779 
                      1min = 0.000394855902778 
                      1min = 0.000394184722223 
                      1min = 0.00039333576389 v
                      1min = 0.000392763194444 
                      1min = 0.000392112214796 
                      1min = 0.000391431944444 
                      1min = 0.000390839930555 
                      1min = 0.000390241666667 
                      1min = 0.00038981076389 v
                      1min = 0.000389117013889 
                      1min = 0.000388679980334 
                      1min = 0.000388297222221 
                      1min = 0.000387866666668 
                      1min = 0.000387602777777 
                      1min = 0.000387341113759 
                      1min = 0.000382579166668 
                      1min = 0.000386966319445 
                      1min = 0.000386865972221
                      Hier fällt auf, dass der Wert direkt nach dem Start negativ ist, danach positiv.

                      Ich habe jetzt mal das smarthome/var/log/ Verzeichnis gegreppt. Da kommen auch einige negative Werte vor. Allerdings könnte es sein, dass dies immer nach dem Start von smarthome ist...
                      Ja, ich habe mal nachgeguckt: Es ist tatsächlich so.


                      Davon abgesehen, könntest Du in Deinem Fall 'max' anstelle von 'avg' verwenden.
                      Das sollte ohne Probleme funktionieren.
                      logisch, ja. Ist aber dennoch etwas umständlich zu denken. Meinst du nicht, eine Funktion zur Abfrage spezifischer Werte wäre gut?

                      Gruß,
                      Hendrik

                      Kommentar


                        #41
                        Hi Hendrik,

                        ich denke ich kann das Verhalten erklären.

                        Wenn SH.py gestartet wird und Du 'cache = yes' nicht spezifiziert hast, wird ein Num-Item mit 0 initialisiert.

                        Dein Zähler stand vor einer Minute bei ca. 299. Wobei die avg Funktion sehr unwahrscheinlich ein Integer liefern wird. Das wird sehr wahrscheinlich immer ein Float sein.

                        Dann wird aus:
                        (sh.Allgemein.Stromzaehler.Zaehlerstand()-sh.Allgemein.Stromzaehler.Zaehlerstand.db('avg', '2i', '1i'))/60"
                        (0 - 299)/60 = -4,99

                        Das geht dann solange bis der Zähler das erste Mal gesetzt wird. Dann hast Du:
                        (300 - 299,XXX)/60 = 0,00....

                        Was kannst Du machen?
                        1. cache verwenden
                        2. max anstelle von avg (dann hast Du die Nachkommastellen nicht mehr und rechnest primär mit Integren)
                        3. Den Stromverbrauch nicht in kW/h/s angeben, sondern in kW/h/h.

                        Was kann ich machen?
                        1. wenn 'sqlite = init' angeben ist, den letzen Wert aus der Datenbank holen und das Item damit initialisieren. Die Machbarkeit muss ich aber noch prüfen.

                        Zitat von henfri Beitrag anzeigen
                        Meinst du nicht, eine Funktion zur Abfrage spezifischer Werte wäre gut?
                        Ich denke, das würde Dir an dieser Stelle nicht wirklich helfen. Siehe oben.
                        Ein bisschen Hintergrundwissen zu dem SQLite Plugin. Es ist so ausgelegt das die Werte in unregelmäßigen Abständen in die DB geschrieben werden. Diese werden einmal täglich in der DB verdichtet. Je älter die Einträge, desto größer der Zeitraum in dem die Werte zusammengefasst werden (ähnlich RRD).

                        Wenn Du relativ junge Einträge hast, wie in Deinem Fall, dann hast Du natürlich den zu dem gewünschten Zeitpunkt aktiven Wert. Du müsstest Ihn mit db('avg', '1i', '1i') abfragen können (habe ich allerdings nicht probiert).
                        Ich überlege mir aber, ob ich evtl. ein Methode anbieten kann die die gewünschte Funktionalität bietet.

                        Bis bald

                        Marcus

                        Kommentar


                          #42
                          error saving config

                          Danke und zwar gleich drei mal!

                          Kommentar

                          Lädt...
                          X