Zitat von Maexle
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues Plugin: DatabaseAddOn - Erweitere Testphase
Einklappen
X
-
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
-
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
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
-
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
garage.temperatur.innen.heute_min num verbrauch_heute on-change False .0.0 .25.03.2022 18:28:39 .25.03.2022 18:28:39. 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
-
Zitat von android Beitrag anzeigenWerde am Wochenende mal testen!
Kommentar
-
Zitat von android Beitrag anzeigenFalls du das Plugin mal dahin erweiterst und einer testen soll, sag bescheid!
Kommentar
-
Zitat von android Beitrag anzeigenAuskennen ist übertrieben. Habe mal um django kennen zu lernen, eine kleine Web-/Pythonanwendung mit einem Zugriff auf eine sqlite Datenbank gebastelt.
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
-
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
-
Zitat von Msinn Beitrag anzeigenWarum 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.
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
Kommentar
-
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
-
Zitat von Onkelandy Beitrag anzeigenWenn ich mich recht entsinne, führt ein enforce_updates nicht dazu, dass gleiche Werte in die Datenbank geschrieben werden
- Likes 1
Kommentar
Kommentar