Vraag


Acties:
  • 0 Henk 'm!

  • shmp
  • Registratie: Maart 2008
  • Laatst online: 04-09 12:22
Beste Tweakers,

Hopelijk kunnen jullie mij helpen. De vraag is simpel, alleen de uitwerking niet (voor mij althans)

Mijn vraag
...
Hoe maak ik een tabel/grafiek van mijn dagverbruik. Haal alle gegevens van mijn slimme meter en heb letterlijk mijn tellerstanden. Het enige wat ik hoef te doen is deze van elkaar af te trekken.

Tellerstand Dal 16-06 23:59 = 16485
Tellerstand Dal 16-06 0:00 = 16481

Dagverbruik = 4 kWh


Relevante software en hardware die ik gebruik
...
Voor het uitlezen gebruik ik een p1 kabel, verbonden aan mijn Rpi waar Openhabian op draait (OpenHab).
De data maak ik persistent met InfluxDB die Grafana gebruikt voor de data.


Wat ik al gevonden of geprobeerd heb
...
Heel het net afspeuren naar een oplossing, maar ik krijg het niet goed verwoord/gevonden via de normale zoekmethoden.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Jesse-
  • Registratie: Oktober 2015
  • Laatst online: 20:02
Welke versie van InfluxDB gebruik je? Vanaf 2.0 werkt het allemaal namelijk net even anders.

Ik draai zelf 2.0 en heb daarin een Task aangemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
option task = {name: "Dagtotaal stroom"0 0 * * *", offset: 1m}

data = from(bucket: "bron_bucket")
    |> range(start: -duration(v: int(v: 24h)))
    |> filter(fn: (r) =>
        (r["entity_id"] == "energy_production_total"))
    |> filter(fn: (r) =>
        (r["_field"] == "value"))

data
    |> aggregateWindow(fn: spread, every: 24h)
    |> to(bucket: "stroom_bucket", org: "myorg")

Deze task pakt elke dag om 0:00 het verschil tussen de laagste en hoogste weggeschreven waarde (de spread) in de afgelopen 24 uur en schrijft dit naar een andere bucket. Voor elke dag komt daar een entry in met de verbruikte stroom. Daar maak ik met Grafana dan weer grafieken van.

Voor zover ik weet kan je in Grafana dit soort bewerkingen niet live op de data uitvoeren, maar als ik er naast zit hoor ik ook graag meer.

Acties:
  • +2 Henk 'm!

  • jobr
  • Registratie: Januari 2009
  • Laatst online: 26-07 21:40
shmp schreef op donderdag 17 juni 2021 @ 08:57:
Beste Tweakers,

Hopelijk kunnen jullie mij helpen. De vraag is simpel, alleen de uitwerking niet (voor mij althans)

Mijn vraag
...
Hoe maak ik een tabel/grafiek van mijn dagverbruik. Haal alle gegevens van mijn slimme meter en heb letterlijk mijn tellerstanden. Het enige wat ik hoef te doen is deze van elkaar af te trekken.

Tellerstand Dal 16-06 23:59 = 16485
Tellerstand Dal 16-06 0:00 = 16481

Dagverbruik = 4 kWh


Relevante software en hardware die ik gebruik
...
Voor het uitlezen gebruik ik een p1 kabel, verbonden aan mijn Rpi waar Openhabian op draait (OpenHab).
De data maak ik persistent met InfluxDB die Grafana gebruikt voor de data.


Wat ik al gevonden of geprobeerd heb
...
Heel het net afspeuren naar een oplossing, maar ik krijg het niet goed verwoord/gevonden via de normale zoekmethoden.
Zoiets in Grafana:
SELECT (max("value") - min("value"))/1000 FROM "Usage-1" WHERE ("name" = 'ElectraVerbruik-P1') AND $timeFilter GROUP BY time(1d) fill(null) TZ('Europe/Amsterdam')

Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 21:29
Same issue hier.. probleem nog niet opgelost dus ik kijk ff mee.. Heb zelf een youless en die stuurt alleen tellerstanden :)

Acties:
  • 0 Henk 'm!

  • shmp
  • Registratie: Maart 2008
  • Laatst online: 04-09 12:22
Jesse- schreef op donderdag 17 juni 2021 @ 09:32:
Welke versie van InfluxDB gebruik je? Vanaf 2.0 werkt het allemaal namelijk net even anders.

Ik draai zelf 2.0 en heb daarin een Task aangemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
option task = {name: "Dagtotaal stroom"0 0 * * *", offset: 1m}

data = from(bucket: "bron_bucket")
    |> range(start: -duration(v: int(v: 24h)))
    |> filter(fn: (r) =>
        (r["entity_id"] == "energy_production_total"))
    |> filter(fn: (r) =>
        (r["_field"] == "value"))

data
    |> aggregateWindow(fn: spread, every: 24h)
    |> to(bucket: "stroom_bucket", org: "myorg")

Deze task pakt elke dag om 0:00 het verschil tussen de laagste en hoogste weggeschreven waarde (de spread) in de afgelopen 24 uur en schrijft dit naar een andere bucket. Voor elke dag komt daar een entry in met de verbruikte stroom. Daar maak ik met Grafana dan weer grafieken van.

Voor zover ik weet kan je in Grafana dit soort bewerkingen niet live op de data uitvoeren, maar als ik er naast zit hoor ik ook graag meer.
Moet eerlijk zeggen dat ik zelf niet echt iets met de DB zelf doe. Maar dit is iets om in het achterhoofd te houden.

Acties:
  • 0 Henk 'm!

  • shmp
  • Registratie: Maart 2008
  • Laatst online: 04-09 12:22
jobr schreef op donderdag 17 juni 2021 @ 18:49:
[...]


Zoiets in Grafana:
SELECT (max("value") - min("value"))/1000 FROM "Usage-1" WHERE ("name" = 'ElectraVerbruik-P1') AND $timeFilter GROUP BY time(1d) fill(null) TZ('Europe/Amsterdam')
Ga deze eens proberen! Thanks!

Acties:
  • 0 Henk 'm!

  • Hooglander1
  • Registratie: September 2003
  • Niet online

Hooglander1

Zot intellegent

Ik heb hem op basis van mijn eigen timefilter:
code:
1
2
3
4
5
6
7
SELECT (spread("Dal") + spread("Piek" ))
AS "total"
FROM (
SELECT ("value") as Dal FROM "p1" WHERE ("entity_id" = 'energy_consumption_tarif_1') AND $timeFilter
), (
SELECT ("value") as Piek FROM "p1" WHERE ("entity_id" = 'energy_consumption_tarif_2') AND $timeFilter
)


Timefilter kan je dan aanpassen naar je eigen waarde. Maar er zijn verschillende wegen naar Rome, je kan ook een integral van je field value pakken :)

Lid van de Tweakers Kenwood TTM-312 club.

Pagina: 1