Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Verständnisproblem bei plot

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

    [Codebeispiel] - √ - Verständnisproblem bei plot

    Hallo,
    mit der neuen Hilfe zur SmartVisu smartVISU Kurzanleitung v2.7 erweckt es den Anschein, dass
    für die Darstellung eine GA abgefragt wird, z.B. der Aktuelle Stromverbrauch.

    Ist das tatsächlich so, oder wird tatsächlich eine rrd abgefragt?

    Danke und Gruß,
    Lio

    #2
    Nee, wenn Du genau hinsiehst, dann liest Du bei der Kurzanleitung Zeilen bei den Items sqlite = yes. Das führt dazu, das in der SQLite3 Datenbank vom Smarthome.py ein Eintrag generiert wird mit Datum, Itemname und Itemdaten. Aus dieser Datenbank werden dann die Daten für die Plots aufbereitet.

    Gruß,
    Bernd

    Kommentar


      #3
      Danke Bernd,
      das hatte ich übersehen.
      Reicht die Ergänzung im ITEM aus, oder muss die Datenbank noch erstellt werden?
      Sollte danach ein Ergbnis sofort zu sehen sein, oder erst nach einer gewissen Zeit?
      Zur Zeit gibt es nur den den leeren Block, es ist nichts drinnen. Kein Diagramm, keine Linie.

      Danke und Grüße,
      Lio

      Kommentar


        #4
        Hi Lio,

        die Ergänzung reicht aus. Ein Datenbank mußt Du nicht erstellen. Datenbankfunktionen sind im Python bereits für Sqlite integriert.

        Im Plot werden die erst dann gezeigt, wenn auch ein Wert eingetroffen und geloggt ist.

        Gruß,
        Bernd

        Kommentar


          #5
          Danke Bernd,

          ist es normal, dass der Block leer ist?

          Könntest Du mir den Pfad der Datenbank nennen, dann könnte ich schauen, ob darin zumindest die Einträge sind?

          Danke und GRuß,
          Lio

          Kommentar


            #6
            /usr/smarthome/var/db mit smarthome.db

            Du kannst auf shellebene (z.B. Putty) auch mal in das Verzeichnis wechseln und Dir das via SQLite anzeigen lassen

            cd /usr/smarthome/var
            sqlite3 smarthome.db


            ---- Command Prompt der SQLite3 erscheint ----
            Dort werden Kommandos mit . davor eingegeben

            .tables zeigt Tabellen an:
            --> ergibt z.B.: common history

            .dump history

            Dann bekommst Du die Tabelle history aufgelistet die die ganzen Telegramme beinhaltet.

            Gruß,
            Bernd

            Kommentar


              #7
              ah kann es sein, dass sqlite nicht läuft?
              Nach Eingabe von "sqlite3 smarthome.db":
              Code:
              -bash: sqlite3: command not found
              Danke und Gruß,
              Lio

              Kommentar


                #8
                vielleicht gibt es sqlite3 im Pi nicht "ab Werk"?

                probiere mal
                sudo apt-get install sqlite3

                Gruß,
                Bernd

                Kommentar


                  #9
                  Die Datenbank liegt aber im Verzeichnis!

                  Die Meldung:
                  Code:
                  /var/www/smartvisu/pages/quad$ sudo apt-get install sqlite3
                  Reading package lists...
                  Building dependency tree...
                  E: Unable to locate package sqlite3

                  Kommentar


                    #10
                    [QUOTE=lio123;374288]Die Datenbank liegt aber im Verzeichnis!
                    Ok. Ich habe nun nicht besonders viel mit Linux am Hut, aber der Fehler
                    Code:
                    Reading package lists...
                    Building dependency tree...
                    E: Unable to locate package sqlite3
                    würde mich folgendes probieren lassen:

                    Code:
                    sudo apt-get update
                    Gruß,
                    Bernd

                    Kommentar


                      #11
                      Ja, nach dem Update, konnte ich auch sqlite installieren.
                      Nach einer Stunde nach Neustart nun das:

                      Code:
                      sqlite> .tables
                      sqlite> .dump history
                      PRAGMA foreign_keys=OFF;
                      BEGIN TRANSACTION;
                      COMMIT;
                      sqlite>
                      hier die page:
                      Code:
                          </div>
                          
                          <div class="block" style="width:100%">
                              <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                                  <div data-role="collapsible" data-collapsed="false">
                                      <h3>Verlauf Stromverbrauch</h3>
                                      {{ plot.period('plotHz', 'Daten.HZ.Verbrauch', 'avg', '15h', 'line', 'Hausstrom', '#f0f', '', '', '1h') }}
                                  </div>
                              </div>
                          </div>
                      und hier die Item:

                      Code:
                      [Daten]
                          [[HZ]]
                              [[[Verbrauch]]]
                                  type = num
                                  knx_dpt = 9
                               sqlite = yes           
                                knx_listen = 14/7/50
                                  visu = yes

                      Kommentar


                        #12
                        Moin,

                        Code:
                        sqlite> .tables
                        sqlite> .dump history
                        PRAGMA foreign_keys=OFF;
                        BEGIN TRANSACTION;
                        COMMIT;
                        sqlite>
                        sieht recht leer aus Hast Du auch sicher sqlite3 smarthome.db eingegeben?

                        Code:
                        [Daten]
                            [[HZ]]
                                [[[Verbrauch]]]
                                    type = num
                                    knx_dpt = 9
                                    sqlite = yes           
                                    knx_listen = 14/7/50
                                    visu_acl = rw
                        visu = yes gibt es nicht mehr...

                        Es dauert IMHO 300 sek. bis ein Wert in der Datenbank gesichert wird und Du ihn sehen kannst.
                        Solltest Du zuviele Einträge haben, kannst Du auch in der SQLite eingeben:

                        Code:
                        select * from history where item ="Daten.HZ.Verbrauch";
                        Gruß,
                        Bernd

                        Kommentar


                          #13
                          grad mal son zwischenbericht:
                          Code:
                          INSERT INTO "history" VALUES(1391360611504,'Daten.HZ.Verbrauch',0.0,0.0,0.0,0.0);
                          INSERT INTO "history" VALUES(1391360610890,'env.core.memory',14323712.0,14323712.0,14323712.0,1.0);
                          INSERT INTO "history" VALUES(1391360611256,'env.core.garbage',0.0,0.0,0.0,0.0);
                          INSERT INTO "history" VALUES(1391360611073,'env.core.threads',7.0,7.0,7.0,1.0);
                          INSERT INTO "history" VALUES(1391360621426,'env.system.load',0.0995861772441319,0.0599869025735294,0.1,1.0);
                          INSERT INTO "history" VALUES(1391360621484,'Daten.HZ.Verbrauch',1391.21144257405,0.0,1891.84,0.913571409546133);
                          INSERT INTO "history" VALUES(1391360621536,'env.core.memory',13991179.1280631,13987840.0,14323712.0,1.0);
                          INSERT INTO "history" VALUES(1391360621586,'env.core.garbage',0.0,0.0,0.0,0.0);
                          INSERT INTO "history" VALUES(1391360621639,'env.core.threads',7.0,7.0,7.0,1.0);
                          INSERT INTO "history" VALUES(1391360921265,'env.system.load',0.0505164403800681,0.05,0.1,1.0);
                          INSERT INTO "history" VALUES(1391360921835,'Daten.HZ.Verbrauch',1516.31742113636,1387.52,1602.56,1.0);
                          INSERT INTO "history" VALUES(1391360921887,'env.core.memory',14028462.5950889,13987840.0,14028800.0,1.0);
                          INSERT INTO "history" VALUES(1391360922128,'env.core.garbage',0.0,0.0,0.0,0.0);
                          INSERT INTO "history" VALUES(1391360922180,'env.core.threads',7.0,7.0,7.0,1.0);
                          denk, das sieht gut aus?

                          Kommentar


                            #14
                            Hi Lio,

                            denke ich auch. Das einzige was jetzt stört sind nur die Nullwerte. Aber das ist eher eine Sache für die Programmierer. Ich fände es auch nett nur die Daten zu loggen, wie sie auch tatsächlich reingekommen sind. In der Form wie es jetzt ist, ist das eine Mini RRD mit avg, min und max Werten für einen vorgegebenen Zeitraum. Wenn ich exakt schauen will, wie eine GA zu einem bestimmen Zeitpunkt war, dann ist das dafür nicht geeignet.

                            Gruß,
                            Bernd

                            PS: Mach noch 'nen Haken als gelöst...

                            Kommentar


                              #15
                              Also da läuft's zumindest ständig,

                              jedoch bleibt der Block immer noch leer.
                              Sollte da nicht zumindest das Diagramm zu sehen sein?

                              Danke und Gruß,
                              Lio

                              Kommentar

                              Lädt...
                              X