Ankündigung

Einklappen
Keine Ankündigung bisher.

Leere Ressource Graphen im Admin Interface

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

  • Msinn
    antwortet
    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...

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Wie 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:


  • ivande
    antwortet
    guten Morgen,

    Zitat von Msinn Beitrag anzeigen
    Wo hast Du diese Ansicht in SmartHomeNG denn gefunden?
    die ist aus der mysql Webanwendung "phpmyadmin"..

    envSH.jpg

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Das dürfte phpMyAdmin sein, ein webbasiertes Admintool für MySQL...

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Wo hast Du diese Ansicht in SmartHomeNG denn gefunden?

    Einen Kommentar schreiben:


  • ivande
    antwortet
    env.jpg

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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:


  • ivande
    antwortet
    plugins.jpg

    database.jpg

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zu Deiner Konfiguration: Das Plugin heisst database und nicht Database. Außerdem stimmen die Einrückungen nicht.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Welche Plugins zeigt denn das Admin Interface als geladen an? Das sieht aus, als wäre das database Plugin nicht geladen.

    Zu MySQL kann ich nichts sagen. Ich nutze SQLite.
    Zuletzt geändert von Msinn; 29.04.2020, 21:52.

    Einen Kommentar schreiben:


  • ivande
    antwortet
    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?

    Code:
    database:
    plugin_name: Database
    driver: pymysql
    connect:
    - host:127.0.0.1
    - user:smarthome
    - passwd:123Meins123
    - db:smarthome
    auch werden in smartVISU einige plots nicht angezeigt einige der plots werden jedoch gefüllt?Stellwert wird angezeigt, Ist Temperatur jedoch nicht?

    plotProblem.jpg

    Code:
    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?
    Gruß Ivan

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    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:

    Code:
    database:
        plugin_name: database
        driver: 'sqlite3'
        connect:
          - database:/usr/local/smarthome/var/db/smarthomeng.db
          - check_same_thread:0
    Was die Dokuseiten angeht: Die kann ich bald auswendig
    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:


  • Msinn
    antwortet
    Zitat von Sipple Beitrag anzeigen
    Wäre super, wenn es irgendwo eine tatsächlich vollständige Schritt für Schritt Anleitung gäbe
    Du bist herzlich eingeladen miitzuwirken.

    Zitat von Sipple Beitrag anzeigen
    Wie erzeuge ich eine neue, leere sqlite Datenbank für SHNG?
    Hast Du mal einen Blick in die Doku zur Konfiguration des database plugin bzw. des sqlite plugin geworfen (unter https://www.smarthomeng.de/user)?

    (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:

    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'
    Darauf achten, dass im connect string hinter den Doppelpunkten kein Leerzeichen folgt, sonst interpretiert yaml das als Struktur.

    Einen Kommentar schreiben:


  • Sipple
    antwortet
    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:


    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
    Die ersten Zeilen sind mir klar.

    "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.

    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):
    • SQLite (driver = sqlite3)
    • MySQL (driver = pymysql)
    Hilft zumindest mir leider gar nicht weiter, auch nicht die dort verlinkten Seiten - im Gegenteil.

    Nochmal sorry und die Bitte um Hilfe.

    Gruß, Martin

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Die Datenserien werden aus der Datenbank gelesen. Welches Plugin hast Du dafür konfiguriert (database, sqlite)?

    Einen Kommentar schreiben:

Lädt...
X