Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: DatabaseAddOn - Erweitere Testphase

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

    #16
    Zitat von Maexle Beitrag anzeigen
    der PyPiCheck schreibt nur "Loading"
    Und was steht im Log?

    Kommentar


      #17

      2022-03-25 10:44:59 CRITICAL lib.smarthome Python package requirements for configured plugins are not met and unable to install those requirements
      2022-03-25 10:44:59 CRITICAL lib.smarthome Do you have multiple Python3 Versions installed? Maybe PIP3 looks into a wrong Python environment. Try to configure pip_command in etc/smarthome.yaml
      2022-03-25 10:44:59 CRITICAL lib.smarthome Aborting
      2022-03-25 10:45:02 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.9.1-master (8133e714) --------------------
      2022-03-25 10:45:02 NOTICE lib.smarthome Running in Python interpreter 'v3.9.2 final', from directory /usr/local/smarthome
      2022-03-25 10:45:02 NOTICE lib.smarthome - on Linux-5.10.92-v7+-armv7l-with-glibc2.31 (pid=2326)
      2022-03-25 10:45:06 ERROR lib.shpypi test_requirements: 'sqlvalidator' not installed, any version needed
      2022-03-25 10:45:06 WARNING lib.shpypi Installing plugin requirements for the current user, please wait...
      2022-03-25 10:45:06 WARNING lib.shpypi > using PIP command: '/usr/bin/pip3'
      2022-03-25 10:45:06 ERROR lib.shpypi /bin/sh: 1: /usr/bin/pip3: not found

      gelb markiert --> keine Ahnung was ich da tun soll...


      PyPi Check
      myst-parser * fehlt * --
      sphinx 3.1 fehlt 4 --
      sphinx-rtd-theme 1.0 fehlt * --
      sphinx-tabs * fehlt * --
      beautifulsoup4 4.1.0 fehlt * --
      pytest 3.6.0 fehlt * --

      Kommentar


        #18
        Steht doch da:
        Do you have multiple Python3 Versions installed? Maybe PIP3 looks into a wrong Python environment. Try to configure pip_command in etc/smarthome.yaml
        Du kannst das Paket nicht installieren, weil Python evtl. an der falschen Stelle für PIP sucht.
        Also schreibst Du in Deine smarthome.yaml eine Zeile mit pip_command: "python3 -m pip" rein.

        PS: Du bist Meister in der Kunst des weglassens, oder?

        Pakete für den Bau der Dokumentation bezieht sich auf die vier obersten Einträge Deiner Tabelle und

        Pakete für die Testsuite bezieht sich auf die letzten zwei Zeilen.

        Das stand nicht über der Tabelle aber diese Pakete sind irrelevant für den Betrieb von SHNG sondern nur für die Spezialzwecke der Dokumentation und der Tests.
        Zuletzt geändert von bmx; 25.03.2022, 14:33.

        Kommentar


          #19
          bmx pip... in die smarthome.yaml eingetragen --> jetzt funktioniert die Sache.


          ich habe bei einer Temperatur das Beispiel eingefügt --> habe ich das richtig verstanden? Da alle vier Items im WebIF vom Addon angezeigt werden denke ich ja.
          Allerdings haben alle den Wert ".0.0 " ich denke es muss erste "ein Tag vergehen" bis was rauskommt, richtig?


          Anbei ein Auszug aus den Temperatur-Items

          Code:
          innen:
                      type: num
                      database: init
                      knx_dpt: 9
                      knx_listen: 7/2/11
                      knx_init: 7/2/11
                      
                      #### ab hier TEST
                      heute_min:
                          type: num
                          database_addon_fct: heute_min
                          
                      gestern_min:
                          type: num
                          database_addon_fct: heute_minus1_min    
                      
                          
                      heute_max:
                          type: num
                          database_addon_fct: heute_max
          
                      gestern_max:
                          type: num
                          database_addon_fct: heute_minus1_max
                          
                      ### bis hier TEST
          Zum Beispiel hier...
          Code:
          innen:
                      type: num
                            
                      database: init
                      knx_dpt: 9
                      knx_listen: 7/2/11
                      knx_init: 7/2/11
                      
                      auswertung:
                          type: foo
                          
                          heute_min:
                              type: num
                              database_addon_fct: heute_min
                          
                          gestern_min:
                              type: num
                              database_addon_fct: heute_minus1_min    
                      
                          
                          heute_max:
                              type: num
                              database_addon_fct: heute_max
          
                          gestern_max:
                              type: num
                              database_addon_fct: heute_minus1_max

          Auch das "Verschieben" nach rechts mit "auswertung" bringt keine Ergebnisse zu Tage. Gehört "database_addon_fct" ganz woanders hin?
          Zuletzt geändert von Maexle; 28.03.2022, 09:33.

          Kommentar


            #20
            Zitat von android Beitrag anzeigen
            Werde am Wochenende mal testen!
            Wollt gerade testen, kann aber leider nicht, da ich mit sqlite unterwegs bin. Falls du das Plugin mal dahin erweiterst und einer testen soll, sag bescheid!

            Kommentar


              #21
              Zitat von android Beitrag anzeigen
              Falls du das Plugin mal dahin erweiterst und einer testen soll, sag bescheid!
              Da ich kein sqlite habe, kann ich das nicht wirklich entwicklen. Kennst Du dich mit sqlite aus?

              Kommentar


                #22
                Auskennen ist übertrieben. Habe mal um django kennen zu lernen, eine kleine Web-/Pythonanwendung mit einem Zugriff auf eine sqlite Datenbank gebastelt.

                Kommentar


                  #23
                  Zitat von android Beitrag anzeigen
                  Auskennen ist übertrieben. Habe mal um django kennen zu lernen, eine kleine Web-/Pythonanwendung mit einem Zugriff auf eine sqlite Datenbank gebastelt.
                  Zugriff ist hier weniger das Thema. Vielmehr geht es im die Abfrage der Datenbank. Hier mal ein SQL Beispiel. Man müsste nun prüfen, ob es für sqlite einen vergleichbaren Syntax gibt.

                  Code:
                  SELECT UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time/1000))) * 1000 as time1, ROUND(SUM(value), 1) as value FROM (SELECT time, IF(min(val_num) < 0, ROUND(MIN(val_num), 1), 0) as value FROM log WHERE item_id = :item AND val_bool = 1 AND DATE(FROM_UNIXTIME(time/1000)) BETWEEN DATE_SUB(CURDATE(), INTERVAL :start DAY) AND DATE_SUB(CURDATE(), INTERVAL :end DAY) GROUP BY DATE(FROM_UNIXTIME(time/1000)) ORDER BY time ASC ) AS table1 GROUP BY YEAR(FROM_UNIXTIME(time/1000))
                  
                  {'item': 846, 'end': 17, 'start': 199}

                  Kommentar


                    #24
                    Hallo zusammen,

                    ich hab aktuell die Stock? DB Plugin mit sqlite3 im Einsatz. Kann man das unter Erhaltung der Daten auf MySQL umstellen?

                    Kommentar


                      #25
                      Warum unterstützt dieses Plugin denn nur MySQL? Das database Plugin ist in der Lage generisch verschiedene Datenbanken anzusprechen. Dazu gibt es in SmartHomeNG eine Abstraktionsbibliothek, die über ein standardisiertes API auf Datenbank Treiber für sqlite3 und mysql (und im Prinzip auf weitere Treiber wie PosgreSQL) zugreift. Das sollte dieses Plugin doch auch können.

                      Es gibt keinen direkten Weg unter Erhaltung der Daten von sqlite auf mysql umzustellen. Sqlite ist der Standard in SmartHomeNG. mysql ist eher als Option für Leute zu verstehen, die mysql schon nutzen und genau wissen, wie man damit umgeht,
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        #26
                        Zitat von Msinn Beitrag anzeigen
                        Warum unterstützt dieses Plugin denn nur MySQL? Das database Plugin ist in der Lage generisch verschiedene Datenbanken anzusprechen. Dazu gibt es in SmartHomeNG eine Abstraktionsbibliothek, die über ein standardisiertes API auf Datenbank Treiber für sqlite3 und mysql (und im Prinzip auf weitere Treiber wie PosgreSQL) zugreift. Das sollte dieses Plugin doch auch können.
                        Genau diese db.lib wird für die Verbindung genutzt.
                        Ich kann nur MySQL testen. Bei sqlite kommt u.a. Dieser Fehler wegen SQL Syntax.
                        Code:
                        2022-04-02 17:01:44 ERROR lib.db Can not execute query: SELECT UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time/1000))) * 1000 as time1, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = ? AND val_bool = 1 AND DATE(FROM_UNIXTIME(time/1000)) BETWEEN DATE_SUB(DATE_ADD(MAKEDATE(YEAR(CURRENT_DATE), 1), INTERVAL MONTH(CURRENT_DATE)-1 MONTH), INTERVAL ? MONTH) AND DATE_SUB(DATE_ADD(MAKEDATE(YEAR(CURRENT_DATE), 1), INTERVAL MONTH(CURRENT_DATE)-1 MONTH), INTERVAL ? MONTH) ORDER BY time ASC (args [9, 1, 0]): near "MONTH": syntax error
                        2022-04-02 17:01:44 ERROR plugins.priv_db_addon _query: Error for query SELECT UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(time/1000))) * 1000 as time1, ROUND(MAX(val_num), 1) as value FROM log WHERE item_id = 9 AND val_bool = 1 AND DATE(FROM_UNIXTIME(time/1000)) BETWEEN DATE_SUB(DATE_ADD(MAKEDATE(YEAR(CURRENT_DATE), 1), INTERVAL MONTH(CURRENT_DATE)-1 MONTH), INTERVAL 1 MONTH) AND DATE_SUB(DATE_ADD(MAKEDATE(YEAR(CURRENT_DATE), 1), INTERVAL MONTH(CURRENT_DATE)-1 MONTH), INTERVAL 0 MONTH) ORDER BY time ASC: near "MONTH": syntax error
                        2022-04-02 17:01:44 ERROR lib.item.item Item Strom.Zaehler: problem running <bound method DatabaseAddOn.update_item of <plugins.priv_db_addon.DatabaseAddOn object at 0x7f4f0a946f40>>: near "MONTH": syntax error
                        Wenn jemand diesbezüglich helfen kann, gern!

                        Kommentar


                          #27
                          Hallo Sisamiwe,

                          Das ist ja Mega !! Hatte gerade auch angefangen im Forum zu suchen wie man den Verbrauch vom E und G Zähler (aufsteigende Zählerstände) ausrechnen kann.
                          Dein Plugin wird mir sehr viel Arbeit sparen, vielen Dank für die Mühen.

                          Ich hab es gestern Mittag mal gestartet und sah bis gestern Abend nur 0 (es waren aber Zählerwerte in der Datenbank). Seite heute Morgen habe ich aber schon den Verbrauch für Heute seit Mitternacht drin. Scheint aber zu klappen.

                          Kurze Frage: Ich schreibe den Zählerstand nur bei Änderung. Ist das OK oder ist es für das Plugin besser irgendwie zyklisch zu updaten ? Oder mir enforce: yes ?

                          Code:
                          Energie:
                              Elektrisch:
                                  Zaehler:
                                      type: num
                                      cache: 'yes'
                                      database: init
                                      mqtt_topic_in: 'smarty/act_energy_imported_p_plus'
                                      struct: _priv_db_addon.verbrauch_1
                          Zuletzt geändert von Foxi352; 30.06.2022, 07:07.

                          Kommentar


                            #28
                            Wenn ich mich recht entsinne, führt ein enforce_updates nicht dazu, dass gleiche Werte in die Datenbank geschrieben werden. Kann mich auch täuschen, aber es wurden mal Lösungen dafür diskutiert aber ich glaub nie umgesetzt.

                            Kommentar


                              #29
                              Zitat von Onkelandy Beitrag anzeigen
                              Wenn ich mich recht entsinne, führt ein enforce_updates nicht dazu, dass gleiche Werte in die Datenbank geschrieben werden
                              Korrekt. Will oder braucht man das, nimmt man enforce_change.

                              Kommentar


                                #30
                                Hallo,

                                Wie stehen denn die Chancen, dass du das Add-on auch mit sqlite kompatibel machst?

                                Gruß,
                                Hendrik

                                Kommentar

                                Lädt...
                                X