Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API voor live gas verbruik #562

Closed
Proxx opened this issue Dec 6, 2018 · 12 comments
Closed

API voor live gas verbruik #562

Proxx opened this issue Dec 6, 2018 · 12 comments
Milestone

Comments

@Proxx
Copy link

Proxx commented Dec 6, 2018

ik zou graag ook mijn gas verbruik inzichtelijk hebben via de api

GET - consumption/gas-live

{
    "timestamp": "2018-12-06T09:39:00Z",
    "currently_delivered":xxx,
    "cost_per_hour": 0.xx,
}
@dennissiemensma
Copy link
Member

Bedankt voor je verzoek. Ik heb het gasverbruik destijds bewust niet opgenomen als 'live' omdat het verre van live is. Voor oude meters is er pas na een uur een update beschikbaar en voor nieuwere meters na een kwartier.

Heb je ook al gekeken of het dagtotaal (tot nu toe) wellicht een optie voor je is? Die is wat minder onderhevig aan veranderingen. Gedurende de dag zie je dan je gasverbruik oplopen.

https://dsmr-reader.readthedocs.io/nl/latest/api.html#get-consumption-today

Mocht je toch een vertraagde versie willen hebben voor 'live' gas, dan zal ik het overwegen.

@Proxx
Copy link
Author

Proxx commented Dec 7, 2018

het klopt mijn meter geeft ong elke 10min. een gasmeting geloof ik.
met die dagtotalen heb ik vandaag gespeeld om zo tot het zelfde resultaat te komen alleen lukt dit (nog) niet. als je de mogelijkheid ziet om het in DSMR api te verwerken heel graag als het is niet te werk is,

@dennissiemensma
Copy link
Member

Prima. Ik laat de feature dan openstaan om een keer in te bouwen.

@dennissiemensma
Copy link
Member

Ik heb hier nu even opnieuw naar gekeken en ik zie nu waarom ik dit destijds niet gebouwd heb.

De telegrammen uit de meter geven het huidige verbruik aan in een apart veld. Voor gas is dat niet aanwezig, alleen de gasstand.

Deze gegevens zijn echter ook beschikbaar via de API. Alleen zie ik nu dat die API-calls nooit zijn opgenomen in de documentatie op Read The Docs. Hah. Dat is best wel spijtig. Ze staan overigens wel in de auto-documentatie op /docs/v2/#consumption-gas-list.

Ik zal kijken of ze nog steeds werken, want in principe kun je daarmee makkelijk je "live" verbruik uitrekenen. Daarna zal ik ze sowieso toevoegen aan de documentatie op Read The Docs.

@dennissiemensma
Copy link
Member

Volgens mij werken ze nog steeds goed, dus kun je ze gebruiken. Alle telegrammen worden eerst in losse telegram-records opgeslagen. Daarna wordt elektriciteit en gas in aparte records gesplitst, ook wel 'consumption' genoemd binnen het project. Deze records zijn via de API te benaderen, maar waren dus niet ontsloten in de API docs.

De 'gas consumption' is degene die je wilt weten. Dit zijn alle records die elk uur (of in jouw geval waarschijnlijk sneller) aangemaakt worden. Via de API is het dan een kwestie van:

  • Resultset limiteren tot 2
  • Aflopend sorteren op tijdstip (meest recente eerst)

Call: /api/v2/consumption/gas?limit=2&ordering=-read_at

{
    "count": 28793,
    "next": "http://raspberrypi/api/v2/consumption/gas?limit=2&offset=2&ordering=-read_at",
    "previous": null,
    "results": [
        {
            "id": 28857,
            "read_at": "2019-04-19T08:00:00+02:00",
            "delivered": "2850.538",
            "currently_delivered": "0.233"
        },
        {
            "id": 28856,
            "read_at": "2019-04-19T07:00:00+02:00",
            "delivered": "2850.305",
            "currently_delivered": "0.000"
        }
    ]
}

Vervolgens kun je dan zelf de twee meterstanden van elkaar aftrekken om je 'live' gasverbruik in te zien.

@dennissiemensma
Copy link
Member

Mocht je hier desondanks niet uitkomen of nog aanvullingen hebben dan hoor ik het graag! Ik maak even een apart issue om deze API-calls op te nemen in de documentatie.

@dennissiemensma dennissiemensma added this to the Other milestone Apr 19, 2019
@dennissiemensma
Copy link
Member

Nog een aanvulling. Ik zie dat je simpelweg gewoon het laatste record kan opvragen, omdat daar het meest recente verbruik in zit. Dus:

/api/v2/consumption/gas?limit=1&ordering=-read_at

En dan het veld "currently_delivered": "0.233" (uit bovenstaand voorbeeld).

@dennissiemensma dennissiemensma modified the milestones: Other, 2.1.0 Apr 19, 2019
@dennissiemensma
Copy link
Member

Ik overweeg om alsnog een API-call te maken, die bovenstaande eigenlijk onderwater doet.

@dennissiemensma
Copy link
Member

De docs voor de bestaande API-call staan nu op de dev-docs:

https://dsmr-reader.readthedocs.io/nl/development/api.html#get-consumption-gas

@dennissiemensma dennissiemensma changed the title Feature Request: API voor live gas verbruik API voor live gas verbruik Apr 19, 2019
dennissiemensma added a commit that referenced this issue Apr 19, 2019
dennissiemensma added a commit that referenced this issue Apr 19, 2019
dennissiemensma added a commit that referenced this issue Apr 19, 2019
dennissiemensma added a commit that referenced this issue Apr 21, 2019
@dennissiemensma
Copy link
Member

Gemerged naar development voor volgende release.

@joep2000
Copy link

Hi Dennis,
Is het veld 'gas_currently_delivered' ook beschikbaar als een MQTT veld?
Mijn meter spuugt de waarde elke 5 minuten uit, en daar kan je al wat meer mee!

@dennissiemensma
Copy link
Member

Hallo Joep, dat is wellicht mogelijk. Ik denk dat je daarvoor dan het beste even een apart issue kunt maken hier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants