Ankündigung
Einklappen
Keine Ankündigung bisher.
Leere Ressource Graphen im Admin Interface
Einklappen
X
-
Ich scheine mich unklar auszudrücken. Du hattest die Item Liste im Webinterface des database Plugins gepostet und meine Frage war, ob darin die env.* Items erscheiinen...
-
Zitat von Msinn Beitrag anzeigenWie sieht es aus, wenn Du die von Dir befüllte Datenbank mal beiseite packst und mit einer leeren Datenbank anfängst?
habe soeben eine neue db angelegt
ressourceGraph.jpg
Einen Kommentar schreiben:
-
guten Morgen,
die ist aus der mysql Webanwendung "phpmyadmin"..Zitat von Msinn Beitrag anzeigenWo hast Du diese Ansicht in SmartHomeNG denn gefunden?
envSH.jpg
Einen Kommentar schreiben:
-
Das dürfte phpMyAdmin sein, ein webbasiertes Admintool für MySQL...
Einen Kommentar schreiben:
-
Sieht soweit gut aus. Das Problem kann ich nicht nachvollziehen. SInd den die env.* Items in der Datenbank drin? Aus den env.* Items werden die Graphen im Admin Interface und in der smartVISU befüllt.
Wie sieht es aus, wenn Du die von Dir befüllte Datenbank mal beiseite packst und mit einer leeren Datenbank anfängst?
Einen Kommentar schreiben:
-
Zu Deiner Konfiguration: Das Plugin heisst database und nicht Database. Außerdem stimmen die Einrückungen nicht.
Einen Kommentar schreiben:
-
bei mir bleiben die Ressource Graphen im Admin Interface auch leer.
Neuinstallation debian10_64 mit SH1.7.1
datenbank mysql - die Tabellen item und log hab ich aus der alten datenbank gedumpt und importiert.
irgendetwas scheint mit meiner db nicht zu passen?
auch werden in smartVISU einige plots nicht angezeigt einige der plots werden jedoch gefüllt?Stellwert wird angezeigt, Ist Temperatur jedoch nicht?Code:database: plugin_name: Database driver: pymysql connect: - host:127.0.0.1 - user:smarthome - passwd:123Meins123 - db:smarthome
plotProblem.jpg
Gruß IvanCode:2020-04-29 19:49:15 ERROR plugins.visu_websocket Problem fetching series for env.system.load: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - Wrong sqlite plugin? 2020-04-29 19:49:15 ERROR plugins.visu_websocket Problem fetching series for env.core.memory: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - Wrong sqlite plugin? 2020-04-29 19:49:15 ERROR plugins.visu_websocket Problem fetching series for env.core.threads: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - Wrong sqlite plugin? 2020-04-29 19:49:15 ERROR plugins.visu_websocket Problem fetching series for env.system.diskusagepercent: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - Wrong sqlite plugin? 2020-04-29 22:28:07 ERROR root Can not execute query: SELECT MIN(time), ROUND(AVG(val_num * (COALESCE(duration * (time >= %(time_start)s) * (time + duration <= %(time_end)s), 0) + COALESCE(duration / duration * (time + duration - %(time_start)s) * (time < %(time_start)s) * (time + duration >= %(time_start)s), 0) + COALESCE(COALESCE(duration, %(inow)s - time) / COALESCE(duration, %(inow)s - time) * (%(time_end)s - time) * (time + COALESCE(duration, %(inow)s - time) >= %(time_end)s), 0))) / AVG((COALESCE(duration * (time >= %(time_start)s) * (time + duration <= %(time_end)s), 0) + COALESCE(duration / duration * (time + duration - %(time_start)s) * (time < %(time_start)s) * (time + duration >= %(time_start)s), 0) + COALESCE(COALESCE(duration, %(inow)s - time) / COALESCE(duration, %(inow)s - time) * (%(time_end)s - time) * (time + COALESCE(duration, %(inow)s - time) >= %(time_end)s), 0))), 2) FROM log WHERE item_id = %(id)s AND time >= (SELECT COALESCE(MAX(time), 0) FROM log WHERE item_id = %(id)s AND time < %(time_start)s) AND time <= %(time_end)s AND time + COALESCE(duration, %(inow)s - time) > (SELECT COALESCE(MAX(time), 0) FROM log WHERE item_id = %(id)s AND time < %(time_start)s) GROUP BY ROUND(time / %(step)s) ORDER BY time ASC (args OrderedDict([('time_start', 1587587287504), ('time_end', 1588192087505), ('inow', 1588192087505), ('id', 25), ('step', 6048000)])): (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") 2020-04-29 22:28:07 ERROR plugins.database Database: Error for query SELECT MIN(time), ROUND(AVG(val_num * (COALESCE(duration * (time >= 1587587287504) * (time + duration <= 1588192087505), 0) + COALESCE(duration / duration * (time + duration - 1587587287504) * (time < 1587587287504) * (time + duration >= 1587587287504), 0) + COALESCE(COALESCE(duration, 1588192087505 - time) / COALESCE(duration, 1588192087505 - time) * (1588192087505 - time) * (time + COALESCE(duration, 1588192087505 - time) >= 1588192087505), 0))) / AVG((COALESCE(duration * (time >= 1587587287504) * (time + duration <= 1588192087505), 0) + COALESCE(duration / duration * (time + duration - 1587587287504) * (time < 1587587287504) * (time + duration >= 1587587287504), 0) + COALESCE(COALESCE(duration, 1588192087505 - time) / COALESCE(duration, 1588192087505 - time) * (1588192087505 - time) * (time + COALESCE(duration, 1588192087505 - time) >= 1588192087505), 0))), 2) FROM log WHERE item_id = 25 AND time >= (SELECT COALESCE(MAX(time), 0) FROM log WHERE item_id = 25 AND time < 1587587287504) AND time <= 1588192087505 AND time + COALESCE(duration, 1588192087505 - time) > (SELECT COALESCE(MAX(time), 0) FROM log WHERE item_id = 25 AND time < 1587587287504) GROUP BY ROUND(time / 6048000) ORDER BY time ASC: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") 2020-04-29 22:28:07 ERROR plugins.visu_websocket Problem fetching series for Dg.Kueche.Einzelraumregelung.Ist_temperatur: (1055, "Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'smarthome.log.time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - Wrong sqlite plugin?
Einen Kommentar schreiben:
-
Hallo Martin
Sorry für die späte Antwort, war beruflich eingespannt.
Danke. Funktioniert jetzt.
Allerdings fehlt in deinem Beispiel noch das plugin_name: database.
Klappt das so bei dir wie im Codeblock eingefügt? Bei mir wurde die DB mit dem Dateinamen
smarthomeng.db | check_same_thread:0 erzeugt. Also wurde das | falsch interpretiert. Egal, so geht es jetzt:
Was die Dokuseiten angeht: Die kann ich bald auswendigCode:database: plugin_name: database driver: 'sqlite3' connect: - database:/usr/local/smarthome/var/db/smarthomeng.db - check_same_thread:0
Klar hab ich die x-mal gelesen. Vielleicht auch zu oft. Und da gibt es halt u.a. für das Database Plugin mehrere Seiten und Verweise. Vor allem die Verweise auf externe Seiten haben mir gar nicht geholfen. Im Gegenteil.
Die englische Readme finde ich am besten. Sorry, diese deutsche, anscheinend automatisch aus "Metadaten" erzeugte, finde ich nutzlos. Geht vielleicht nur mir so. In der englischen war ich mir halt nicht sicher wegen dem Abschnitt "Requirements". So wie ich das sehe, ist es zwar für die sqlite Variante ganz einfach, aber für MySQL deutlich mehr Aufwand (erst mal eine MySQL Software installieren, eine DB erzeugen, dann plugin Konfigurieren). Wie das genau geht ist mir immer noch nicht klar, aber sqlite tut's erstmal.
Das Beispiel für die sqlite in der Readme sieht auch anders aus. Es fehlt plugin_name, dafür gibt es class_name und class_path. Das wird wohl egal sein, wie man es macht, kann aber auch verwirren, wenn alle anderen Plugins eben anders aussehen.
Die "neuen" Dokuseiten sind insgesamt super. Ein ganz großer Schritt vorwärts.
Allerdings ist nicht alles im gleichen Stil und gleich gut beschrieben (logisch, stammt ja von x Leuten). Die Komplettanleitung ist z.B. super. Die Beschreibung des Webinterface für das Database Plugin auch. Die Beschreibung des Database Plugins selber, mit allen Voraussetzungen für sqlite und MySQL, deren Installation und Konfiguration, was sind jeweils die Vor- Nachteile, hat noch "Luft nach oben". Aber bitte jetzt nicht böse sein.
Die neue Beschreibung des Admin Interface ist insgesamt auch sehr gut. Wenn da noch bei Ressource Graphen ein Satz stehen würde wie "Dazu muss ein/das Database Plugin aktiviert werden" und vielleicht ein Link auf wie man das macht, wäre das wunderbar. Dafür kann man den Satz "Drei dieser Graphen sind bereits aus der Konfigurationsseite der smartVISU bekannt" ersatzlos streichen. Bringt keinen Mehrwert (nicht jeder verwendet die SmartVISU und/oder kennt die Graphen dort).
Ich helfe WIRKLICH GERNE mit, dass die Doku noch besser wird. Erinnerst du dich? Das ursprüngliche "Big Picture" zu SHNG und SmartVISU stammt von mir. Ich bin überhaupt der Meinung, dass man öfter mal mit Bildern Arbeiten sollte. Liegt wohl daran, dass ich seit über 20 Jahren Kurse für Ingenieure und Techniker schreibe und halte, mit Anleitungen also quasi mein Geld verdiene. Drum weiß ich worauf es bei Anleitungen ankommt. Der alte Spruch "Ein Bild sagt mehr als 1000 Worte" stimmt halt.
Ich kann alles gut erklären, was ich selber verstanden habe.
Ich kann auch gerne bei englischen Texten helfen. Ich unterrichte und schreibe meine Kurse zwangsläufig fast ausschließlich in Englisch, meine Frau ist Irin und somit der Großteil der Verwandtschaft auch. Ich würde daher meine Englischkenntnisse - ohne arrogant wirken zu wollen - als überdurchschnittlich einstufen. Wenn man manchmal Specs der ITU oder 3GPP oder beliebig andere Texte liest, kräuseln sich einem die Fußnägel. Wir alle kennen die chinesisch-englisch-deutschen Bedienungsanleitungen
Auch die englischen SHNG Texte sind nicht immer gut, weil nicht-Muttersprachler das geschrieben haben, also KEIN VORWURF. Da gibt es Konstrukte, die an "I become a Schnitzel please" erinnern. Ihr könnt mir gerne alles schicken was ich korrigieren soll. Wird wie bei allen nicht immer von heute auf morgen gehen, aber ich tu was ich kann.
Ich habe auch letzthin ein Feedback auf der Dokuseite hinterlassen, sehen kann ich es aber nicht. Der letzte Hinweis stammt von heckmannju. Finde den Fehler
sudo usermod -aG www-data,sudo,dailout smarthome
Mist, ist jetzt schon zu lang geworden. Du kannst dich gerne z.B. auch per PN bei mir melden und nochmal: Ich helfe GERNE.
Gruß, auch Martin
Einen Kommentar schreiben:
-
Du bist herzlich eingeladen miitzuwirken.Zitat von Sipple Beitrag anzeigenWäre super, wenn es irgendwo eine tatsächlich vollständige Schritt für Schritt Anleitung gäbe
Hast Du mal einen Blick in die Doku zur Konfiguration des database plugin bzw. des sqlite plugin geworfen (unter https://www.smarthomeng.de/user)?Zitat von Sipple Beitrag anzeigenWie erzeuge ich eine neue, leere sqlite Datenbank für SHNG?
(Hint: Weil es nirgends steht, passiert das automatisch)
Um es weiter zu vereinfachen: Wenn die Installation mit Standardpfaden passiert, braucht man in der Konfiguration des database Plugin nichts zu tun (driver ist sqlite der Standard, wie der Config Dialog des Admin Interfaces auch anzeigt.)
Ich habe nur zusätzlich zum Dateinamen der db noch den connect-Parameter check_same_thread:0 angegeben. also steht bei mir in der etc/plugin yaml:
Darauf achten, dass im connect string hinter den Doppelpunkten kein Leerzeichen folgt, sonst interpretiert yaml das als Struktur.Code:database: driver: 'sqlite3' # Muss hier nicht angegeben werden, nur zur Verdeutlichung connect: 'database:/usr/local/shng_dev/var/db/smarthomeng.db | check_same_thread:0'
Einen Kommentar schreiben:
-
Servus und schon mal Danke.
Als ich die Fehlermeldung im LOG gesehen habe, dachte ich mir schon, dass man erst mal ne Datenbank braucht. Das steht in der Beschreibung des neuen Admin Interfaces in der Anwenderdokumentation aber nicht drin.
Ich habe gestern und heute einige Stunden versucht da durchzublicken, aber ich komme von einem Verweis auf den nächsten, finde dort wieder nicht genau wie es geht, dann den nächsten Link usw. Inzwischen bin ich so verwirrt, dass ich einfach nicht mehr weiter komme.
Wäre super, wenn es irgendwo eine tatsächlich vollständige Schritt für Schritt Anleitung gäbe. In der Anwenderdokumentation finde ich leider nichts vollständiges. Irgendwie fehlt immer was wahrscheinlich entscheidendes. Und ich möchte mich auch gleich entschuldigen, wenn ich einfach zu blöd dazu bin.
Erst mal ganz unabhängig von den leeren Grafen im Admin-Interface, das Datenbank-Plugin brauch ich so oder so:
1. Gehen wir vom database plugin aus und die Variante sqlite, das scheint die einfachere Variante zu sein.
2. Es gibt keinen bereits existierenden Datenbank file und das scheint mir in allen Anleitungen irgendwie stillschweigend vorausgesetzt zu werden.
3. Wie erzeuge ich eine neue, leere sqlite Datenbank für SHNG? Macht das SHNG selber bei Aktivierung des Plugins? Muss ich das machen (war früher beim sqlite Plugin nicht nötig, glaube ich)? Wie geh ich dann am einfachsten vor? Muss ich noch irgendwas über pip3 oder apt-get installieren?
4. Ich vermute, die Datenbank gehört am besten in /usr/local/smarthome/var/db/ , richtig?
5. In der plugin.yaml finde ich nur ein auskommentiertes Beispiel für eine mysql Variante. Für die sqlite schaut das wohl so aus:
Die ersten Zeilen sind mir klar.Code:database: class_name: Database class_path: plugins.database driver: sqlite3 connect: - database:/path/to/log.db - check_same_thread:0 # prefix: log # precision: 2
"connect:
-database:"
Ist dann konkret der Pfad /usr/local/smarthome/var/db/ und dort auf die wohl noch zu erzeugende smarthome.db oder wie auch immer der Dateiname ist, richtig?
- check_same_Thread:0 verstehe ich gar nicht. Auch der Verweis in der Anleitung auf docs.python.org hilft nicht wirklich. Wenn man das nicht wissen muss, sondern einfach so verwenden, gut.
6. Wenn die Datenbank dann mal existiert, komme ich denke ich klar wie man Daten eigener Items dort rein schreibt. Das ist augenscheinlich nicht viel anders als es damals mit dem alten sqlite Plugin war.
7. Zurück zu den Grafen im Admin Interface. Die beruhen ja auf System-Items, die ja schon existieren, z.B. env.core.threads. Wie sage ich denen, dass sie ihre Werte in die DB schreiben? Geht das dann automatisch?
Die Anwenderdoku ist in der Regel recht gut. Die Plugin-Readme's oft auch absolut ausreichend. Aber an dem Database Plugin hänge ich fest.
Hilft zumindest mir leider gar nicht weiter, auch nicht die dort verlinkten Seiten - im Gegenteil.Requirements
If you want to log to a given database system you need to install the right Python DB API 2 implementation of the database and configure it in the plugin configuration (driver and connection parameters, see below).
Important: This plugin supports drivers using one of the following format (or parameter) styles: qmark, format, numeric and pyformat. Make sure the installed module supports one of this!
Tested drivers (other may work too):
Nochmal sorry und die Bitte um Hilfe.
Gruß, Martin
Einen Kommentar schreiben:
-
Die Datenserien werden aus der Datenbank gelesen. Welches Plugin hast Du dafür konfiguriert (database, sqlite)?
Einen Kommentar schreiben:


Einen Kommentar schreiben: