Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - SQLite db aus Logic auslesen

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

    - √ - SQLite db aus Logic auslesen

    Hallo

    besteht die Möglichkeit auf die SQLite db aus einer Logic zuzugreifen ?
    Würde gern die Regenmänge (Wippenschläge) pro Tag ausrechnen.
    Dafür brauche ich die Wippenschläge nach 0 Uhr und die aktuellen Wippenschläge.

    mit

    Code:
    now_date = datetime.date.today()
    now_date_ts = int(mktime(now_date.timetuple())) * 1000
    berechne ich den Timestamp für den aktuellen Tag.

    Grüße Stromie

    #2
    Hallo,

    die Doku hast Du schon gelesen, oder?

    Bis bald

    Marcus

    Kommentar


      #3
      Wenn du
      sh.item.db(funktion,start, end='now')

      meinst ja, das hilft aber nicht so richtig weiter.

      Würde gern sowas wie

      = self.fetchone("SELECT val from history WHERE time > '{0}' ORDER BY time"

      machen. Aber der kennt das in der Logic nicht.

      Grüße Stromie

      Kommentar


        #4
        Hallo,

        doch, natürlich hilft das.
        Die Funktion sum liefert das Benötigte. Du musst halt als Start z.B. die Minuten seit Mitternacht angeben.

        Alternativ könntest Du auch fetchone verwenden. Das ist aber nicht offiziell dokumentiert/freigegeben und unterliegt evtl. Änderungen die Deine Logik kaputt machen. Generell kann man die Methoden der Plugin (Klassen) über sh.PLUGIN.METHODE() ansprechen.

        Bis bald

        Marcus

        Kommentar


          #5
          Zitat von mknx Beitrag anzeigen
          Hallo,

          doch, natürlich hilft das.
          Die Funktion sum liefert das Benötigte. Du musst halt als Start z.B. die Minuten seit Mitternacht angeben.

          Alternativ könntest Du auch fetchone verwenden. Das ist aber nicht offiziell dokumentiert/freigegeben und unterliegt evtl. Änderungen die Deine Logik kaputt machen. Generell kann man die Methoden der Plugin (Klassen) über sh.PLUGIN.METHODE() ansprechen.

          Bis bald

          Marcus
          Da kam bei mir ein Fehler. Werd es nochmal probieren.

          Danke

          Grüße Stromie

          Kommentar


            #6
            Zitat von mknx Beitrag anzeigen
            Das ist aber nicht offiziell dokumentiert/freigegeben und unterliegt evtl. Änderungen die Deine Logik kaputt machen.
            Wie jetzt zum Beispiel, ich habe sie in _fetchone umbenannt. Ich will damit klar machen, dass es sich um eine private Methode handelt.

            Bis bald

            Marcus

            Kommentar


              #7
              Zitat von mknx Beitrag anzeigen
              Wie jetzt zum Beispiel, ich habe sie in _fetchone umbenannt. Ich will damit klar machen, dass es sich um eine private Methode handelt.

              Bis bald

              Marcus
              ne in meiner Version heist die schon noch fetchone(...
              habs aber jetzt mit sh.item.db(funktion,start, end='now') gemacht, geht auch .

              Danke

              Grüße Stromie

              Kommentar


                #8
                Ich glaube es passt noch ganz gut hier rein:
                Wenn ich jeden Tag einen Wert in die sql schreibe (Pelletmenge in kg verbrannt), wie berechne ich dann die Pelletmenge pro Tag? Also Pellet(gestern) - Pellet(heute)?

                Danke und Gruß
                Derzeit zwischen Kistenauspacken und Garten anlegen.
                Baublog im Profil.

                Kommentar


                  #9
                  Ich habe es so gemacht

                  Code:
                  t = datetime.datetime.now()
                  start_t = str(int(t.hour) * 60 + int(t.minute)) + 'i'
                  wippen_start = sh.WP.Kombi_Wippen.db('max', start_t,start_t)
                  regen = (float(int((wippe_aktuell) - int(wippen_start))) * 0.295)
                  Den aktuellen Wert hole ich direkt uas dem Item.

                  Ich will aber als nächstes die Regenmenge in die Datenbank schreiben, da wird die Auswertung einfacher.

                  Grüße Stromie

                  Kommentar


                    #10
                    Marcus, geht das einfacher oder ist es so?
                    Also Differenz über 24h auslesen.

                    Gruß
                    Derzeit zwischen Kistenauspacken und Garten anlegen.
                    Baublog im Profil.

                    Kommentar


                      #11
                      Hallo Matthias,

                      es gibt viele Möglichkeiten. Welche einfacher ist, liegt im Auge des Betrachters.

                      Probiere es doch einfach aus.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        Ich bin nicht der Python Freak. Fürs FAQ wäre ein empfohlener Weg sicherlicht gut. Gerade für Leute wie mich, die nicht die 100.000 Möglihckeiten von sh.py überschauen... Das hat nicht nur Vorteile
                        Derzeit zwischen Kistenauspacken und Garten anlegen.
                        Baublog im Profil.

                        Kommentar


                          #13
                          Hi

                          in meinen Fall speicher ich jetz die Regenmenge bei jeder Änderung der Wippenschläge als Menge in die Datenbank. Das hat den vorteil das man mit sum arbeiten kann.
                          Damit werden dann die Einzelmengen einfach mit Boardmitteln summiert.

                          grüße Stromie

                          Kommentar


                            #14
                            Ok, das verstehe ich.
                            Bei mir gibt es einen Zähler (der hat mal mit 0 begonnen und ist nun bei 12000 kg). Den kann ich auch regelmaessig in die DB schreiben, verstehe bis dato aber nicht, wie ich berechnen kann, was die letzten 24h/4 Wochen/365 Tage so verbraucht wurde...

                            Gruß
                            Derzeit zwischen Kistenauspacken und Garten anlegen.
                            Baublog im Profil.

                            Kommentar


                              #15
                              Hallo,

                              ich habe leider keine Zeit gerade ausführlich zu antworten, aber guck mal hier:
                              https://knx-user-forum.de/smarthome-...t=stromzaehler

                              So sieht's hier jetzt aus:
                              Code:
                                      [[[Momentanleistung_1min]]]
                                          name = Momentanleistung_1min
                                          type = num
                                          sqlite = yes
                                          knx_dpt = 14
                                          knx_send = 6/7/2
                                          eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1i', '1i'))*60.0*1000.0
                                          eval_trigger=Allgemein.Stromzaehler.Counter
                                          sv_widget={{ plot.period('p998dd71', 'item', 'avg', '2h', 0, 0,3000, ''    , '', '','area') }}
                                          visu=yes
                                      [[[Leistungsdurchschni24h]]]
                                          name = Last
                                          type = num
                                          sqlite = yes
                                          knx_dpt = 14
                                          eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()-sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1d', '1d'))/24*1000
                                          eval_trigger=Allgemein.Stromzaehler.Counter
                                      sv_widget={{ plot.period('p998kk71', 'item', 'avg', '720h') }}
                                      visu=yes

                              Kommentar

                              Lädt...
                              X