In der aktuellen Entwicklungsversion ist mit https://github.com/CometVisu/CometVisu/pull/1086 das Problem gelöst, so dass month und year auch bei der InfluxDB funktionieren.
Außerdem gibt's nun noch eine kleine Feature Erweiterung, so dass man die Auflösung auch frei wählen kann, obwohl man einen vorgefertigten Zeitraum nutzt.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Diagramm aus influxDB in CometVisu darstellen
Einklappen
X
-
Das erklärt mein Verhalten. Vielen Dank fürs Nachschauen :-)Zitat von Chris M. Beitrag anzeigenIch bin nochmal die InfluxDB Doku durchgegangen und habe gesehen, dass die CV ein Verhalten erwartet, dass es so nicht gibt.
=> month und year ist aktuell kaputt.
Super, damit funktioniert's.Zitat von Chris M. Beitrag anzeigenUm "per Hand" eine Monats-Darstellung zu bekommen kannst Du diese Attribute verwenden
Herzlichen Dank!
Einen Kommentar schreiben:
-
Ich bin nochmal die InfluxDB Doku durchgegangen und habe gesehen, dass die CV ein Verhalten erwartet, dass es so nicht gibt.Zitat von netfriend Beitrag anzeigenLt. CometVisu-Doku sind für das Diagram-Plugin folgende Zeitspannen möglich:
hour -> funktioniert
week -> funktioniert
month -> es wird nichts angezeigt! WARUM?
year -> es wird nichts angezeigt - versteh ich aber, da erst Daten seit 11.8. vorhanden sind.
=> month und year ist aktuell kaputt.
Die Idee ist, dass bei fullday der angezeigte Zeitraum auf Mitternacht synchronisiert wird.Zitat von netfriend Beitrag anzeigenfullday -> es wird was angezeigt, aber der Sinn erschließt sich mir nicht. Ist mir aber auch nicht wichtig.
Aus offensichtlichen Gründen kann ich das gerade nicht testen
Das geht über seriesStart, seriesEnd und seriesResolution.Zitat von netfriend Beitrag anzeigencustom -> wie wird hier der Zeitraum angegeben?
Um "per Hand" eine Monats-Darstellung zu bekommen kannst Du diese Attribute verwenden:
So kannst Du statt der Default-Vorgabe einer Auflösung von allen 4 Stunden auch auf eine Darstellung mit stündlichen Werten wechseln:Code:series="custom" seriesStart="end-30day" seriesEnd="now" seriesResolution="21600"
Code:series="custom" seriesStart="end-30day" seriesEnd="now" seriesResolution="3600"
Einen Kommentar schreiben:
-
Hat hier keiner eine Idee oder auch schon so ein Verhalten gehabt und eine Lösung dafür gefunden?
Einen Kommentar schreiben:
-
Hallo,
ich bin einige Woche nicht dazu gekommen, hier weiter zu probieren. Dafür hab ich nun Werte seit 11.08. in der influx-DB. Aktuell teste ich mit der Außentemperatur, die wird alle paar Minuten gespeichert. Sollte also kein Problem sein, da immer Daten vorhanden sind.
Lt. CometVisu-Doku sind für das Diagram-Plugin folgende Zeitspannen möglich:
hour -> funktioniert
week -> funktioniert
month -> es wird nichts angezeigt! WARUM?
year -> es wird nichts angezeigt - versteh ich aber, da erst Daten seit 11.8. vorhanden sind.
fullday -> es wird was angezeigt, aber der Sinn erschließt sich mir nicht. Ist mir aber auch nicht wichtig.
custom -> wie wird hier der Zeitraum angegeben?
Habe ich hier einen Fehler gemacht?
<group nowidget="true">
<layout colspan="12" colspan-s="12"/>
<diagram width="930" height="400" series="month" period="1" refresh="300" tooltip="true" gridcolor="grey" popup="true" previewlabels="true" legendposition="nw" timeformat="%d.%m.">
<layout colspan="12" colspan-s="12"/>
<label>Außen-Temperatur (Test)</label>
<axis position="left" label="Temperatur" min="-20" max="40" unit="°C" decimals="1">temp</axis>
<influx authentication="influx" yaxis="temp" field="value" fillMissing="previous" consolidationFunction="MEAN" measurement="iobroker/Temperatur_Aussen_Nordseite" color="blue" label="Außen-Temperatur (Nordseite)"/>
</diagram>
</group>
Kann mir jemand weiterhelfen? Hat schon mal jemand influx-Daten monatlich visualisiert?
Danke.
Einen Kommentar schreiben:
-
Wann ist denn der letzte Wert in der Datenbank für diese Werte gelandet?
Wenn der älter ist als der dargestellte Bereich dann bleibt das Diagram leer, da es ja nichts zum Anzeigen gibt.
Einen Kommentar schreiben:
-
Inzwischen habe ich einige Diagramme umgestellt von rrd auf influx. Prinzipiell funktioniert das auch. Allerdings ist mir aufgefallen, dass z.B. Diagramme mit dem Tag "series"="week" problemlos angezeigt werden. Stellt man das auf "day" oder "hour" um, bleibt das Diagramm leer.
Daten müssen ja vorhanden sein, sonst würde die "week"-Darstellung auch nicht funktionieren.
Hat jemand ne Idee? Hab ich was übersehen?
Einen Kommentar schreiben:
-
Zitat von peuter Beitrag anzeigenAuf dem selben Weg sollte es auch im Container gehen, aus Netzwerksicht ist der CometVisu-Container ein eigener PC, localhost ist da drin also der Container und nicht der Rechner auf dem der Container gestartet wurde d.h. wenn Du die IP des Raspis statt localhost nimmst sollte es auch da gehen.Herzlichen Dank, peuter. So funktioniert es! Und ich habe wieder etwas gelernt.Zitat von peuter Beitrag anzeigenDen Port 8086 musst Du im Container auch nicht angeben, da muss man nur Ports angeben unter denen der Container einen Dienst bereitstellt nicht welche auf die der Container zugreifen möchte.
Es war mein Denkfehler. Ich dachte, der Container greift über den angegebenen Port auf den Raspi zu, daher localhost:8086 und Portfreigabe in der Docker-compose.yaml. Aber das vergesse ich schnell wieder...
Einen Kommentar schreiben:
-
Den Port 8086 musst Du im Container auch nicht angeben, da muss man nur Ports angeben unter denen der Container einen Dienst bereitstellt nicht welche auf die der Container zugreifen möchte.
- Likes 1
Einen Kommentar schreiben:
-
Auf dem selben Weg sollte es auch im Container gehen, aus Netzwerksicht ist der CometVisu-Container ein eigener PC, localhost ist da drin also der Container und nicht der Rechner auf dem der Container gestartet wurde d.h. wenn Du die IP des Raspis statt localhost nimmst sollte es auch da gehen.
- Likes 1
Einen Kommentar schreiben:
-
Ja klar, gerne
Der Port 8086 war der Versuch, den Zugriff auf die influxDB zu bekommen.version: '3.4'
services:
cometvisu:
image: "cometvisu/cometvisu:latest-arm"
restart: always
ports:
- 80:80
#- 8086:8086
volumes:
- ./resource/config:/var/www/html/resource/config
- ./resource/rrd:/var/www/rrd
environment:
KNX_INTERFACE: "iptn:192.168.170.222:3671"
KNX_PA: "1.1.252"
Wenn die Zeile wieder einkommentiert wird, gibt's oben genannte Fehlermeldung.
Ach ja, es hat sich dahingehend bestätigt, dass das Problem wirklich das Nicht-Erreichen der influxDB ist.
Ich habe auf einem alten Spiel-Raspi noch ne CometVisu ohne Container laufen.
Wenn ich das Diagram-Tag in diese config einfüge und statt localhost die IP dieses Raspis angebe, wird das Diagramm aus der influxDB angezeigt!
Einen Kommentar schreiben:
-
Kannst Du den Inhalt der docker-compose.yml mal hier posten, irgendwas ist da drin falsch?
Einen Kommentar schreiben:
-
Danke, das hatte ich gestern abend noch gesehen und probiert. Sieht man ja daran, was in der influxfetch.php steht.Zitat von Chris M. Beitrag anzeigenDoch, im Schlüsselwert uri.
Jeder Docker-Container ist ja ein (virtueller) Rechner. D.h. wenn der CometVisu-Container auf http://localhost:8086/query zugreifen möchte, so erwartet er, dass er das selbst bereit stellt - was ja nicht der Fall ist. Das es die selbe physikalische Hardware ist zählt ja nicht.
D.h. Du muss hier auf den Container verweisen, der die InfluxDB bereit stellt - und dafür sorgen, dass der auch den Port 8086 exportiert.
Wie man das am geschicktesten Konfiguriert habe ich mir noch nicht überlegt. Ist aber eigentlich nur ein normales Setup-Thema für Docker, da hat man oft die Fragestellung, dass ein Container auf den Port von einem anderen zugreifen muss.
Das heißt, ich bin auf der richtigen Spur, aber offenbar gelingt es dem Docker-Container nicht, darauf zuzugreifen.
Ich habe versucht in der Docker-compose.yaml neben dem Port 80 auch noch den 8086 anzugegeben. Nur erhalte ich beim Neustart des Containers eine Fehlermeldung
Klingt für mich so, als wenn der Port schon in Benutzung ist.root@Raspi4:~# docker-compose up -d
Creating network "root_default" with the default driver
Creating root_cometvisu_1 ...
Creating root_cometvisu_1 ... error
ERROR: for root_cometvisu_1 Cannot start service cometvisu: driver failed programming external connectivity on endpoint root_cometvisu_1 (5b5887074c3c81b876000980407f8a6e5941cae1c29389fe5 e1d654f2fb0cd70): Error starting userland proxy: listen tcp4 0.0.0.0:8086: bind: address already in use
ERROR: for cometvisu Cannot start service cometvisu: driver failed programming external connectivity on endpoint root_cometvisu_1 (5b5887074c3c81b876000980407f8a6e5941cae1c29389fe5 e1d654f2fb0cd70): Error starting userland proxy: listen tcp4 0.0.0.0:8086: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Die influxDB habe ich nicht im Container installiert. Die läuft direkt auf dem Raspi.
Ich bin etwas ratlos, wie der Zugriff nun erfolgen kann???
uri = http://localhost:8086/query passt doch, oder?
Einen Kommentar schreiben:
-
Doch, im Schlüsselwert uri.Zitat von netfriend Beitrag anzeigenIch hatte das so verstanden, dass in der Hidden-Config die Zugangsdaten (User, PW) zur DB stehen und über "authentication" der Bezug dazu hergestellt wird. Dort steht doch nicht, wo die DB zu finden ist, oder?
Ganz frisch gibt's inzwischen im Handbuch ein Tutorial für die CometVisu-Installation per Docker auf dem Raspberry Pi: https://www.cometvisu.org/CometVisu/...ial/index.htmlZitat von netfriend Beitrag anzeigenHintergrund ist eigentlich der, dass ich wie hier (https://knx-user-forum.de/forum/supp...alliert-werden) beschrieben, immer noch Probleme habe, eine saubere Installation hinzubekommen.
Das ist natürlich jetzt erst mal in dem Entwicklungs-Versions-Handbuch, der Inhalt geht aber auf das letzte Release, also 0.11.2
Influx habe ich da noch nicht extra mit aufgeführt, aber dafür Node-RED. Und wenn man weiß wie man einen Container zum laufen bekommt, ist's mit einem anderen auch nicht wirklich anders.
Ja, sieht vernünftig aus.Zitat von netfriend Beitrag anzeigenEs ist tatsächlich so, dass in einer Datenbank (bei mir: iobroker) alle Messwerte landen. Jeder Messwert hat mehrere Spalten, visualisiert möchte ich die Spalte "value" haben.
[...]
Deshalb habe ich im Diagram-Tag folgendes influx-Tag hinzugefügt:
[...]
Meiner Meinung nach müsste das passen.
Jeder Docker-Container ist ja ein (virtueller) Rechner. D.h. wenn der CometVisu-Container auf http://localhost:8086/query zugreifen möchte, so erwartet er, dass er das selbst bereit stellt - was ja nicht der Fall ist. Das es die selbe physikalische Hardware ist zählt ja nicht.Zitat von netfriend Beitrag anzeigenWenn ich nun die cometvisu-Seite aufrufe sehe ich als Rückgabe der influxfetch.php folgendes:
file_get_contents(http://localhost:8086/query?q=SELECT...&db=iobroker): failed to open stream: Cannot assign requested address
Was soll mir das sagen?
Kann es sein, dass der Aufruf aus dem Container die influxdb nicht erreicht?
Nach den Einstellungen oben geschieht das über den Port 8086. Ich dachte mir, vielleicht muss ich den in der docker-compose.yaml angeben. Wenn ich das tue, erhalte ich eine Fehlermeldung beim Starten des Containers, weil der Port wohl schon in Verwendung ist.
Hat jemand noch einen Tipp für mich?
D.h. Du muss hier auf den Container verweisen, der die InfluxDB bereit stellt - und dafür sorgen, dass der auch den Port 8086 exportiert.
Wie man das am geschicktesten Konfiguriert habe ich mir noch nicht überlegt. Ist aber eigentlich nur ein normales Setup-Thema für Docker, da hat man oft die Fragestellung, dass ein Container auf den Port von einem anderen zugreifen muss.
Einen Kommentar schreiben:
-
Ich habe nun noch etwas weiter probiert.
Zuerst habe ich mir mal etwas Überblick über die influxDB verschafft.
Es ist tatsächlich so, dass in einer Datenbank (bei mir: iobroker) alle Messwerte landen. Jeder Messwert hat mehrere Spalten, visualisiert möchte ich die Spalte "value" haben.
influxDB iobroker-DB-View.JPG
Deshalb habe ich im Diagram-Tag folgendes influx-Tag hinzugefügt:
Meiner Meinung nach müsste das passen.<influx field="value" consolidationFunction="MEAN" measurement="iobroker/Gardena_Bodenfeuchte" style="lines" fill="true" steps="false" fillMissing="linear" color="red"/>
Eine Authentifizierung brauche ich nicht, da in der /etc/influxdb/influxdb.conf folgendes steht:
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# The bind address used by the HTTP service.
bind-address = ":8086"
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = false
Wenn ich nun die cometvisu-Seite aufrufe sehe ich als Rückgabe der influxfetch.php folgendes:
file_get_contents(http://localhost:8086/query?q=SELECT...&db=iobroker): failed to open stream: Cannot assign requested address
Was soll mir das sagen?
Kann es sein, dass der Aufruf aus dem Container die influxdb nicht erreicht?
Nach den Einstellungen oben geschieht das über den Port 8086. Ich dachte mir, vielleicht muss ich den in der docker-compose.yaml angeben. Wenn ich das tue, erhalte ich eine Fehlermeldung beim Starten des Containers, weil der Port wohl schon in Verwendung ist.
Hat jemand noch einen Tipp für mich?
Einen Kommentar schreiben:

Einen Kommentar schreiben: