[Modul] Grafana

CPU Auslastung schwankt zwischen 12 und 25%.

Wenn ich dein Script ausführe, geht es kurz auf 51% Auslastung, dann aber wieder runter.

Antwort auf dein Script:

Record Limit:10000 Start : 01.01.1970 01:00:00 Laufzeit : 8 Sekunden / Werte : Fehler
Record Limit:9000 Start : 01.01.1970 01:00:00 Laufzeit : 4 Sekunden / Werte : Fehler
Record Limit:8000 Start : 01.01.1970 01:00:00 Laufzeit : 5 Sekunden / Werte : Fehler
Record Limit:7000 Start : 01.01.1970 01:00:00 Laufzeit : 4 Sekunden / Werte : Fehler
Record Limit:6000 Start : 01.01.1970 01:00:00 Laufzeit : 4 Sekunden / Werte : Fehler
Record Limit:5000 Start : 01.01.1970 01:00:00 Laufzeit : 4 Sekunden / Werte : Fehler
Record Limit:4000 Start : 01.01.1970 01:00:00 Laufzeit : 2 Sekunden / Werte : Fehler
Record Limit:3000 Start : 01.01.1970 01:00:00 Laufzeit : 2 Sekunden / Werte : Fehler
Record Limit:2000 Start : 01.01.1970 01:00:00 Laufzeit : 1 Sekunden / Werte : Fehler
Record Limit:1000 Start : 01.01.1970 01:00:00 Laufzeit : 2 Sekunden / Werte : Fehler

Vielleicht magst mal die anderen Stufen probieren

Aggregationsstufe	
AGGREGATIONSSTUFE	BESCHREIBUNG
0	Stündliche Aggregation
(00:00 - 59:59)
1	Tägliche Aggregation
(00:00:00 - 23:59:59)
2	Wöchentliche Aggregation
(Montag 00:00:00 - Sonntag 23:59:59)
3	Monatliche Aggregation
(Erster Monatstag 00:00:00 - Letzter Monatstag 23:59:59)
4	Jährliche Aggregation
(01.01. 00:00:00 - 31.12. 23:59:59)
5	5-Minütige Aggregation (Aus Rohdaten berechnet)
6	1-Minütige Aggregation (Aus Rohdaten berechnet)

In dieser Zeile :

$werte = @AC_GetAggregatedValues($archiv, $variable, 5 , $starttime, time(), $RecordLimit);

Bei den Aggregationsstufen 0-4 ist die Laufzeit 0 Sekunden.
5 und 6 laufen auf einen Fehler.
Das ist doch Mist.

5 und 6 werden aus den Rohwerten beim Aufruf berechnet.
Nach meiner Rechnung hast du pro Tag 43200 Werte.
Wenn du die als nicht Aggregated Werte ausliest kriegts du nur 10000 (MaxLimit)
Also folgendes Script liefert dir 10000 Werte aber nicht den ganzen Tag.
Mal die Startzeit auf 4 Stunden stellen, da solltest du alle Werte bekommen.
In welcher Zeit ?

$archiv = 25204;
$variable = 43687;

    
$starttime = time() - ( 24*60*60 );     // 24 Stunden zurueck
    
$start = time() ;
$werte = AC_GetLoggedValues($archiv, $variable,  $starttime, time(),0);
$ende = time();
$diff = $ende - $start;
    
$s = count($werte);
$startdata = @$werte[$s-1]['TimeStamp'];
             
echo "Start : " .date('d.m.Y H:i:s',$startdata) . " Laufzeit : ". $diff . " Sekunden / Werte : " . $s ;   

Start : 17.07.2022 11:25:43 Laufzeit : 1 Sekunden / Werte : 10000

1 „Gefällt mir“

10000 ist das normale Limit. Wenn man keine Agg-Stufe will gibt er genau 10000
zurueck , Startzeit ist dementsprechend.
Man kann dieses Limit in den Spezialschaltern erhoehen.
Lies dir mal diesen Thread durch

Ich noch mal, mit meinem letzten Versuch mit Grafana zu arbeiten.
Folgende Abfrage eine Variable die sekündlich geloggt wird.
Zeitraum in Grafana 5 Minuten.
Payload Aggregationsstufe 0

Im Log sagt er
18.07.2022, 16:40:45 | GetAdditionalData[468] | Input-$Aggregationsstufe[0]
18.07.2022, 16:40:45 | GetAdditionalData[505] | Output-Aggregationsstufe[-1]
18.07.2022, 16:40:45 | CheckZeitraumForAggregatedValues[565] | Keine Aggregation uebergeben
18.07.2022, 16:40:45 | CheckZeitraumForAggregatedValues[613] | Anzahl Tage:0.0034722222222222 Aggreagationsstufe:99 Aggregationstype:0

Hook Laufzeit 30s

Für mich sieht es danach aus als wenn er die Aggregationsstufe nicht beachtet. Vielleicht täusche ich mich auch.
Verstehen tue ich nicht, das eine Abfrage von 5 Minuten geloggter Werte aus der Datenbank 30s dauert.

Hallo
Das $ Zeichen sollte da nicht stehen sondern nur Input-Aggregationsstufe[0]

OK, $ entfernt. Kürzesteste Laufzeit ist mit Stufe 4 = 15-20 Sekunden.
Manchmal braucht Stufe 4 allerdings 30 Sekunden und ich bekomme keine Daten in Grafana.
Schneller scheint es wohl mit der Symcon Datenbank nicht zu funktionieren. Oder es liegt an der Symbox. FHEM in Verbindung mit deiner InfluxDB auf einem Raspberry kann das viel schneller. Schade.
Stufe 5 und 6 funktionieren gar nicht, Log sieht wie folgt aus:

TXT: 20.07.2022, 13:01:14 | ProcessHookData[241] | Target:19441,Stromzähler Leistung Gesamt[Tasmota IR Lesekopf]

TXT: 20.07.2022, 13:01:14 | ProcessHookData[275] | From:20.07.2022 07:01:13 - To:20.07.2022 13:01:13

TXT: 20.07.2022, 13:01:14 | ProcessHookData[286] | Startime:20.07.2022 13:01:13

TXT: 20.07.2022, 13:01:14 | ProcessHookData[304] | Data ID:19441

TXT: 20.07.2022, 13:01:14 | GetAdditionalData[468] | Input-Aggregationsstufe[5]

TXT: 20.07.2022, 13:01:14 | GetAdditionalData[505] | Output-Aggregationsstufe[5]

TXT: 20.07.2022, 13:01:14 | GetAdditionalData[505] | Output-Resolution[-1]

TXT: 20.07.2022, 13:01:14 | GetAdditionalData[505] | Output-DataOffset[0]

TXT: 20.07.2022, 13:01:14 | GetAdditionalData[505] | Output-TimeOffset[0]

TXT: 20.07.2022, 13:01:14 | CheckZeitraumForAggregatedValues[559] | 5-Minuetige Aggregation

TXT: 20.07.2022, 13:01:14 | CheckZeitraumForAggregatedValues[613] | Anzahl Tage:0.25 Aggreagationsstufe:5 Aggregationstype:0

TXT: 20.07.2022, 13:01:14 | GetArchivData[871] | GetAggregatedValues:5-15912-19441-1658293273-1658314873

TXT: 20.07.2022, 13:01:15 | ProcessHookData[426] | Data String ALL :

TXT: 20.07.2022, 13:01:15 | ProcessHookData[441] | Hook Endtime:20.07.2022 13:01:15

TXT: 20.07.2022, 13:01:15 | ProcessHookData[442] | Hook Laufzeit:1 Sekunden

TXT: 20.07.2022, 13:01:17 | ProcessHookData[426] | Data String ALL :

TXT: 20.07.2022, 13:01:17 | ProcessHookData[441] | Hook Endtime:20.07.2022 13:01:17

TXT: 20.07.2022, 13:01:17 | ProcessHookData[442] | Hook Laufzeit:3 Sekunden

Gibt es eigentlich die Möglichkeit, nur den aktuellen Wert in der Datenbank abzufragen und den in Grafana anzuzeigen? Dann sollte es doch eine kurze Abfragezeit geben, da er nur ein Datenpunkt abruft. So stelle ich mir das als Laie vor.

Hallo
Bei diesem Log hat die Abfrage doch nur 1 Sekunde gebraucht und die Laufzeit vom Hook
war insgesamt 3 Sekunden !?
Das mit dem letzten Wert muss ich mir anschauen.

Es kommen aber keine Werte zurück.

Was passiert wenn du folgendes Script ausfuehrst ( Sind die Variablen im Log)

$werte = AC_GetAggregatedValues (15912,19441,5,1658293273,1658293273,0);
print_r($werte);

Antwort:

Array
(
[0] => Array
(
[Duration] => 300
[TimeStamp] => 1658293200
[Avg] => -2518.0216666667
[MinTime] => 1658293493
[Min] => -2609.8
[MaxTime] => 1658293200
[Max] => -2455.4
)

)

Nur ein Datensatz bei 6 Stunden ? Das kann nicht normal sein!

Hallo @1007!

Feedback:
heute erst den Modul gesehen, ich war schon mit influxdb am basteln, aber dann würde ich ja sämtliche Werte nochmal speichern. Kurzerhand dein Modul installiert, getestet, Dashboard gebaut, läuft (alles innerhalb von 5 Minuten)

Top Danke! Gruss Marco

Hallo zusammen,
wollte gerade eine Grafana Gauge im WebFront einbinden. Das funktioniert auch. refresh ist auf 10sek. gestellt und man sich die zwei Pfeile auch. Allerdings ändert sich der Wert einfach nicht :frowning:

Und die zweite Frage ist ob es eine Möglichkeit gibt mehrere Werte nebeneinander dazustellen?
Im Grafana sieht es so aus:

Im WebFront habe ich ja nicht die Möglichkeit mehrere Variablen nebeneinander darzustellen?

Danke euch :slight_smile:

Hallo
Ich glaube , das ist ein Webfront Problem.
Wenn du den Link den du eingebunden hast in einem Browser oeffnest , sollte es aktualisiert werden. Mehrere nebeneinander wuerde ich mit ein bischen HTML-Code zu einer Seite zusammen setzen, so wie 4 Bilder nebeneinander und als Webseite einbinden.
Webfront benutze ich halt nicht, deshalb nicht die beste Ahnung.

Danke Dir für die Antwort. Was verwendest du denn statt dem WebFront? Das ganze ist mir ehrlich gesagt auch viel zu unflexibel irgendwie :slight_smile:

Hallo
Ich benutze IPSView und bin sehr zufrieden.

Bei mir läuft Grafana auf in einem linux container. mit http://IPvonSymcon:3777/hook/Grafana bekomme ich „Not Found“ angezeigt.
Symcon läuft aktuell auf einem Raspi

Vielleicht hat jmd das gleich Problem gehabt.