Stroomkosten, gaskosten en waterkosten zichtbaar maken in Domoticz

In Domoticz is het erg eenvoudig om het stroomverbruik te tonen als je een thermostaat hebt als bijvoorbeeld een Eneco’s Toon. Je ziet dat het verbruik in kW (en bij gas in M3). Nog handiger zou het zijn als je het verbruik in EUR zou kunnen zien. In dit artikel gaan we uitleggen hoe je eenvoudig het verbruik in geld kunt tonen d.m.v. een Python-script.

Allereerst moet je de Toon thermostaat koppelen aan Domoticz. Onderstaande zeven sensoren krijg je dan te zien. In dit voorbeeld gaat het om IDX 6 (Stroom).

Maak nu een Dummy hardware aan:

Klik vervolgens op Create Virtual Sensors en maak een Virtual Sensor aan van het type Custom Sensor. Na het toevoegen kijk je bij SETUP > DEVICES welk IDX de virtuele sensor gekregen heeft. Dit IDX hebben we dadelijk voor het script nodig.

custom sensor Domoticz

 

Python-script

Alle sensoren zijn nu in Domoticz zichtbaar, het is tijd voor het Python-script. Er zijn zes regels die je naar jouw situatie moet aanpassen:

regel 17: Vaste kosten per dag in eurocenten (zoals vastrecht)
regel 18: kosten per kW in eurocenten
regel 20: IDX van de energiemeter
regel 21: IDX van de virtuele custom sensor
regel 22: wijzig hier het IP en de poort van jouw Domoticz-installatie
regel 23: wijzig hier het IP en de poort van jouw Domoticz-installatie

Nadat je de wijziging aangebracht hebt plaats je het python-script in de folder /home/pi/domoticz/scripts/python/ met de naam stroomkosten.py


 

Crontab

Om ervoor te zorgen dat het script iedere 10 minuten uitgevoerd wordt gaan we een cron job instellen. Open de tabel van de cron jobs met commando:


En voeg onderstaande regel toe:

*/10 * * * * python /home/pi/domoticz/scripts/python/stroomkosten.py

Vanaf nu zijn de stroomkosten in Domoticz zichtbaar en worden de kosten iedere 10 minuten bijgewerkt.

stroomkosten Domoticz


Uiteraard kun je bovenstaand python-script ook gebruiken om de gaskosten en waterkosten in Domoticz te tonen.

 

Bron: MikeF, domoticz forum

18 gedachten over “Stroomkosten, gaskosten en waterkosten zichtbaar maken in Domoticz

  • 23 september 2018 om 16:52
    Permalink

    Ik ben hier inmiddels een paar uur mee bezig geweest maar ik krijg mijn idx stroomkosten niet geactiveerd. Het script lijkt ergens niet te kloppen. Ik heb het werkend gehad echter na aanpassing van python na versie 3.5.3 lijkt het script niet meer te werken. Heb je nog een suggestie om dit op te lossen?

    Beantwoorden
  • 29 september 2018 om 13:31
    Permalink

    Geen idee wat er bij je fout gaat… hier werkt het gewoon met de laatste update (Python 3.5.3).

    Beantwoorden
  • 27 oktober 2018 om 12:52
    Permalink

    He hallo.

    Bizar wat een mooi script…
    Alleen vraagje, Kan hij misschien ook “gewoon ” in de Domoticz interne Python editor gezet worden?
    Juist door crontabs, en de externe script plaat, wordt hij minder makkelijk.
    En voor een backup in Domoticz heb je alles incl de interne editor..

    Telt dit script evt ook op?
    Om te kijken wat een teruglever idx opbrengt?

    Beantwoorden
    • 27 oktober 2018 om 15:04
      Permalink

      hahaha Ik wou dat ik het kon….
      Ik zoek me suf voor mooie scripts..
      Maar schrijven of aanpassen.. pffff lukte me dat maar.
      Ik ben een bricklayer met een digitale hobby.
      maar mijn kennis te klein voor dit.
      En in deze tijden moet ik meters maken, om mijn pensioen veilig te stellen..

      dus als je ooit tijd hebt,….

      GRAAG

      Beantwoorden
  • 14 december 2018 om 13:02
    Permalink

    Hallo,
    Bij het uitvoeren van het script krijg ik de volgende foutmelding:
    File “stroomkosten.py”, line 20
    url = DomoBaseURL + idx
    IndentationError: expected an indented block

    Wat kan hier de oorzaak van zijn?

    gr.

    cor

    Beantwoorden
    • 14 december 2018 om 22:19
      Permalink

      Welke Python-versie heb je geïnstalleerd?

      Beantwoorden
  • 6 oktober 2019 om 12:01
    Permalink

    Aanpassing :

    DomoBaseURL = ‘http://192.168.2.152:8080/json.htm?type=devices&rid=’
    DomoWriteURL = ‘http://192.168.2.152:8080/json.htm?type=command&param=udevice&nvalue=0&idx=’

    Beantwoorden
    • 22 februari 2020 om 18:57
      Permalink

      In Domoticz: Setup > Settings

      Heb je de juiste ip-adres(sen) bij Local Networks staan?

      Beantwoorden
      • 22 februari 2020 om 19:01
        Permalink

        jij bedoeld onder “Lokale netwerken (geen gebruikersnaam/wachtwoord)”
        daar is 192.168.250.3 ingevuld

        Beantwoorden
    • 29 maart 2020 om 16:10
      Permalink

      Hi,

      Ik heb hetzelfde probleem.

      Ik krijg een http 200 (Ok), en een error.

      Als ik met Wireshark kijk, dan lijkt alles ok te gaan, er kan met Domoticz gecommuniceerd te worden.

      In het script heb ik wat debug statements geplaatst om te kijken wat er fout gaat. Zo laat ik de foutcode ook naar de Domoticz log schrijven:

      DomoMessageURL = ‘http://192.168.178.11:8080/json.htm?type=command&param=addlogmessage&message=’urlmessage= DomoMessageURL + r.text

      print (r.status_code, r.reason)
      print (r.text)

      s = requests.get (urlmessage)

      In de Domoticz log zie je de message ook daadwerkelijk weggeschreven.

      Ik ben er nog niet uit waarom de custom sensor niet wordt geüpdatet……. Wellicht jij wel……

      Wat anders:

      In de cron job staat volgens mij een fout, klopt dit?

      */10 * * * * python /home/pi/domoticz/scripts/python/stroomkosten.py

      Forward slash en sterretje voor de forward slash weghalen:

      10 * * * * python /home/pi/domoticz/scripts/python/stroomkosten.py

      Beantwoorden
      • 29 maart 2020 om 20:25
        Permalink

        Nee, de cron job is juist: iedere 10 minuten zal het script draaien (13.10, 13.20, 13.30, 13.40, etc).
        Als je de regel gebruikt die jij geschreven hebt dan zal het script “10 over x uur” (13.10, 14.10, 15.10, etc.) draaien.

        Beantwoorden
  • 29 maart 2020 om 20:06
    Permalink

    Het zit hem in de argumenten van de json aanroep.

    Dit script gebruikt:

    Aanroep op deze website: DomoWriteURL = ‘http://192.168.2.152:8080/json.htm?type=command&Param=udevice&nvalue=0&idx=’

    De Domoticz documentatie zegt:

    Aangepaste aanroep: http://192.168.178.11:8080/json.htm?type=command&param=udevice&idx=81&nvalue=0&svalue=1.03 Euro

    de idx ziet bij de eerste aanroep helemaal achteraan, tezamen met de waarde.

    Bij de 2e aanroep zit de idx waarde niet achteraan. Ik krijg hier direct de juiste reactie uit.

    Ik heb de url direct in een webbrowser geplakt en uitgevoerd. Met de Ontwikkel tools van Chrome zie je wat de response is. Je kunt ook het programma Postman gebruiken als je dat handiger vindt.

    Voor mij is het probleem opgelost. Het ligt hem niet aan welke python versie je gebruikt.
    Ook niet in het opnieuw aanmaken van de custom sensor etc.

    Beantwoorden
    • 30 maart 2020 om 11:59
      Permalink

      Genuanceerder, het zit hem in de volgorde van de argumenten/keys achter de json.htm?

      Het werkt nog steeds!

      Beantwoorden
  • 2 april 2020 om 11:40
    Permalink

    Dit hele script werkt trouwens ook prima als je direct je stroommeter uit leest met een P1 kabel, daar is niet specifiek een Toon voor nodig 😉 Mogelijk ook even lief om te vermelden omdat je nu specifiek spreekt over dat je Toon moet koppelen.

    Beantwoorden
  • 3 april 2020 om 07:58
    Permalink

    Een recente update heeft er voor gezorgd dat scripts niet altijd juist getoond werden. Dit is nu hersteld.

    Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *