HomeWizard P1 dongle

Last Updated on 19 december 2023 by Syds

In deze tutorial leg ik stap voor stap uit hoe je een de HomeWizard P1 dongle installeert en configureert. De data opslaat in een MariaDB en Domoticz, en visualiseert in Google Data Studio. Benodigdheden:
  • HomeWizard P1 dongle
  • Smartphone, Tablet of ander device met WiFi
Reeds geïnstalleerd en up-and-running:
  • Domoticz
  • 2.4Ghz WIFI-netwerk benaderbaar via andere SSID als je 5Ghz netwerk
  • Node-Red
  • MariaDB
Stappenplan Stap 1. Installatie van de dongle Plaats de P1 dongle in P1 poort van de slimme meter (bij de ISKRA AM550 zit deze rechtsboven achter een beschermkapje). Als de LED wit gaat knipperen krijgt hij voldoende voeding van de slimme meter. Zo niet, sluit dan een telefoonadapter of iets dergelijks aan op de micro USB poort. Stap 2. HomeWizard App installeren
  • Download de HomeWizard Energy App via de playstore, en doorloop de volgende schermen:
  • Hou de knop op de dongle zo’n 5 seconden ingedrukt, de LED begint blauw te knipperen. De dongle is nu in pairing mode (en creëert een AP met SSID “P1meterSetup” (wachtwoord is SetupPass))
  • De volgende schermen verschijnen:
  • Na verloop van tijd begint de data binnen te komen in de app
  • Achterhaal in je router het IP-adres wat de dongle heeft gekregen. In mijn geval was het ip-adres 192.168.2.165. Een nslookup van dit adres leverde de hostnaam espressif.sydspost.nl (p.s. toen ik de dongle uitpakte en installeerde had de dongle de firmware versie 1.5.3, de nslookup leverde met deze firmware een hostnaam op die niet aan RFC942 voldeed, name “HW p1dongle 242B76”, een hostnaam met spaties dus. Blijkbaar heeft HomeWizard dit opgelost in de firmware versie die de dongle even later zelf geupdated had, firmware versie 2.3.0, de hostnaam is nu espressif.sydspost.nl)
noot: 6-11-2022: spontaan, waarschijnlijk na een automatisch firmware update, is mijn hostnaam veranderd in http://hw-p1meter-242b76.sydspost.nl. Blijkbaar is bovenstaand probleem met het niet voldoen aan RFC942 opgelost en genereert de dongle nu een correcte hostname. Stap 3. API uitproberen { "smr_version": 50, "meter_model": "ISKRA 2M550T-1011", "wifi_ssid": "H369ABF8AF9", "wifi_strength": 58, "total_power_import_t1_kwh": 14943.6, "total_power_import_t2_kwh": 7005.623, "total_power_export_t1_kwh": 2567.151, "total_power_export_t2_kwh": 6051.882, "active_power_w": 1867, "active_power_l1_w": 1067, "active_power_l2_w": 12, "active_power_l3_w": 794, "total_gas_m3": 4338.403, "gas_timestamp": 210521214009 }
  • werkt dus als een trein
Stap 4. Database aangemaakt
  • Op basis van bovenstaande JSON bericht heb ik de tabel “Slimme meter” aangemaakt in mijn MariaDB “Energy” (zie ook eerdere tutorials zoals Zonnepanelen uitlezen, Slimme watermeter, Verbruik elektrische auto)
CREATE TABLE `slimme_meter` ( `sample datetime` datetime NOT NULL, `levering tarief 1` float(10,3) DEFAULT NULL, `levering tarief 2` float(10,3) DEFAULT NULL, `teruglevering tarief 1` float(10,3) DEFAULT NULL, `teruglevering tarief 2` float(10,3) DEFAULT NULL, `actief vermogen` int(32) DEFAULT NULL, `actief vermogen l1` int(32) DEFAULT NULL, `actief vermogen l2` int(32) DEFAULT NULL, `actief vermogen l3` int(32) DEFAULT NULL, `levering gas` float(10,3) DEFAULT NULL, `delta tarief 1` float(10,3) DEFAULT NULL, `delta tarief 2` float(10,3) DEFAULT NULL, `delta teruglevering tarief 1` float(10,3) DEFAULT NULL, `delta teruglevering tarief 2` float(10,3) DEFAULT NULL, `delta levering gas` float(10,3) DEFAULT NULL, PRIMARY KEY (`sample datetime`) );
  • Vervolgens met onderstaand INSERT statement de huidige meterstanden ingevoerd als eerste record in de database. Dit ten behoeve van de Node-red flow in de volgende stap waarbij de laatste meterstanden worden opgevraagd om de delta tussen de huidige meting en en vorige meting te kunnen bepalen. Verander de rood gekleurde waarden (levering tarief 1, levering tarief 2, teruglevering tarief 1, teruglevering tarief 2, levering gas) in de meetwaarden van je eigen slimme meter, pas eventueel ook de datum aan (niet noodzakelijk)
INSERT INTO `` (`sample datetime`,`levering tarief 1`,`levering tarief 2`,`teruglevering tarief 1`,`teruglevering tarief 2`,`actief vermogen`,`actief vermogen l1`,`actief vermogen l2`,`actief vermogen l3`,`levering gas`,`delta tarief 1`,`delta tarief 2`,`delta teruglevering tarief 1`,`delta teruglevering tarief 2`,`delta levering gas`) VALUES ('2021-05-21 21:42:28',14943.600,7005.645,2567.151,6051.882,0,0,0,0,4338.403,0.000,0.000,0.000,0.000,0.000);
  • Geef de MariaDB gebruiker “googledata” leesrechten op de tabel “slimme meter”, dit t.b.v. Google data studio
grant select on energy.slimme_meter to 'googledata'@'%';   Stap 5. Node-red flow aangemaakt
  • Toelichting
Node Doel
Run once Start dit deel van de flow eenmalig op bij het opstarten van Node-red
Get last added values Bouwt een SQL-statement op die de laatst toegevoegde meterstanden ophaalt uit de tabel “slimme meter”
Database Connectie naar de MariaDB database ‘Energy’
Set previous meter readings Plaatst de meterstanden ‘levering tarief 1’, ‘levering tarief 2’, ‘teruglevering tarief 1’, ‘teruglevering tarief 2’ en ‘levering gas’ in de flow context
Interval Zorgt er voor dat iedere 5 minuten de waarden uit de API van de dongle worden ingelezen in de database
HomeWizard Energy P1 HTTP get “http://espressif.sydspost.nl/api/v1/data”
Build SQL Bouwt het INSERT statement op met waarden uit het JSON bericht uit de dongle, bepaalt de delta waarden tussen de huidige en de vorige meting, en zet de nieuwe meterstanden in de flow context
Database Connectie naar de MariaDB database ‘Energy’
Msg.topic Debugging
  • Export van de flow
[{"id":"32a3499c.31c8a6","type":"tab","label":"Slimme meter","disabled":false,"info":""},{"id":"8c726c09.6e93b","type":"function","z":"32a3499c.31c8a6","name":"Build SQL","func":"// {\n//    \"smr_version\": 50, \n//    \"meter_model\": \"ISKRA  2M550T-101\",\n//    \"wifi_ssid\": \"My Wi-Fi\",\n//    \"wifi_strength\": 100,\n//    \"total_power_import_t1_kwh\": 10830.511,\n//    \"total_power_import_t2_kwh\": 2948.827,\n//    \"total_power_export_t1_kwh\": 1285.951,\n//    \"total_power_export_t2_kwh\": 2876.514,\n//    \"active_power_w\": -543,\n//    \"active_power_l1_w\": -676,\n//    \"active_power_l2_w\": 133,\n//    \"active_power_l3_w\": 0,\n//    \"total_gas_m3\": 2569.646,\n//    \"gas_timestamp\": 210606140010\n// }\n\nvar sql = \"insert into slimme_meter (`sample datetime`, `levering tarief 1`, `levering tarief 2`, `teruglevering tarief 1`, `teruglevering tarief 2`, `actief vermogen`, `actief vermogen l1`, `actief vermogen l2`, `actief vermogen l3`, `levering gas`, `delta tarief 1`, `delta tarief 2`, `delta teruglevering tarief 1`, `delta teruglevering tarief 2`,`delta levering gas`)\"\nsql = sql + \"values (:sample_datetime, :levering_tarief_1, :levering_tarief_2, :teruglevering_tarief_1, :teruglevering_tarief_2, :actief_vermogen, :actief_vermogen_l1, :actief_vermogen_l2, :actief_vermogen_l3, :levering_gas, :delta_tarief_1, :delta_tarief_2, :delta_teruglevering_tarief_1, :delta_teruglevering_tarief_2, :delta_levering_gas);\";\n\nmsg.payload.sample_datetime=new Date();\nmsg.payload.levering_tarief_1=msg.payload[\"total_power_import_t1_kwh\"];\nmsg.payload.levering_tarief_2=msg.payload[\"total_power_import_t2_kwh\"];\nmsg.payload.teruglevering_tarief_1=msg.payload[\"total_power_export_t1_kwh\"];\nmsg.payload.teruglevering_tarief_2=msg.payload[\"total_power_export_t2_kwh\"];\nmsg.payload.actief_vermogen=msg.payload[\"active_power_w\"];\nmsg.payload.actief_vermogen_l1=msg.payload[\"active_power_l1_w\"];\nmsg.payload.actief_vermogen_l2=msg.payload[\"active_power_l2_w\"];\nmsg.payload.actief_vermogen_l3=msg.payload[\"active_power_l3_w\"];\nmsg.payload.levering_gas=msg.payload[\"total_gas_m3\"];\nmsg.payload.delta_tarief_1=msg.payload[\"total_power_import_t1_kwh\"] - flow.get(\"levering_tarief_1\");\nmsg.payload.delta_tarief_2=msg.payload[\"total_power_import_t2_kwh\"] - flow.get(\"levering_tarief_2\");\nmsg.payload.delta_teruglevering_tarief_1=msg.payload[\"total_power_export_t1_kwh\"] - flow.get(\"teruglevering_tarief_1\");\nmsg.payload.delta_teruglevering_tarief_2=msg.payload[\"total_power_export_t2_kwh\"] - flow.get(\"teruglevering_tarief_2\");\nmsg.payload.delta_levering_gas=msg.payload[\"total_gas_m3\"] - flow.get(\"levering_gas\");\n\n// node.warn(flow.get(\"levering_tarief_1\"));\n// node.warn(flow.get(\"levering_tarief_2\"));\n// node.warn(flow.get(\"teruglevering_tarief_1\"));\n// node.warn(flow.get(\"teruglevering_tarief_2\"));\n// node.warn(flow.get(\"levering_gas\"));\n\nflow.set(\"levering_tarief_1\",msg.payload.levering_tarief_1);\nflow.set(\"levering_tarief_2\",msg.payload.levering_tarief_2);\nflow.set(\"teruglevering_tarief_1\",msg.payload.teruglevering_tarief_1);\nflow.set(\"teruglevering_tarief_2\",msg.payload.teruglevering_tarief_2);\nflow.set(\"levering_gas\",msg.payload.levering_gas);\n\nmsg.topic=sql;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":160,"wires":[["c05d4fa9.4a2a9"]]},{"id":"aefc334f.f0a0a","type":"debug","z":"32a3499c.31c8a6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"topic","targetType":"msg","statusVal":"","statusType":"auto","x":1040,"y":160,"wires":[]},{"id":"c05d4fa9.4a2a9","type":"mysql","z":"32a3499c.31c8a6","mydb":"8056d2ce.5f8c8","name":"Database","x":820,"y":160,"wires":[["aefc334f.f0a0a"]]},{"id":"b2499835.eb3748","type":"inject","z":"32a3499c.31c8a6","name":"Run once","props":[],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":140,"y":80,"wires":[["f223071b.d8a678"]]},{"id":"f223071b.d8a678","type":"function","z":"32a3499c.31c8a6","name":"Get last added values","func":"var sql = \"select * from slimme_meter where `sample datetime` = (select max(`sample datetime`) from slimme_meter);\"\n\nmsg.topic=sql;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":360,"y":80,"wires":[["b6ab26c6.0552a8"]]},{"id":"b6ab26c6.0552a8","type":"mysql","z":"32a3499c.31c8a6","mydb":"8056d2ce.5f8c8","name":"Database","x":620,"y":80,"wires":[["9cabe089.395ad"]]},{"id":"9cabe089.395ad","type":"function","z":"32a3499c.31c8a6","name":"Set previous meter readings","func":"flow.set(\"levering_tarief_1\",msg.payload[0][\"levering tarief 1\"]);\nflow.set(\"levering_tarief_2\",msg.payload[0][\"levering tarief 2\"]);\nflow.set(\"teruglevering_tarief_1\",msg.payload[0][\"teruglevering tarief 1\"]);\nflow.set(\"teruglevering_tarief_2\",msg.payload[0][\"teruglevering tarief 2\"]);\nflow.set(\"levering_gas\",msg.payload[0][\"levering gas\"]);\n\n// node.warn(flow.get(\"levering_tarief_1\"));\n// node.warn(flow.get(\"levering_tarief_2\"));\n// node.warn(flow.get(\"teruglevering_tarief_1\"));\n// node.warn(flow.get(\"teruglevering_tarief_2\"));\n// node.warn(flow.get(\"levering_gas\"));\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":880,"y":80,"wires":[[]]},{"id":"5f757b69.1e0884","type":"inject","z":"32a3499c.31c8a6","name":"Interval","props":[],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":140,"y":160,"wires":[["a3b91f83.17e2d"]]},{"id":"a3b91f83.17e2d","type":"http request","z":"32a3499c.31c8a6","name":"HomeWizard Energy P1","method":"GET","ret":"obj","paytoqs":"ignore","url":"http://espressif.sydspost.nl/api/v1/data","tls":"","persist":false,"proxy":"","authType":"","x":370,"y":160,"wires":[["8c726c09.6e93b"]]},{"id":"8056d2ce.5f8c8","type":"MySQLdatabase","z":"","name":"mysql","host":"localhost","port":"3306","db":"energy","tz":"","charset":"UTF8"}] Stap 6. Domoticz geconfigureert
  • Voor het inlezen van de meterstanden in Domoticz maak ik gebruik van een HTTP/HTTPS poller op het Hardware tab
  • Toelichting op niet default waarden
Attribuut Waarde Toelichting
Naam P1 slimme meter Zinvolle naam
Type HTTP/HTTPS poller
ContentType application/json API van dongle geeft een JSON bericht terug
URL http://espresif.sydspost.nl/api/v1/data URL van de API
Commando p1.lua Naam van het lua script wat uitgevoerd moet worden nadat het JSON bericht is opgehaald
Vernieuwen 300 Om de 5 minuten het JSON bericht ophalen
noot: 6-11-2022: spontaan, waarschijnlijk na een automatisch firmware update, is mijn hostnaam veranderd in http://hw-p1meter-242b76.sydspost.nl. Blijkbaar is bovenstaand probleem met het niet voldoen aan RFC942 opgelost en genereert de dongle nu een correcte hostname.
  • Vervolgens twee virtuele sensors aangemaakt voor electra en gas
  •   Achterhaal op het tabblad Apparaten de IDX’en van beide virtuele sensoren:
Electra: 228, Gas: 229
    • Tevens een lua script aangemaakt die de waarden toevoegt aan de virtuele sensors, dit lua script geplaatst in /home/pi/domoticz/scripts/lua_parsers  (vervang de roodgekleurde waarden door de IDX van de door jou aangemaakte virtuele sensors)
  • pi@raspberrypi:~/domoticz/scripts/lua_parsers $ cat p1.lua —— BEGIN —— — Read API values s = request[‘content’]; — Gasmeter local idGas = 229 local a = domoticz_applyJsonPath(s,’.total_gas_m3′) domoticz_updateDevice(idGas,”,a*1000) — Energiemeter — Dal import value local b = domoticz_applyJsonPath(s,’.total_power_import_t1_kwh’) — Piek import value local c = domoticz_applyJsonPath(s,’.total_power_import_t2_kwh’) — Dal return value local d = domoticz_applyJsonPath(s,’.total_power_export_t1_kwh’) — Piek return value local e = domoticz_applyJsonPath(s,’.total_power_export_t2_kwh’) — Active Watt Usage local f = domoticz_applyJsonPath(s,’.active_power_w’) local g = math.abs(domoticz_applyJsonPath(s,’.active_power_w’)) if f<0 then f=0 elseif f>0 then g=0 end local h = domoticz_applyJsonPath(s,’active_power_l1_w’) local i = domoticz_applyJsonPath(s,’active_power_l2_w’) local j = domoticz_applyJsonPath(s,’active_power_l3_w’) local idEnergy = 228 domoticz_updateDevice(idEnergy,”,b*1000 ..”;”..c*1000 ..”;”..d*1000 ..”;”..e*1000 ..”;”..f..”;”..g) —— END ——
    • Tot slot de logging gechecked, en ta-da de waarden komen binnen
2021-06-01 18:24:13.095 Status: P1 slimme meter: Worker started…
2021-06-01 18:24:18.162 CLuaHandler (updateDevice from LUA) : idx=229 nvalue= svalue=4364593.0 invalue=0 signallevel=12 batterylevel=255
2021-06-01 18:24:18.173 CLuaHandler (updateDevice from LUA) : idx=228 nvalue= svalue=15145155.0;7042123.0;2602.256;6130.956;5157.0;0 invalue=0 signallevel=12 batterylevel=255
Stap 7. Google data studio rapportage gemaakt:
  • Op het dashboard een tweetal staafdiagrammen toegevoegd die het stroomverbruik, en de teruglevering van stroom over de afgelopen week weergeeft
  • Tevens een staafdiagram voor het gas verbruik
  • Hiervoor heb ik de volgende SQL-statements gebruikt
Rapport element SQL-statement
Dashboard:
  • Verbruik afgelopen 30 dagen
  • Teruglevering afgelopen 30 dagen
  • Gas
select `sample datetime` as ‘sample_datetime’, `levering tarief 1` as ‘levering_tarief_1’, `levering tarief 2` as ‘levering_tarief_2′, `teruglevering tarief 1` as ’teruglevering_tarief_1′, `teruglevering tarief 2` as ’teruglevering tarief 2′, `actief vermogen` as ‘actuele levering’, `levering gas` as ‘levering_gas’, `delta tarief 1` as ‘delta_tarief_1’, `delta tarief 2` as ‘delta_tarief_2’, `delta teruglevering tarief 1` as ‘delta_teruglevering_tarief_1’, `delta teruglevering tarief 2` as ‘delta_teruglevering_tarief_2’, `delta levering gas` as ‘delta_levering_gas’ from slimme_meter order by `sample datetime`;
  • En de volgende instellingen
Links

33 gedachten over “HomeWizard P1 dongle

  1. Marco Cattel zegt:

    Hey, mooie post! helder en meteen uitgeprobeerd. Alles werkt exact zoals je beschrijft, behalve de datastudio. Mijn mariadb kan niet worden gevonden door een of andere firewall of zo…

    Waar ik mee zit nog is het feit dat ik dit run op een chromebook-linux omgeving. Echter deze wil nog wel eens resetten waardoor ik er pas later achter kom dat ik een dag gemist heb.

    Er is dacht ik geen API om historische data op te vragen toch?
    enige wat ik zie is het abo… van home wizard, maar dat wilden we nou juist niet…

    Beantwoorden
    1. Syds zegt:

      Marco,

      Dank voor je compliment. Om datastudio met je lokale mariadb/mysql database te verbinden is best wel een lastige inderdaad. De user die je daarvoor gebruikt moet de juiste rechten op de tabellen hebben. Tevens moet je op de router een portforwarding opzetten naar je server op poort 3306. Zie voor meer info https://www.sydspost.nl/index.php/2021/03/23/opbrengst-zonnepanelen-uitlezen-2/. Onder aan deze pagina vindt je meer over het opzetten van een verbinding tussen je database en datastudio.

      Wat dataverlies betreft, misschien is het een optie voor je om een raspberry pi zero 2w of banana pi m2 Zero aan te schaffen. Dit zijn heel kleine microcontrollers die weinig stroom gebruiken maar toch heel krachtig zijn. Op mijn site vind je meer info over hoe deze microcontrollers van Raspbian of Debian linux te voorzien. De raspberry pi zero 2w heb je al voor zo’n 18 euro maar zijn momenteel niet leverbaar. De banana pi m2 Zero is een kloon, is wat duurder maar volop verkrijgbaar. Daarmee je een constante datastroom garanderen. De microcontroller is ook krachtig genoeg om je mariadb en node-red te draaien. Je kunt er gewoon een 32gb of grotere mini SD kaart in stoppen.

      De API draait lokaal op je HomeWizard dongle en slaat geen historie op.

      Beantwoorden
  2. David zegt:

    Mooi project. Ik ben begonnen met Domoticz en probeer de gegevens van de home wizzard watermeter in Domoticz te krijgen. Ook zou ik graag de totaalstand bij willen houden. Ik loop tegen wat zaken aan.
    Kun je me tegen vergoeding hiermee helpen?

    Beantwoorden
  3. Trees zegt:

    Homewizzard gekocht en u geeft duidelijke uitleg maar het lukt me niet
    Er staat steeds geen verbinding mogelijk met netwerk p1 meter setup
    Wat kan ik verder doen? Bedankt!

    Beantwoorden
    1. Syds zegt:

      Trees, klinkt alsof je telefoon de homewizard niet kan bereiken/vinden, kan een aantal oorzaken hebben:
      1. Moderne telefoons/laptops pakken het 5ghz WIFI netwerk, echter de homewizard werkt uitsluitend op het 2.4Ghz netwerk. Mijn advies zou zijn om je 5Ghz en 2.4Ghz netwerk op je router een eigen SSID te geven, en met je telefoon/laptop aan dat WiFI netwerk te connecteren
      2. Je homewizard heeft onvoldoende WiFi bereik. Ga eens met je telefoon of laptop naast de homewizard staan en kijk hoeveel streepjes bereik je hebt. Plaats eventueel een accesspoint naast je homewizard (heb ik ook moeten doen)
      3. De homewizard krijgt geen IP address van je router/dhcp server, check je router/dhcp configuratie

      Volgens mij staan er nog wel meer tips op de homewizard website. Mocht geen van bovenstaande tot een oplossing leiden, dan kun je daar eventueel ook nog te rade gaan

      Veel succes,

      Syds

      Beantwoorden
  4. Trees zegt:

    Homewizzard gekocht en u geeft duidelijke uitleg maar het lukt me niet
    Er staat steeds geen verbinding mogelijk met netwerk p1 meter setup
    Wat kan ik verder doen? Bedankt!

    Beantwoorden
  5. Robberts zegt:

    Ik krijg deze melding wat kan dat zijn?
    Error: CLuaHandler: C:\Program Files (x86)\Domoticz\scripts\lua_parsers\p1.lua:1: syntax error near ‘@’

    Beantwoorden
    1. Syds zegt:

      Hoi,

      Er hoort helemaal geen apestaartje @ in p1.lua te zitten, dus misschien is er iets misgegaan bij het knippen en plakken. Onderstaand mijn p1.lua

      cat p1.lua
      —— BEGIN ——
      — Read API values
      s = request[‘content’];


      — Gasmeter

      local idGas = 229
      local a = domoticz_applyJsonPath(s,’.total_gas_m3′)
      domoticz_updateDevice(idGas,”,a*1000)


      — Energiemeter

      — Dal import value
      local b = domoticz_applyJsonPath(s,’.total_power_import_t1_kwh’)
      — Piek import value
      local c = domoticz_applyJsonPath(s,’.total_power_import_t2_kwh’)
      — Dal return value
      local d = domoticz_applyJsonPath(s,’.total_power_export_t1_kwh’)
      — Piek return value
      local e = domoticz_applyJsonPath(s,’.total_power_export_t2_kwh’)
      — Active Watt Usage
      local f = domoticz_applyJsonPath(s,’.active_power_w’)
      local g = domoticz_applyJsonPath(s,’active_power_l1_w’)
      local h = domoticz_applyJsonPath(s,’active_power_l2_w’)
      local i = domoticz_applyJsonPath(s,’active_power_l3_w’)

      local idEnergy = 228
      domoticz_updateDevice(idEnergy,”,b*1000 ..”;”..c*1000 ..”;”..d..”;”..e..”;”..f. .”;”..’0′)
      —— END ——

      Kun je dit knippen en plakken in jou versie, uiteraard de device-id’s van jou domoticz devices aanpassen in idGas en idEnergy.

      Hoor graag of het gelukt is,

      Syds

      Beantwoorden
      1. Leon zegt:

        hoi Syds,
        wellicht al een heel ouwe post waarop ik reageer, maar… zou je een linkje naar een gezipte versie van je lua-script kunnen posten? als ik de text uit de browser copieer naar vi krijg ik ook allerlei rare “unexpected symbols” omdat de browser blijkbaar unicode-8 of zo rendert.

        Beantwoorden
        1. Syds zegt:

          Leon,

          Sorry dat ik zo laat reageer, maar had je reactie niet eerder gezien. Ik stuur je zo het lua script per mail.

          Syds

          Beantwoorden
  6. Robberts zegt:

    Ik krijg nu deze melding
    Error: CLuaHandler: C:\Program Files (x86)\Domoticz\scripts\lua_parsers\p1.lua:1: unexpected symbol near ”

    Beantwoorden
  7. Robberts zegt:

    Hi Syds
    ik krijg deze melding :
    2022-12-22 23:02:21.974 Error: CLuaHandler: C:\Program Files (x86)\Domoticz\scripts\lua_parsers\p1.lua:1: unexpected symbol near ”

    dit script heb ik gecopieerd en aangepast
    —— BEGIN ——
    — Read API values
    s = request[‘content’];


    — Gasmeter

    local idGas = 1
    local a = domoticz_applyJsonPath(s,’.total_gas_m3′)
    domoticz_updateDevice(idGas,”,a*1000)


    — Energiemeter

    — Dal import value
    local b = domoticz_applyJsonPath(s,’.total_power_import_t1_kwh’)
    — Piek import value
    local c = domoticz_applyJsonPath(s,’.total_power_import_t2_kwh’)
    — Dal return value
    local d = domoticz_applyJsonPath(s,’.total_power_export_t1_kwh’)
    — Piek return value
    local e = domoticz_applyJsonPath(s,’.total_power_export_t2_kwh’)
    — Active Watt Usage
    local f = domoticz_applyJsonPath(s,’.active_power_w’)
    local g = domoticz_applyJsonPath(s,’active_power_l1_w’)
    local h = domoticz_applyJsonPath(s,’active_power_l2_w’)
    local i = domoticz_applyJsonPath(s,’active_power_l3_w’)

    local idEnergy = 2
    domoticz_updateDevice(idEnergy,”,b*1000 ..”;”..c*1000 ..”;”..d..”;”..e..”;”..f. .”;”..’0′)
    —— END ——

    Beantwoorden
  8. Robberts zegt:

    deze error hoop dat ie nu weegegeven wordt 226 moet tussen staan ik kan hem niet posten hij wordt eruit gefilterd!
    CLuaHandler: C:\Program Files (x86)\Domoticz\scripts\lua_parsers\p1.lua:1: unexpected symbol near 226

    Beantwoorden
  9. robbert zegt:

    Ik kom er niet uit, zou je contact willen opnemen met mij via bovenstaande mail.
    Alvast bedankt
    R

    Beantwoorden
  10. Robberts zegt:

    Hi syds. Ik denk dat er toch wat dingen weggevallen zijn van plaatjes het probleem zit in nose-red
    Ik weet niet goed hoe ik dat aan de gang moet krijgen. Ik heb een database op de server op een andere locatie draaien die ik wil benaderen. Dus buitenshuis.

    Beantwoorden
    1. Syds zegt:

      Hoi, ik heb wat meer informatie nodig om je te kunnen helpen. a) is die database op een andere locatie een MariaDB of MySQL database? b) Indien MariaDB/MySQL, kun je hem vanaf de machine waarop je NodeRed hebt draaien met bijv. de command line tool mysql ? c) Heb je de tabel “slimme meter” al aangemaakt in het schema “energy” ? d) Heb je je actuele meterstanden handmatig toegevoegd aan de database mbv het insert statement e) Heb je de flow ingelezen ? f) Heb je de server instellingen aangepast in de database connectie g) Heb je een foutmelding voor me ?

      Syds

      Beantwoorden
  11. Robberts zegt:

    Kunnen we eens bellen dat gaat denk ik makkelijker als je het wilt he.
    Ik heb je mail trouwens
    niet binnengekregen, wel fijn dat je me wilt helpen.

    Beantwoorden
  12. Ruud Mastenbroek zegt:

    Goedendag,

    Toevallig dat ik op deze site uitkom en hopelijk wil en kun jij mij verder helpen. De support pagina van homewizard laat op zich wachten.
    Ik heb vandaag een P1 meter van hun geïnstalleerd. Aanvankelijk ging alles goed,verbinding maken, thuis wifi netwerk verbinden maken, totdat hij hem aan het huis wilde toevoegen en toen verscheen de melding; DevicePairingChallengeError (424)
    Ik kan er nergens iets over vinden en de dongle brand gewoon groen. Verschillende keren geprobeerd maar telkens bleef de melding komen. Ik kan ook niets vinden over een reset doen of zo.
    Hopelijk kun jij mij verder helpen. Groeten.

    Beantwoorden
    1. Ruud Mastenbroek zegt:

      Inmiddels gelukt na er achter gekomen te zijn hoe de dongle te resetten. (knop vasthouden totdat hij wit gaat branden)

      Beantwoorden
  13. Sven zegt:

    Hey,
    Mooi stukje werk ben het aan het proberen alleen snap ik die interval niet vanaf de P1 in de MariaDB 🙂 aangezien vind het nergens terug in je uitleg.

    Mvg

    Sven

    Beantwoorden
    1. Syds zegt:

      Sven, dank voor je bericht. De interval staat inderdaad niet expliciet beschreven, zowel voor Domoticz als node-red is deze 5 minuten. Bij Domoticz vindt je dit terug bij de instellingen van de http-poller, namelijk 300 sec. Bij node-red vindt je dit terug in de instellingen van de interval node. Mvg, Syds

      Beantwoorden
  14. Robert zegt:

    Hi,

    top uitleg! Heb naast de P1 ook een 3 fasen meter voor de zonnepanelen. Die werkt t zelfde, komt alleen wat anders uit. Daarnaast ook de API van openweathermap.org toegevoegd. Nu alleen die MariaDB aan Google Analytics knopen. Ik heb wat moeite met toegang krijgen: Heb jij nog wat tips om die DB toegankelijk te maken voor Google Analytics?

    Ik had wel eens met node-RED geklooid maar met jouw uitleg was t echt simpel en snel gedaan!

    Thx
    Robert

    Beantwoorden
    1. Syds zegt:

      Robert, is al weer een tijdje geleden dat ik dat in elkaar gedraaid heb. Wat is me ervan herinner is dat het beste een eigen domein naam kunt hebben, anders heb je kans dat bij verandering van provider oid je al je Google data rapporten moet aanpassen. Verder moet je de poort van mariadb in je router openzetten. Een heel belangrijke stap is een user binnen mariadb aanmaken met de juiste rechten op de tabellen en die vanaf buiten je netwerk de data mag ophalen. Mocht je er niet uitkomen, ben tot volgende week dinsdag in Spanje, neem daarna weer even contact op met vermelding waar je vastloopt of welke foutmelding je krijgt. Groet, Syds

      Beantwoorden
    1. Syds zegt:

      Egbert, heb me er even in verdiept en het vertalen van het json bericht wat uit de HomeWizard komt naar het json bericht benodigd voor de GPX site is vrij eenvoudig te doen. M.b.v. Node-red of Python moet dat eenvoudig te realiseren zijn. Heb met Postman geprobeerd een testmeting te posten naar https://dashboard.gpx.nl/api/meters/measurement/test/, en dat werkt en krijg het bericht in de body van de response terug. Als ik echter het bericht naar de standaard omgeving wil sturen, dan krijg ik een lege respons {} terug, en verschijnt er geen data in mijn meter overzicht. Enig idee wat er mis gaat ? Hieronder het testbericht wat ik stuur:

      {
      “power”: {
      “sn”: “4530303334303037303030383633333137”,
      “timestamp”: “240319165506S”,
      “import_1”: “034533.202”,
      “import_2”: “014966.282”,
      “export_1”: “004847.549”,
      “export_2”: “011535.991”,
      “tariff”: 2,
      “actual_import”: “01.000”,
      “actual_export”: “00.000”
      },
      “gas”: {
      “sn”: “4730303333353935393031353831333137”,
      “timestamp”: “240319165005S”,
      “gas”: “8317.048”
      },
      “solar”: null
      }

      Graag je reactie,

      Syds

      Beantwoorden
    1. Syds zegt:

      Reinier, ik vermoed van wel. Bij aanroep van de API krijgen je een JSON bericht terug die je verder kan verwerken in je script. Heb verder niet zoveel kennis van JavaScript, dus daarbij kan ik je niet helpen.

      Beantwoorden

Geef een reactie

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