Waarom sla je hem op als time?luigi87 schreef op dinsdag 6 september 2022 @ 19:43:
[...]
gelijk even geprobeerd.
Lua script aangepast en opgeslagen als "time"
de code:
code:
1 2 3 4 5 6 7 8 9 10 11 12 if (devicechanged['p1 meter'] ~= meter) then meter = devicechanged['p1 meter'] --P1 meter uitsplitsen power1, power2, power3, power4, power5, power6 = devicechanged['p1 meter']:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)") --Zonnepanelen uitsplitsen paneelpower = otherdevices_svalues['SAJ inverter']:match("([^;]+);([^;]+)") --Echte verbruik berekenen: verbruik - teruglevering + panelen opbrengst print (paneelpower) stroomverbruik = power5 - power6 + paneelpower --En in een dummy device gooien met idx 63 commandArray[1] = {['UpdateDevice'] = '63|0|' .. stroomverbruik} end
de error:
2022-09-06 19:37:00.646 Error: EventSystem: in LUA Echt verbruik: [string " if (devicechanged['p1 meter'] ~= meter) t..."]:1: attempt to index a nil value (global 'devicechanged')
anders staat mijn log vol met:
2022-09-06 19:56:03.574 Error: EventSystem: Lua script LUA Echt verbruik did not return a commandArray
edit:
Zo is die wel goed en loopt die ook goed.
op het updaten van de idx 63 na dan.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| commandArray = {} if (devicechanged['p1 meter'] ~= meter) then meter = devicechanged['p1 meter'] --P1 meter uitsplitsen power1, power2, power3, power4, power5, power6 = devicechanged['p1 meter']:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)") --Zonnepanelen uitsplitsen paneelpower = otherdevices_svalues['SAJ inverter']:match("([^;]+);([^;]+)") --Echte verbruik berekenen: verbruik - teruglevering + panelen opbrengst print (paneelpower) stroomverbruik = power5 + paneelpower --En in een dummy device gooien met idx 63 commandArray[1] = {['UpdateDevice'] = '63|0|' .. stroomverbruik} end return commandArray |
edit 2:
nee hij updat wel, maar op deze wijze????
63 Dummy sensoren 00082063 1 Echt Verbruik General kWh 0, 101.0
dus er staat eerst een 0 en dan de waarde. dus ik zie niks in de sensor??
edit 3:
Argh, verkeerde dummy aangemaakt....
nu update die wel en heeft de sensor een waarde
[ Voor 70% gewijzigd door luigi87 op 06-09-2022 20:08 ]
- leeg -
Het is in principe een device script. Geen time script.
Maak van die commandArray[1]
Even commandArray[#commandArray + 1]
Dat is wat beter.
Werkend nu?
Maak van die commandArray[1]
Even commandArray[#commandArray + 1]
Dat is wat beter.
Werkend nu?
[ Voor 13% gewijzigd door de Peer op 06-09-2022 20:11 ]
Klopt het is nu ook een device scriptde Peer schreef op dinsdag 6 september 2022 @ 20:09:
Het is in principe een device script. Geen time script.
Maak van die commandArray[1]
Even commandArray[#commandArray + 1]
thanks voor je zetje in de goede richting, nu klopt het volgens mij helemaal.
ik snap alleen die opbouw van de waardes van de slimme meter niet?
5084458; = ???
4147470; = ???
9323323; = ???
21427748; = ???
40; = verbruik?
0 = ???
- leeg -
Top. Ja dat is altijd even puzzelen.luigi87 schreef op dinsdag 6 september 2022 @ 20:14:
[...]
Klopt het is nu ook een device script
thanks voor je zetje in de goede richting, nu klopt het volgens mij helemaal.
ik snap alleen die opbouw van de waardes van de slimme meter niet?
5084458; = ???
4147470; = ???
9323323; = ???
21427748; = ???
40; = verbruik?
0 = ???
Verbruik van vandaag dal/piek etc. En de stand van gisteren. En totale stand sinds begin van meten?
en misschien nog door 1000 delen ofzo.
Slimme meter uit domoticz erbij houden en proberen aan elkaar te linken.
[ Voor 4% gewijzigd door de Peer op 06-09-2022 20:19 ]
Oke, tja 2 telstanden natuurlijk.de Peer schreef op dinsdag 6 september 2022 @ 20:16:
[...]
Top. Ja dat is altijd even puzzelen.
Verbruik van vandaag dal/piek etc. En de stand van gisteren. En totale stand sinds begin van meten?
en misschien nog door 1000 delen ofzo.
Slimme meter uit domoticz erbij houden en proberen aan elkaar te linken.
Ik hou het even in de gaten, het verbruik zou niet heel erg moeten fluctueren aangezien we er nog niet wonen.
Enkel mijn domotica/ netwerk apparatuur is nu een verbruiker.
daarnaast zal de script maken wel nagedacht hebben over de power 5 - power 6 + paneelpower.
- leeg -
Ik heb zojuist een projectje beschreven voor een regenmeter/regensensor die direct reageert als het gaat regenen. Lees gerust als je hier ook naar op zoek bent:
Zigbee regenmeter die direct reageert
Zigbee regenmeter die direct reageert
Weet er iemand of het volgende bestaat ? Ik zou graag een VU meter-achtig iets willen in de woonkamer plaatsen, maar dan op basis van energieverbruik.
De bedoeling is we visueel kunnen zien wanneer er een (grote) teruglevering is op het net van onze zonnepanelen, om daar ons verbruik op af te stellen.
Ongeveer zoiets:
Aliexpress link, maar dan op basis van de metingen van de P1 meter in domoticz.
De bedoeling is we visueel kunnen zien wanneer er een (grote) teruglevering is op het net van onze zonnepanelen, om daar ons verbruik op af te stellen.
Ongeveer zoiets:
Aliexpress link, maar dan op basis van de metingen van de P1 meter in domoticz.
Page intentionally left blank.
Dan moet je daar de hele dag naar kijken en dan naar de wasmschine rennen om hem aan te zetten?StarWing schreef op zondag 11 september 2022 @ 10:57:
Weet er iemand of het volgende bestaat ? Ik zou graag een VU meter-achtig iets willen in de woonkamer plaatsen, maar dan op basis van energieverbruik.
De bedoeling is we visueel kunnen zien wanneer er een (grote) teruglevering is op het net van onze zonnepanelen, om daar ons verbruik op af te stellen.
Ongeveer zoiets:
Aliexpress link, maar dan op basis van de metingen van de P1 meter in domoticz.
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.
Achja. Het idee is grappig.Seafarer schreef op zondag 11 september 2022 @ 13:19:
[...]
Dan moet je daar de hele dag naar kijken en dan naar de wasmschine rennen om hem aan te zetten?
in Nederland heeft het nog weinig zin zolang de salderingsregeling er is.
Persoonlijk zou ik eerder inzetten op domotica. Dus zaken automatiseren ipv alleen een signaaltje geven.
Ik heb een beetje hulp nodig bij een scriptje.
Ik heb in één kamer 2 radiator thermostaten (Danfoss Ally trv's ) en deze wil ik door middel van een dummy thermostaat (of later een losse fysieke ruimtethermostaat) hun set point laten instellen.
Dus als dummy thermostaat ingesteld wordt op ergens tussen 15 tot 25 graden (met stapjes van een halve graad) moeten de 2 danfoss ally TRV's dit setpoint krijgen.
In een andere kamer heb ik er zelfs 5 die dan vanuit één dummy ruimtethermostaat hun setpoint moeten krijgen.
heeft iemand wel eens zoiets gemaakt, of wie kan mij ermee opweg helpen?
Ik heb in één kamer 2 radiator thermostaten (Danfoss Ally trv's ) en deze wil ik door middel van een dummy thermostaat (of later een losse fysieke ruimtethermostaat) hun set point laten instellen.
Dus als dummy thermostaat ingesteld wordt op ergens tussen 15 tot 25 graden (met stapjes van een halve graad) moeten de 2 danfoss ally TRV's dit setpoint krijgen.
In een andere kamer heb ik er zelfs 5 die dan vanuit één dummy ruimtethermostaat hun setpoint moeten krijgen.
heeft iemand wel eens zoiets gemaakt, of wie kan mij ermee opweg helpen?
- leeg -
Volgens mij zou zoiets moeten werken:luigi87 schreef op zondag 11 september 2022 @ 20:36:
Ik heb een beetje hulp nodig bij een scriptje.
Ik heb in één kamer 2 radiator thermostaten (Danfoss Ally trv's ) en deze wil ik door middel van een dummy thermostaat (of later een losse fysieke ruimtethermostaat) hun set point laten instellen.
Dus als dummy thermostaat ingesteld wordt op ergens tussen 15 tot 25 graden (met stapjes van een halve graad) moeten de 2 danfoss ally TRV's dit setpoint krijgen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 47 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(1) -- Radiator local Radiator2 = domoticz.devices(2) -- Radiator local SetTemp = Thermostaat.temperature --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end } |
Ik heb niet gekeken of de syntax klopt of dat hij runt.
[ Voor 4% gewijzigd door rens-br op 12-09-2022 10:00 ]
Thanks,rens-br schreef op maandag 12 september 2022 @ 09:58:
[...]
Volgens mij zou zoiets moeten werken:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 47 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(1) -- Radiator local Radiator2 = domoticz.devices(2) -- Radiator local SetTemp = Thermostaat.temperature --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end }
Ik heb niet gekeken of de syntax klopt of dat hij runt.
dit zou het inderdaad moeten zijn, lijkt het.
Ik heb hem gelijk even getest, met 3 dummy thermostaten maar helaas:
code:
1
2
3
4
5
| 2022-09-12 20:28:19.913 Status: dzVents: Info: Handling events for: "test", value: "26.00" 2022-09-12 20:28:19.913 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-12 20:28:19.916 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-12 20:28:19.917 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:28: attempt to compare number with nil 2022-09-12 20:28:19.917 Status: dzVents: Info: ------ Finished Thermostaat Test |
en regel 28 is":
code:
1
| if SetTemp >= 10 and SetTemp <= 30 then |
heb al even geprobeerd of het eventueel lag aan de 10.0 notatie, maar zelfde error.
Als we het nu eens zonder deze voorwaarde van 10-30 doen.
[ Voor 5% gewijzigd door luigi87 op 12-09-2022 20:41 ]
- leeg -
de waarde die je vergelijkt is leeg.luigi87 schreef op maandag 12 september 2022 @ 20:30:
[...]
Thanks,
dit zou het inderdaad moeten zijn, lijkt het.
Ik heb hem gelijk even getest, met 3 dummy thermostaten maar helaas:
code:
1 2 3 4 5 2022-09-12 20:28:19.913 Status: dzVents: Info: Handling events for: "test", value: "26.00" 2022-09-12 20:28:19.913 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-12 20:28:19.916 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-12 20:28:19.917 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:28: attempt to compare number with nil 2022-09-12 20:28:19.917 Status: dzVents: Info: ------ Finished Thermostaat Test
en regel 28 is":
code:
1 if SetTemp >= 10 and SetTemp <= 30 then
heb al even geprobeerd of het eventueel lag aan de 10.0 notatie, maar zelfde error.
Als we het nu eens zonder deze voorwaarde van 10-30 doen.
als je die even in je log laat zien met print(setTemp) zie je dit denk ik.
dan zou het kunnen liggen aan dit deel:
code:
1
| local SetTemp = Thermostaat.temperature |
waarbij de thermostaat declaratie geen echte thermostaat is en dus wellicht geen .temperature heeft.
probeer .value eens.
luigi87 schreef op maandag 12 september 2022 @ 20:30:
[...]
Thanks,
dit zou het inderdaad moeten zijn, lijkt het.
Ik heb hem gelijk even getest, met 3 dummy thermostaten maar helaas:
code:
1 2 3 4 5 2022-09-12 20:28:19.913 Status: dzVents: Info: Handling events for: "test", value: "26.00" 2022-09-12 20:28:19.913 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-12 20:28:19.916 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-12 20:28:19.917 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:28: attempt to compare number with nil 2022-09-12 20:28:19.917 Status: dzVents: Info: ------ Finished Thermostaat Test
Daar ligt het inderdaad aan, dat moet het onderstaande worden:Heinemancp schreef op dinsdag 13 september 2022 @ 08:17:
dan zou het kunnen liggen aan dit deel:
code:
1 local SetTemp = Thermostaat.temperature
waarbij de thermostaat declaratie geen echte thermostaat is en dus wellicht geen .temperature heeft.
probeer .value eens.
Script wordt dus:Thermostaat.setPoint
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 47 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(ThermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(1) -- Radiator local Radiator2 = domoticz.devices(2) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end } |
Opzich vind ik dit heel netjes.Seafarer schreef op dinsdag 13 september 2022 @ 22:24:
[Afbeelding]
Deze afbeelding zat plots tussen mijn floorplans.
En inderdaad niet zo netjes, ik had geen paswoord ingesteld bij de webside beveiliging.
Andere aanbevelingen waar ik naar moet kijken?
Suggesties:
Fail2ban
Nginx reverse proxy
VPN
who put a "stop payment" on my reality check
Ik heb destijds de website bevesteiliging ingesteld met de basic-Auth optie (beter dan de login pagina) en draai een reverse proxy op mijn NAS waardoor uiteindelijk alleen de ssl poort open staat en de NAS het verkeer doorstuurt naar de juiste domoticz poort. Wanneer ik bijv via ssh bij mijn pi wil komen vanaf buiten mijn eigen netwerk gebruik ik de VPN server van mijn NAS.
Inderdaad heel netjes.
Ik ga daar eens naar kijken.Suggesties:
Fail2ban
Nginx reverse proxy
VPN
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.
Maar had je Domoticz wel naar buiten open staan?Seafarer schreef op dinsdag 13 september 2022 @ 22:24:
[Afbeelding]
Deze afbeelding zat plots tussen mijn floorplans.
En inderdaad niet zo netjes, ik had geen paswoord ingesteld bij de webside beveiliging.
Andere aanbevelingen waar ik naar moet kijken?
Ik heb Domoticz overigens achter een reverse proxy server hangen, namelijk ngnix proxy server en dat werkt perfect.
[ Voor 9% gewijzigd door rens-br op 14-09-2022 08:48 ]
Je bedoelt een portforwarding via de router? inderdaad en heb dit allemaal gecontroleerd en vond ook een 8080 forwarding. Niet handig. (waarschijnijk een vergeten experimentje)rens-br schreef op woensdag 14 september 2022 @ 08:47:
[...]
Maar had je Domoticz wel naar buiten open staan?
Ik heb Domoticz overigens achter een reverse proxy server hangen, namelijk ngnix proxy server en dat werkt perfect.
Maar een forwarding via 443 zou toch niet zo'n ramp moeten zijn?
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.
Een forwarding of via een reverse proxy maakt in dat geval niet uit als er geen ww op zit.
In beide gevallen expose je domoticz aan het internet.
Een wachtwoord erop zetten, eventueel een whitelist van ip adressen in je reverse proxy, en als je veiliger wilt zijn alleen bereikbaar via de vpn.
In beide gevallen expose je domoticz aan het internet.
Een wachtwoord erop zetten, eventueel een whitelist van ip adressen in je reverse proxy, en als je veiliger wilt zijn alleen bereikbaar via de vpn.
Wachtwoord (ww) is natuurlijk nodig, maar poort 443 (TLS, SSL versleuteling) en portforward (geen direct toegang tot je LAN) is ook noodzakelijk want met poort 80/8080 gaat je ww anders onversleuteld over het "boze internet" en dat is ook niet veilig.Seafarer schreef op woensdag 14 september 2022 @ 09:10:
[...]
Je bedoelt een portforwarding via de router? inderdaad en heb dit allemaal gecontroleerd en vond ook een 8080 forwarding. Niet handig. (waarschijnijk een vergeten experimentje)
Maar een forwarding via 443 zou toch niet zo'n ramp moeten zijn?
Bijna iedere browser sessie is tegenwoordig HTTPS (TLS/SSL) en dat is niet voor niets.
De Netwerk/Security boys/girls op Tweakers zullen je ook nog een VLAN en VPN aanraden
[ Voor 3% gewijzigd door Antonio di op 14-09-2022 10:35 ]
profesión: Lo que se cruza en mi camino y disfrutando de la vida
443 of 8080 zal niet veel uitmaken als je geen SSL certificaat gebruikt, maar Domoticz zonder wachtwoord gebruiken is natuurlijk wel vragen om problemen. De schade is denk ik dan ook beperkt aangezien je verder niet echt ergens bij kan.Seafarer schreef op woensdag 14 september 2022 @ 09:10:
[...]
Je bedoelt een portforwarding via de router? inderdaad en heb dit allemaal gecontroleerd en vond ook een 8080 forwarding. Niet handig. (waarschijnijk een vergeten experimentje)
Maar een forwarding via 443 zou toch niet zo'n ramp moeten zijn?
Dat weet ik nog niet 100%, via de scripting zou je misschien nog code kunnen uitvoeren op het systeem, en aangezien domoticz vaak op een pi draait zou je dan ook meteen rootrechten kunnen hebben omdat sudo geen ww vraagt op de pi (wat ik zelf weer activeer op een pi install.)rens-br schreef op woensdag 14 september 2022 @ 10:42:
[...]
443 of 8080 zal niet veel uitmaken als je geen SSL certificaat gebruikt, maar Domoticz zonder wachtwoord gebruiken is natuurlijk wel vragen om problemen. De schade is denk ik dan ook beperkt aangezien je verder niet echt ergens bij kan.
Daar heb jij dan weer een goed punt ja.Lizard schreef op woensdag 14 september 2022 @ 10:58:
[...]
Dat weet ik nog niet 100%, via de scripting zou je misschien nog code kunnen uitvoeren op het systeem, en aangezien domoticz vaak op een pi draait zou je dan ook meteen rootrechten kunnen hebben omdat sudo geen ww vraagt op de pi (wat ik zelf weer activeer op een pi install.)
Begrijp ik dat jij wel sudo en wachtwoord hebt? Hoe heb je dat gedaan ?Lizard schreef op woensdag 14 september 2022 @ 10:58:
[...]
Dat weet ik nog niet 100%, via de scripting zou je misschien nog code kunnen uitvoeren op het systeem, en aangezien domoticz vaak op een pi draait zou je dan ook meteen rootrechten kunnen hebben omdat sudo geen ww vraagt op de pi (wat ik zelf weer activeer op een pi install.)
Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.
Klopt.Seafarer schreef op woensdag 14 september 2022 @ 11:54:
[...]
Begrijp ik dat jij wel sudo en wachtwoord hebt? Hoe heb je dat gedaan ?
In /etc/sudoers.d/010_pi-nopasswd
Heb ik
code:
aangepast naar 1
| pi ALL=(ALL) NOPASSWD: ALL |
code:
1
| pi ALL=(ALL) PASSWD: ALL |
Eigenlijk zou ik de naam van het bestand ook nog moeten aanpassen, maaja...
Hou er wel rekening mee dat typo's in dit bestand ervoor kunnen zogen dat je je sudo rechten kwijt kan zijn.
Ik zou een extra ssh sessie open en daar root worden voordat je dit gaat aanpassen.
[ Voor 29% gewijzigd door Lizard op 14-09-2022 13:25 ]
Sorry voor mijn late reactie. Iets met drukte en werk...Heinemancp schreef op dinsdag 13 september 2022 @ 08:17:
[...]
de waarde die je vergelijkt is leeg.
als je die even in je log laat zien met print(setTemp) zie je dit denk ik.
dan zou het kunnen liggen aan dit deel:
code:
1 local SetTemp = Thermostaat.temperature
waarbij de thermostaat declaratie geen echte thermostaat is en dus wellicht geen .temperature heeft.
probeer .value eens.
Thanks ik ga hem morgen even testen!
Superrens-br schreef op dinsdag 13 september 2022 @ 08:23:
[...]
[...]
Daar ligt het inderdaad aan, dat moet het onderstaande worden:
[...]
Script wordt dus:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 47 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(1) -- Radiator local Radiator2 = domoticz.devices(2) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end }
Morgen eens even testen ermee.
[ Voor 53% gewijzigd door luigi87 op 14-09-2022 22:15 ]
- leeg -
helaas...rens-br schreef op dinsdag 13 september 2022 @ 08:23:
[...]
[...]
Daar ligt het inderdaad aan, dat moet het onderstaande worden:
[...]
Script wordt dus:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 47 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(1) -- Radiator local Radiator2 = domoticz.devices(2) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end }
code:
1
2
3
4
5
6
| 2022-09-15 10:02:37.208 Status: User: XXX initiated a SetPoint command 2022-09-15 10:02:37.750 Status: dzVents: Info: Handling events for: "test", value: "21.50" 2022-09-15 10:02:37.751 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-15 10:02:37.754 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-15 10:02:37.754 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:28: attempt to compare number with nil 2022-09-15 10:02:37.754 Status: dzVents: Info: ------ Finished Thermostaat Test |
Waarde lijkt dus nog steeds leeg
Heb ook nog even met .value geprobeerd, ook zonder succes.
Heinemancp schreef op dinsdag 13 september 2022 @ 08:17:
[...]
de waarde die je vergelijkt is leeg.
als je die even in je log laat zien met print(setTemp) zie je dit denk ik.
dan zou het kunnen liggen aan dit deel:
code:
1 local SetTemp = Thermostaat.temperature
waarbij de thermostaat declaratie geen echte thermostaat is en dus wellicht geen .temperature heeft.
probeer .value eens.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 6602 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(6603) -- Radiator local Radiator2 = domoticz.devices(6604) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end } |
[ Voor 29% gewijzigd door luigi87 op 15-09-2022 11:39 ]
- leeg -
Dat is erg gek. Wat voor device is je thermostaat? En kan je eens met print(SetTemp) kijken wat er in de log verschijnt?luigi87 schreef op donderdag 15 september 2022 @ 10:04:
[...]
helaas...
code:
1 2 3 4 5 6 2022-09-15 10:02:37.208 Status: User: Kaaden initiated a SetPoint command 2022-09-15 10:02:37.750 Status: dzVents: Info: Handling events for: "test", value: "21.50" 2022-09-15 10:02:37.751 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-15 10:02:37.754 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-15 10:02:37.754 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:28: attempt to compare number with nil 2022-09-15 10:02:37.754 Status: dzVents: Info: ------ Finished Thermostaat Test
Waarde lijkt dus nog steeds leeg
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 6602 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(6603) -- Radiator local Radiator2 = domoticz.devices(6604) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end }
Tevens kan je dit ook eens proberen:
code:
1
2
3
4
| if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end |
[ Voor 5% gewijzigd door rens-br op 15-09-2022 10:08 ]
heb de print(SetTemp) na de definitie van settemp gezetrens-br schreef op donderdag 15 september 2022 @ 10:07:
[...]
Dat is erg gek. Wat voor device is je thermostaat? En kan je eens met print(SetTemp) kijken wat er in de log verschijnt?
Tevens kan je dit ook eens proberen:
code:
1 2 3 4 if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 6602 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(6603) -- Radiator local Radiator2 = domoticz.devices(6604) -- Radiator local SetTemp = Thermostaat.setPoint print(SetTemp) --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end } |
resultaat is:"
code:
1
2
3
4
5
6
| 2022-09-15 10:10:43.891 Status: User: XXX initiated a SetPoint command 2022-09-15 10:10:44.215 Status: dzVents: Info: Handling events for: "test", value: "23.00" 2022-09-15 10:10:44.215 Status: dzVents: Info: ------ Start internal script: Thermostaat Test: Device: "test (Dummy)", Index: 6602 2022-09-15 10:10:44.220 Status: dzVents: Error (2.4.19): An error occured when calling event handler Thermostaat Test 2022-09-15 10:10:44.220 Status: dzVents: Error (2.4.19): ...z/scripts/dzVents/generated_scripts/Thermostaat Test.lua:30: attempt to compare number with nil 2022-09-15 10:10:44.220 Status: dzVents: Info: ------ Finished Thermostaat Test |
staat die verkeerd?
het Dummy device wat ik heb aangemaakt is:
"Thermostaat Setpoint"
- leeg -
Ook hiermee nog niks.rens-br schreef op donderdag 15 september 2022 @ 10:07:
[...]
Tevens kan je dit ook eens proberen:
code:
1 2 3 4 if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end
De waarde blijft leeg

- leeg -
Werkt het zonder de 'if-statement' wel? Want aan de print(..) te zien staat er wel de waarde 23.00 in.luigi87 schreef op donderdag 15 september 2022 @ 10:23:
[...]
Ook hiermee nog niks.
De waarde blijft leeg
Hoe krijg ik het if statement eruit?rens-br schreef op donderdag 15 september 2022 @ 10:29:
[...]
Werkt het zonder de 'if-statement' wel? Want aan de print(..) te zien staat er wel de waarde 23.00 in.
Want als ik het --text maak vindt die het script niet meer logisch.
de print is leeg, en doet niks...
code:
1
| 2022-09-15 10:10:44.215 Status: dzVents: Info: Handling events for: "test", value: "23.00" |
deze regel is al het script start met "device" verandering en welke waarde ik dan de dummy thermostaat zet.
IDX zijn veranderd, omdat ik het ook even mijn nieuwe systeem test!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 15-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 150 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(151) -- Radiator local Radiator2 = domoticz.devices(152) -- Radiator local SetTemp = Thermostaat.setPoint --print(SetTemp) --Function if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end } |
Output, zonder de print
code:
1
2
3
4
5
6
| 2022-09-15 10:34:07.423 Status: User: XXX initiated a SetPoint command 2022-09-15 10:34:07.744 Status: dzVents: Info: Handling events for: "Master Bedroom", value: "18.00" 2022-09-15 10:34:07.744 Status: dzVents: Info: ------ Start internal script: Thermostaat Master Bedroom: Device: "Master Bedroom (Dummy sensoren)", Index: 150 2022-09-15 10:34:07.746 Status: dzVents: Info: ------ Finished Thermostaat Master Bedroom 2022-09-15 10:34:07.746 Error: dzVents: Error: (3.1.8) An error occurred when calling event handler Thermostaat Master Bedroom 2022-09-15 10:34:07.746 Error: dzVents: Error: (3.1.8) ...dzVents/generated_scripts/Thermostaat Master Bedroom.lua:29: attempt to compare number with nil |
[ Voor 17% gewijzigd door luigi87 op 15-09-2022 11:40 ]
- leeg -
Je zal ook de end eruit moeten halen:luigi87 schreef op donderdag 15 september 2022 @ 10:34:
[...]
Hoe krijg ik het if statement eruit?
Want als ik het --text maak vindt die het script niet meer logisch.
code:
1
2
3
4
5
| --Function --if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) --end |
Maar kijk eens met
code:
wat er exact allemaal in de device zit1
| print(Thermostaat.rawData) |
en wat komt eruit:
code:
wat er uitkomt
1
| print(Thermostaat.value) |
Kijkt nu loopt het script en update die de radiators met 0.0rens-br schreef op donderdag 15 september 2022 @ 10:38:
[...]
Je zal ook de end eruit moeten halen:
code:
1 2 3 4 5 --Function --if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) --end
Maar kijk eens met
code:wat er exact allemaal in de device zit
1 print(Thermostaat.rawData)
code:
1
2
3
4
| 2022-09-15 10:44:30.279 Status: dzVents: Info: Handling events for: "Master Bedroom", value: "19.50" 2022-09-15 10:44:30.279 Status: dzVents: Info: ------ Start internal script: Thermostaat Master Bedroom: Device: "Master Bedroom (Dummy sensoren)", Index: 150 2022-09-15 10:44:30.281 Status: dzVents: Info: ------ Finished Thermostaat Master Bedroom 2022-09-15 10:44:30.282 Status: EventSystem: Script event triggered: /media/usbdo/domoticz/dzVents/runtime/dzVents.lua |
helemaal niks?????
en wat komt eruit:
code:wat er uitkomt
1 print(Thermostaat.value)
code:
1
2
3
4
| 2022-09-15 10:45:47.189 Status: dzVents: Info: Handling events for: "Master Bedroom", value: "20.00" 2022-09-15 10:45:47.189 Status: dzVents: Info: ------ Start internal script: Thermostaat Master Bedroom: Device: "Master Bedroom (Dummy sensoren)", Index: 150 2022-09-15 10:45:47.191 Status: dzVents: Info: ------ Finished Thermostaat Master Bedroom 2022-09-15 10:45:47.191 Status: EventSystem: Script event triggered: /media/usbdo/domoticz/dzVents/runtime/dzVents.lua |
ook helemaal niks??
ter volledigheid het script nu:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 150 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(151) -- Radiator local Radiator2 = domoticz.devices(152) -- Radiator local SetTemp = Thermostaat.setPoint print(Thermostaat.rawData) print(Thermostaat.value) --Function --if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) --end end } |
- leeg -
ik zie dat je hoofdlettergebruik niet concequent is bij thermostaatNum als je de waarde Thermostaat vult.luigi87 schreef op donderdag 15 september 2022 @ 10:47:
[...]
Kijkt nu loopt het script en update die de radiators met 0.0![]()
[...]
code:
1 2 3 4 2022-09-15 10:44:30.279 Status: dzVents: Info: Handling events for: "Master Bedroom", value: "19.50" 2022-09-15 10:44:30.279 Status: dzVents: Info: ------ Start internal script: Thermostaat Master Bedroom: Device: "Master Bedroom (Dummy sensoren)", Index: 150 2022-09-15 10:44:30.281 Status: dzVents: Info: ------ Finished Thermostaat Master Bedroom 2022-09-15 10:44:30.282 Status: EventSystem: Script event triggered: /media/usbdo/domoticz/dzVents/runtime/dzVents.lua
helemaal niks?????
[...]
code:
1 2 3 4 2022-09-15 10:45:47.189 Status: dzVents: Info: Handling events for: "Master Bedroom", value: "20.00" 2022-09-15 10:45:47.189 Status: dzVents: Info: ------ Start internal script: Thermostaat Master Bedroom: Device: "Master Bedroom (Dummy sensoren)", Index: 150 2022-09-15 10:45:47.191 Status: dzVents: Info: ------ Finished Thermostaat Master Bedroom 2022-09-15 10:45:47.191 Status: EventSystem: Script event triggered: /media/usbdo/domoticz/dzVents/runtime/dzVents.lua
ook helemaal niks??
ter volledigheid het script nu:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 150 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(thermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(151) -- Radiator local Radiator2 = domoticz.devices(152) -- Radiator local SetTemp = Thermostaat.setPoint print(Thermostaat.rawData) print(Thermostaat.value) --Function --if Thermostaat.setPoint>= 15 and Thermostaat.setPoint<= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) --end end }
Daar waren @luigi87 en ik inmiddels via de DM ook achter.Heinemancp schreef op donderdag 15 september 2022 @ 11:07:
[...]
ik zie dat je hoofdlettergebruik niet concequent is bij thermostaatNum als je de waarde Thermostaat vult.

en hielp dat voldoende - werkt het nu?rens-br schreef op donderdag 15 september 2022 @ 11:08:
[...]
Daar waren @luigi87 en ik inmiddels via de DM ook achter.Thx voor de tip.
Jap dat was het probleem ook, we waren even via DM verder gegaan:Heinemancp schreef op donderdag 15 september 2022 @ 11:07:
[...]
ik zie dat je hoofdlettergebruik niet concequent is bij thermostaatNum als je de waarde Thermostaat vult.
Hierbij het perfect werkende script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 150 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(ThermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(151) -- Radiator local Radiator2 = domoticz.devices(152) -- Radiator local SetTemp = Thermostaat.setPoint --Function --if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) --end end } |
- leeg -
Ik zou de commentaar streepjes bij het if statement nog even verwijderen.luigi87 schreef op donderdag 15 september 2022 @ 11:09:
[...]
Jap dat was het probleem ook, we waren even via DM verder gegaan:
Hierbij het perfect werkende script:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 --*------------------------------------------------------------------------------------*-- --Creator: Rens --Date: 12-09-2022 --Last update: --Changelog: --Source: - --Description: Used to set thermostaat --*------------------------------------------------------------------------------------*-- --Declarations local ThermostaatNum = 150 -- Dummy thermostaat return { on = { devices = { ThermostaatNum }, }, execute = function(domoticz, device) --Declarations local Thermostaat = domoticz.devices(ThermostaatNum) -- Thermostaat local Radiator1 = domoticz.devices(151) -- Radiator local Radiator2 = domoticz.devices(152) -- Radiator local SetTemp = Thermostaat.setPoint --Function if SetTemp >= 15 and SetTemp <= 25 then Radiator1.updateSetPoint(SetTemp) Radiator2.updateSetPoint(SetTemp) end end }
Inmiddels tijd gehad om hier mee verder te gaan. Uiteindelijk met postman aan de gang gegaan, daar werkte het direct met dit als body:Groentjuh schreef op donderdag 11 augustus 2022 @ 13:24:
[...]
Execute wordt 2 keer door dzVents aangeroepen. Eenmaal via de timer, eenmaal zodra er een response is.
Lua:
1 2 3 4 5 if (response.isTimer) then -- Hier de code om de http request te doen. elseif (response.isHTTPResponse) then -- Hier de code om de reponse af te handelen. end
Bij de isHTTPResponse is response zo'n object.
{"query":"query{\n\tmarketPricesElectricity(startDate:\"2021-10-01\",endDate:\"2021-10-30\"){\ntill\nfrom\nmarketPrice\n priceIncludingMarkup\n\t}}"}
Ik krijg altijd een 200 terug. echter response.data blijft null in domoticz, dit is ook al ik een foutieve body stuur vanuit postman. Dus iets gaat er niet lekker vanuit domoticz
Als ik in postman een foutieve body stuur, dan krijg ik mooi een error terug. Echter krijg ik het met geen mogelijkheid voor elkaar in dzvents om response.errors geprint te krijgen in de logging.
Kortom, wat moet ik doen. Een voorbeeld van een error (helaas wel 200 als response code, die krijg ik er wel uit met print(response.statusCode) in dzvents):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| { "data": null, "errors": [ { "message": "Expected value of type \"Date!\", found \"20211001\"; Date cannot represent an invalid date-string 20211001.", "locations": [ { "line": 2, "column": 38 } ], "extensions": {} } ] } |
Dus hoe krijg ik die errors table er uit?
En response.json?Ferrox1 schreef op zondag 18 september 2022 @ 16:24:
[...]
Dus hoe krijg ik die errors table er uit?
Helemaal niets..
Ik ga even een losse installatie optuigen om de volledige debug aan te kunnen zetten. In de live omgeving zit te veel om dan de juiste berichten er uit te filteren..
Ah, gevonden... vraag me niet waarom (hier behoorlijk wat uren op stuk geslagen..) Maar het moet niet dit zijn:
code:
1
| postData = {"query" : "query{\n\tmarketPricesElectricity(startDate:\"2021-10-01\",endDate:\"2021-10-30\"){\ntill\nfrom\nmarketPrice\n priceIncludingMarkup\n\t}}"}, |
Ook niet dit:
code:
1
| postData = '{"query" : "query{\n\tmarketPricesElectricity(startDate:\"2021-10-01\",endDate:\"2021-10-30\"){\ntill\nfrom\nmarketPrice\n priceIncludingMarkup\n\t}}"}', |
Ook niet dit:
code:
1
| postData = {\"query\" : \"query{\n\tmarketPricesElectricity(startDate:\"2021-10-01\",endDate:\"2021-10-30\"){\ntill\nfrom\nmarketPrice\n priceIncludingMarkup\n\t}}\"}, |
Maar dit werkt wel:
code:
1
| postData = {["query"] = "query{\n\tmarketPricesElectricity(startDate:\"2021-10-01\",endDate:\"2021-10-30\"){\ntill\nfrom\nmarketPrice\n priceIncludingMarkup\n\t}}"}, |
Ok, waarom, schiet mij maar lek

[ Voor 59% gewijzigd door Ferrox1 op 18-09-2022 20:07 ]
Mensen, ik zit met een probleem.
Ongeveer 2 weken terug heb ik mijn dedicated domotica raspberry pi uitgeschakeld en nu draait domotica in een docker container op een andere pi. Ik heb mn database daar geüpload en alles werkte acuut zoals normaal. Althans dat dacht ik..
Tot ik er gisteren achter kwam dat mijn P1 meter device wel gewoon de actuele en de 5 minuten data opslaat van de de afgelopen 24 uur, maar dat deze data niet wordt opgeslagen in de history. Afgelopen nacht heb ik om 00:00 zitten kijken. En ineens is de dag data gewoon weg en geen nieuwe records in de history database...
Verder werken alle andere devices gewoon normaal. Ook de history. Behalve die P1 meter. Gas gaat wel gewoon goed, maar elektriciteit niet.
Ik heb handmatig ook nog in de database gekeken, geen enkele rariteit te zien in de MultiMeter_Calendar tabel. Hij houdt gewoon op precies op de dag dat ik de pi heb vervangen. Alsof de querie die normaliter de 5 minuten data omzet naar de calendar tabel gewoon überhaupt niet uitgevoerd wordt. Ik heb namelijk ook geen enkele error in de log op dat gebied.
Ik heb container domoticz:stable en container domoticz:latest geprobeerd zonder verschil.
Heeft iemand een idee? Ik wordt wanhopig.
PS. Ik heb een DZvents script draaien dat de data uit elkaar trekt in een paar nieuwe virtual devices voor piek en dal uren splitsing, dus ik kan de data nog wel terughalen sort of. Want die sensoren schrijven wel netjes naar de history. Nu ik dit type bedenk ik me.. zou dit script nog wat te maken kunnen hebben met de problemen? Lijkt me sterk.. maargoed.
Ongeveer 2 weken terug heb ik mijn dedicated domotica raspberry pi uitgeschakeld en nu draait domotica in een docker container op een andere pi. Ik heb mn database daar geüpload en alles werkte acuut zoals normaal. Althans dat dacht ik..
Tot ik er gisteren achter kwam dat mijn P1 meter device wel gewoon de actuele en de 5 minuten data opslaat van de de afgelopen 24 uur, maar dat deze data niet wordt opgeslagen in de history. Afgelopen nacht heb ik om 00:00 zitten kijken. En ineens is de dag data gewoon weg en geen nieuwe records in de history database...
Verder werken alle andere devices gewoon normaal. Ook de history. Behalve die P1 meter. Gas gaat wel gewoon goed, maar elektriciteit niet.
Ik heb handmatig ook nog in de database gekeken, geen enkele rariteit te zien in de MultiMeter_Calendar tabel. Hij houdt gewoon op precies op de dag dat ik de pi heb vervangen. Alsof de querie die normaliter de 5 minuten data omzet naar de calendar tabel gewoon überhaupt niet uitgevoerd wordt. Ik heb namelijk ook geen enkele error in de log op dat gebied.
Ik heb container domoticz:stable en container domoticz:latest geprobeerd zonder verschil.
Heeft iemand een idee? Ik wordt wanhopig.
PS. Ik heb een DZvents script draaien dat de data uit elkaar trekt in een paar nieuwe virtual devices voor piek en dal uren splitsing, dus ik kan de data nog wel terughalen sort of. Want die sensoren schrijven wel netjes naar de history. Nu ik dit type bedenk ik me.. zou dit script nog wat te maken kunnen hebben met de problemen? Lijkt me sterk.. maargoed.
Renault Scenic E-Tech EV - PV-Output
@Japie.G Probeer de cache van je browser eens te legen, vaak lost dat dit soort gekke dingen op.
Bedankt voor je antwoord, maar geen entry’s in een database ligt niet aan browsercache 😉 Het zit ergens in de back end van domoticzKnielen schreef op maandag 19 september 2022 @ 09:34:
@Japie.G Probeer de cache van je browser eens te legen, vaak lost dat dit soort gekke dingen op.
Renault Scenic E-Tech EV - PV-Output
Omdat de laatste een LUA table is. En deze wordt automatisch omgezet naar een json met de juiste header application/json.Ferrox1 schreef op zondag 18 september 2022 @ 19:28:
Ok, waarom, schiet mij maar lek... het werkt in ieder geval
Bij die andere had je misschien deze header niet gezet.
Thanks..!jobr schreef op maandag 19 september 2022 @ 19:13:
[...]
Omdat de laatste een LUA table is. En deze wordt automatisch omgezet naar een json met de juiste header application/json.
Bij die andere had je misschien deze header niet gezet.
Nu zit ik met het volgende probleem, ik krijg de waardes niet uitgelezen. Heb de nodige ervaring met arrays, maar krijg wederom niets, niet eens een foutmelding.
Dit krijg ik terug als voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| { "data": { "marketPricesElectricity": [ { "from": "2022-09-17T22:00:00.000Z", "till": "2022-09-17T23:00:00.000Z", "marketPrice": 0.095, "priceIncludingMarkup": 0.127 }, { "from": "2022-09-17T23:00:00.000Z", "till": "2022-09-18T00:00:00.000Z", "marketPrice": 0.082, "priceIncludingMarkup": 0.112 }, { "from": "2022-09-18T00:00:00.000Z", "till": "2022-09-18T01:00:00.000Z", "marketPrice": 0.077, "priceIncludingMarkup": 0.107 }, { "from": "2022-09-19T21:00:00.000Z", "till": "2022-09-19T22:00:00.000Z", "marketPrice": 0.297, "priceIncludingMarkup": 0.346 } ] } } |
Dzvents pakt dit op als een string. Althans, dat is de error die ik krijg als ik er mee wil werken met de aanname dat het een tabel is. Want ze schrijven dat DZvents het automatisch omzet naar een lua table.
Gelukkig kun je dit forceren met:
code:
1
2
3
| local json = domoticz.utils.fromJSON(response.data) -- en dumpen met: domoticz.utils.dumpTable(json) |
dit genereerd een lange lijst met als voorbeeld (helaas werkt kopieren/plakken niet meer in de laatste stable):
code:
1
2
3
4
5
| 43: till: "2022-09-17T23:00:00.000Z marketPrice: 0.095 priceIncludingMarkup: 0.127 from: 2022-09-17T22:00:00.000Z |
Wat mij opvalt is dat de volgorde anders is..
Echter met
code:
1
2
3
4
5
6
| print(json['30']) print(json[30]) print(json['30'].value) print(json[30].value) print(json['30'].marketPrice) print(json[30]. marketPrice) |
krijg ik er geen waarde uit de tabel. Google helpt me ook niet verder, dus ik ben benieuwd of iemand me een goede hint kan geven waar mijn denkfout zit..

Whoahhh held!jobr schreef op maandag 19 september 2022 @ 20:26:
@Ferrox1
Zoiets misschien: json.data.marketPricesElectricity[1]['marketPrice'] ?
Ik had deze al afgeschreven en daardoor doorgegaan met de table,omdat ik daar wel resultaat uit kreeg
maar ik had een punt staan tussen:
marketPricesElectricity[1].['marketPrice']
Ik kan weer verder, dank!
Ik heb ruzie met de electricity meter in Domoticz.
Wat wil ik:
- netto en totaal stroomverbruik meten.
- dit opslaan in een meter met historische grafieken (custom sensor valt dus af)
Wat heb ik gedaan:
- een electricity sensor aangemaakt
- via dzvent script bereken ik de waarde (actual en total) en plaats ik deze in de sensor
Dit gaat goed tot het einde van de dag. Dan print hij steevast in het tijdvak 0000 uur de hoge totaalwaarde in de meter tabel. Hierdoor begint iedere nieuwe dag met een negatief getal ter grootte van het totaal van de vorige dag.
Omdat plaatjes meer zeggen:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/x5D3ij1eajGPcasCb9L6FpIU.jpg?f=user_large)
:strip_exif()/f/image/OXLmOBgQ5raXFqq3gHivZM4U.jpg?f=fotoalbum_large)
Wat heb ik geprobeerd:
- met een extra stukje code set ik de totaal waarde tussen 2355 en 0030 uur op 0 indien deze te hoog is.
- dit script werkt als ik e.e.a. In een log laat afdrukken. Echter de meter tabel wordt niet bijgewerkt.
- de electricity sensor updaten via een json command ipv het updateelectricity command. Doet hetzelfde.
- de volgende dag helemaal niks doen….echter als ik die dag met -15 begonnen ben en 18 kWh gebruik dan eindig ik die dag met 3 kWh totaal….en begin ik de dag erna met 3 negatief.
Code
Wat doe ik verkeerd?
Ik doe nu dus iedere dag een backup van de database trekken, in de meter tabel bij de betreffende sensoren de waarde van het 0000 tijdstip naar 0 zetten. De backup van de database weer importeren in Domoticz.
Wat wil ik:
- netto en totaal stroomverbruik meten.
- dit opslaan in een meter met historische grafieken (custom sensor valt dus af)
Wat heb ik gedaan:
- een electricity sensor aangemaakt
- via dzvent script bereken ik de waarde (actual en total) en plaats ik deze in de sensor
Dit gaat goed tot het einde van de dag. Dan print hij steevast in het tijdvak 0000 uur de hoge totaalwaarde in de meter tabel. Hierdoor begint iedere nieuwe dag met een negatief getal ter grootte van het totaal van de vorige dag.
Omdat plaatjes meer zeggen:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/x5D3ij1eajGPcasCb9L6FpIU.jpg?f=user_large)
:strip_exif()/f/image/OXLmOBgQ5raXFqq3gHivZM4U.jpg?f=fotoalbum_large)
Wat heb ik geprobeerd:
- met een extra stukje code set ik de totaal waarde tussen 2355 en 0030 uur op 0 indien deze te hoog is.
- dit script werkt als ik e.e.a. In een log laat afdrukken. Echter de meter tabel wordt niet bijgewerkt.
- de electricity sensor updaten via een json command ipv het updateelectricity command. Doet hetzelfde.
- de volgende dag helemaal niks doen….echter als ik die dag met -15 begonnen ben en 18 kWh gebruik dan eindig ik die dag met 3 kWh totaal….en begin ik de dag erna met 3 negatief.
Code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| return { on = { timer = { "every 1 minutes" } }, execute = function(dz) --Devices. local vandaagM3Gas = dz.devices('Gas').counterToday -- Gasmeter device local levering = dz.devices('Stroom').counterDeliveredToday -- Stroomlevering via Stroommeter device local gebruik = dz.devices('Stroom').counterToday -- Stroomgebruik via Stroommeter device local leveringactueel = dz.devices('Stroom').usageDelivered -- Stroomleveringactueel via Stroommeter device local gebruikactueel = dz.devices('Stroom').usage -- Stroomgebruikactueel via Stroommeter device local StroomLevering = dz.devices('Stroomlevering') -- Stroomlevering device local NettoStroomgebruik = dz.devices('Netto stroomgebruik') -- Netto stroomgebruik device - - Dit werkte dus niet. --Indien dagafronding nog niet helemaal verwerkt dan gebruik en levering naar 0. --if dz.time.time >= '23:53' and dz.time.time <= '00:30' and levering > 0.1 then levering = 0 end --if dz.time.time >= '23:53' and dz.time.time <= '00:30' and gebruik > 1 then gebruik = 0 end --Netto stroomgebruik berekenen. local nettoactueel = 0 local nettototaal = 0 local nettoactueel = gebruikactueel - leveringactueel local nettototaal = (dz.utils.round(gebruik - levering, 3)) * 1000 --Stroomlevering berekenen. local leveringtotaal = 0 local leveringtotaal = levering * 1000 - - Toen dit maar geprobeerd. Werkt ook niet. if dz.time.time >= '00:00' and dz.time.time <= '00:30' and nettototaal > 1000 then nettototaal = 0 end if dz.time.time >= '00:00' and dz.time.time <= '00:30' and leveringtotaal > 1000 then leveringtotaal = 0 end --Sensoren updaten. StroomLevering.updateElectricity(leveringactueel,leveringtotaal) NettoStroomgebruik.updateElectricity(nettoactueel,nettototaal) end } |
Wat doe ik verkeerd?
Ik doe nu dus iedere dag een backup van de database trekken, in de meter tabel bij de betreffende sensoren de waarde van het 0000 tijdstip naar 0 zetten. De backup van de database weer importeren in Domoticz.
[ Voor 3% gewijzigd door Panzer_V op 24-09-2022 12:35 ]
Ik doe wat ik kan, zodoende blijft er veel liggen.
leveringtotaal is een counter en die moet volgens mij elke dag hoger worden. Dus niet op 0 beginnen elke dag.Panzer_V schreef op zaterdag 24 september 2022 @ 12:33:
Wat doe ik verkeerd?
Dus huidige waarde pakken en dan je verbruik erbij optellen.
Thanks voor je snelle reactie.jobr schreef op zaterdag 24 september 2022 @ 19:20:
[...]
leveringtotaal is een counter en die moet volgens mij elke dag hoger worden. Dus niet op 0 beginnen elke dag.
Dus huidige waarde pakken en dan je verbruik erbij optellen.
Ik heb mijn scripts aangepast. Morgenochtend kan ik controleren of het goed gegaan is. Ik kom er dan nog even op terug.
Ik doe wat ik kan, zodoende blijft er veel liggen.
Heeft er iemand toevallig een NodeRed Flow voor een ShellyPlus die werkt i.c.m. met Domoticz (en deze kan exporteren)? Het maakt niet uit of het niet helemaal klopt, maar dan heb ik een voorbeeldje.. Ik ben er flink mee aan het stoeien, maar ik snap niet genoeg van NodeRed en het zit redelijk complex in elkaar allemaal. Generatie 1 Shellies zijn wel meer voorbeelden van, maar generatie 2 Shellies niet terwijl ze toch al een tijdje op de markt zijn.
Ik heb nu wat Shelly plus met Homeassistant discovery gekoppeld naar Domoticz, echter als de Shelly zijn stroom verliest dan start dit script niet automatisch meer goed op, dit lijkt me een bug. Ook twijfel ik hoe dit mechanisme werkt bij alle andere Gen 2 devices vandaar de NodeRed.
Ik heb nu wat Shelly plus met Homeassistant discovery gekoppeld naar Domoticz, echter als de Shelly zijn stroom verliest dan start dit script niet automatisch meer goed op, dit lijkt me een bug. Ook twijfel ik hoe dit mechanisme werkt bij alle andere Gen 2 devices vandaar de NodeRed.


Vanmorgen de Domoticz gecheckt en warempel….het gaat helemaal goed!
Het energy deel van de kWh/electricity sensor is dus inderdaad een counter die je moet blijven optellen. Veel heb ik de afgelopen dagen geprobeerd, maar dat niet
Helemaal happy dat het nu werkt
Ik doe wat ik kan, zodoende blijft er veel liggen.
Ik heb bij mijn Shelly plus 1pm een script erin gezet die met een http call data doorzet naar mijn domoticz. Dit script kan je in de webinterface van de shelly toevoegen. Werkt goed, mits je wifi stabiel is (natuurlijk). Had ik in de tuin ergens last van, maar is intussen opgelost.CronoS76 schreef op zaterdag 24 september 2022 @ 23:01:
Heeft er iemand toevallig een NodeRed Flow voor een ShellyPlus die werkt i.c.m. met Domoticz (en deze kan exporteren)? Het maakt niet uit of het niet helemaal klopt, maar dan heb ik een voorbeeldje.. Ik ben er flink mee aan het stoeien, maar ik snap niet genoeg van NodeRed en het zit redelijk complex in elkaar allemaal. Generatie 1 Shellies zijn wel meer voorbeelden van, maar generatie 2 Shellies niet terwijl ze toch al een tijdje op de markt zijn.
Ik heb nu wat Shelly plus met Homeassistant discovery gekoppeld naar Domoticz, echter als de Shelly zijn stroom verliest dan start dit script niet automatisch meer goed op, dit lijkt me een bug. Ook twijfel ik hoe dit mechanisme werkt bij alle andere Gen 2 devices vandaar de NodeRed.
Ik heb dit script https://github.com/ALLTER...ly1p-mqtt-autodiscover.jsCronoS76 schreef op zaterdag 24 september 2022 @ 23:01:
Heeft er iemand toevallig een NodeRed Flow voor een ShellyPlus die werkt i.c.m. met Domoticz (en deze kan exporteren)? Het maakt niet uit of het niet helemaal klopt, maar dan heb ik een voorbeeldje.. Ik ben er flink mee aan het stoeien, maar ik snap niet genoeg van NodeRed en het zit redelijk complex in elkaar allemaal. Generatie 1 Shellies zijn wel meer voorbeelden van, maar generatie 2 Shellies niet terwijl ze toch al een tijdje op de markt zijn.
Ik heb nu wat Shelly plus met Homeassistant discovery gekoppeld naar Domoticz, echter als de Shelly zijn stroom verliest dan start dit script niet automatisch meer goed op, dit lijkt me een bug. Ook twijfel ik hoe dit mechanisme werkt bij alle andere Gen 2 devices vandaar de NodeRed.
toegevoegd en op regel 71
return "shellies/" + CONFIG.shelly_id + "/" + hatype + _t;
bij "shellies" iets anders gezet. Domoticz kent de switch nu
Ik draai een soortgelijk script denk ik op mijn Shelly zelf waardoor ik via Domoticz een autodiscover kan doen. Is dat dit ook? Als ik nu met MQTT Explorer kijk dan staan alle Gen1 shellies in de map "Shellies" en de Gen 2 heeft zijn eigen root folder map. Door het script heb ik ook een map "Homeassistent" in de root van MQTT Explorer.Herman1550 schreef op zondag 25 september 2022 @ 13:32:
[...]
Ik heb dit script https://github.com/ALLTER...ly1p-mqtt-autodiscover.js
toegevoegd en op regel 71
return "shellies/" + CONFIG.shelly_id + "/" + hatype + _t;
bij "shellies" iets anders gezet. Domoticz kent de switch nu
Hoe gebruik je dit script?
Probleem van mijn Homeassistent script is dat na een powerloss de ShellyPlus dit niet opnieuw opstart. Ook een keer een vastloper gehad op de Shelly. Het mooiste vind ik het als het native; zonder gebruik van scripts zou werken.. is naar de toekomst toe wel het meest stabiel; vandaar
In de Shelly zelfbij scriptsCronoS76 schreef op zondag 25 september 2022 @ 18:46:
[...]
Ik draai een soortgelijk script denk ik op mijn Shelly zelf waardoor ik via Domoticz een autodiscover kan doen. Is dat dit ook? Als ik nu met MQTT Explorer kijk dan staan alle Gen1 shellies in de map "Shellies" en de Gen 2 heeft zijn eigen root folder map. Door het script heb ik ook een map "Homeassistent" in de root van MQTT Explorer.
Hoe gebruik je dit script?
Probleem van mijn Homeassistent script is dat na een powerloss de ShellyPlus dit niet opnieuw opstart. Ook een keer een vastloper gehad op de Shelly. Het mooiste vind ik het als het native; zonder gebruik van scripts zou werken.. is naar de toekomst toe wel het meest stabiel; vandaar
Dat werkt alleen bij generatie 2 shellies. Ik heb namelijk geen optie tot scripts op mijn Shelly dimmer 1.
Deze week ga ik eens een begin maken met domoticz. ik wil namelijk mijn verbruik inzichtelijk krijgen. mijn Provider geeft alleen maandverbruik.Dus heb ik een p1 usb kabel gekocht. Het was een heel geklooi om de server onder ubuntu 22.04 aan de praat te krijgen, maar dat is nu gelukt.
Server draait nu, kabel zal deze week arriveren, en wil daarmee ook direct proberen of ik data kan doorsturen naar mn hosting of een andere domoticz server, zodat ik overal mijn verbruik kan inzien.
nouja we gaan het zien
Server draait nu, kabel zal deze week arriveren, en wil daarmee ook direct proberen of ik data kan doorsturen naar mn hosting of een andere domoticz server, zodat ik overal mijn verbruik kan inzien.
nouja we gaan het zien
[ Voor 7% gewijzigd door mrc4nl op 26-09-2022 00:22 ]
ora et labora
Misschien leuk om je werkende script ook te plaatsen en welke sensoren je moet aanmakenPanzer_V schreef op zondag 25 september 2022 @ 07:36:
@jobr
![]()
Vanmorgen de Domoticz gecheckt en warempel….het gaat helemaal goed!
Het energy deel van de kWh/electricity sensor is dus inderdaad een counter die je moet blijven optellen. Veel heb ik de afgelopen dagen geprobeerd, maar dat niet
Helemaal happy dat het nu werkt
Op verzoek van @MikeOO
Hierbij het script dat ik gebruik om de volgende drie waarden uit te rekenen.
Netto stroomgebruik: dat is de van het net gebruikte stroom minus de aan het net geleverde stroom.
Stroomlevering: dat is de aan het net geleverde stroom.
Totaal stroomgebruik: dat is de stroom direct van de panelen gebruikt plus de stroom die nog van het net afgenomen is. Dus je daadwerkelijke stroomgebruik op de dag.
Tevens maakt het script gebruik van twee custom sensors om de, Telegram, notificatie op te laten draaien.
Benodigdheden:
Onderstaand dzvents script draait iedere 5 minuten en berekent het Totaal stroomgebruik.
Voor de totale productie van de zonnepanelen maak ik gebruik van de PVOutput sensor in Domoticz. Deze scrapet mijn account op PVOuput welke op haar beurt mijn zonnepanelen uitleest (Enphase v7 software, dus rechtstreeks uitlezen in Domoticz is nog stuk).
Aangezien PVOutput iedere 20 minuten of zo mijn Enphase systeem uitleest is een refreshrate van 1 minuut voor de "Totaal stroomgebruik" sensor een beetje overkill.
Hierbij het script dat ik gebruik om de volgende drie waarden uit te rekenen.
Netto stroomgebruik: dat is de van het net gebruikte stroom minus de aan het net geleverde stroom.
Stroomlevering: dat is de aan het net geleverde stroom.
Totaal stroomgebruik: dat is de stroom direct van de panelen gebruikt plus de stroom die nog van het net afgenomen is. Dus je daadwerkelijke stroomgebruik op de dag.
Tevens maakt het script gebruik van twee custom sensors om de, Telegram, notificatie op te laten draaien.
Benodigdheden:
- 3x virtuele sensor type "Elektra (Aktueel + Teller)"
- 2x virtuele sensor type "Custom Sensor"
- Sensor waarin de dagproductie van de zonnepanelen ingelezen wordt. Ikzelf scrape deze van PVOutput.org via de in Domoticz ingebouwde functie.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| return { on = { timer = { "every 1 minutes" } }, execute = function(dz) --Devices. local levering = dz.devices('Stroom').counterDeliveredToday -- Stroomlevering via Stroommeter device local gebruik = dz.devices('Stroom').counterToday -- Stroomgebruik via Stroommeter device local leveringactueel = dz.devices('Stroom').usageDelivered -- Stroomleveringactueel via Stroommeter device local gebruikactueel = dz.devices('Stroom').usage -- Stroomgebruikactueel via Stroommeter device local StroomLevering = dz.devices('Stroomlevering') -- Stroomlevering device local NettoStroomgebruik = dz.devices('Netto stroomgebruik') -- Netto stroomgebruik device local sensor1 = dz.devices('sensorNettoStroomgebruik') --Vorige waardes inlezen. local nettototaalvorigedag = NettoStroomgebruik.WhTotal local nettototaalvandaag = NettoStroomgebruik.WhToday local leveringtotaalvorigedag = StroomLevering.WhTotal local leveringtotaalvandaag = StroomLevering.WhToday --Netto stroomgebruik berekenen. local nettoactueel = gebruikactueel - leveringactueel local nettototaaltemp = (dz.utils.round(gebruik - levering, 3)) * 1000 local nettototaal = nettototaalvorigedag + (nettototaaltemp - nettototaalvandaag) --Stroomlevering berekenen. local leveringtotaaltemp = levering * 1000 local leveringtotaal = leveringtotaalvorigedag + (leveringtotaaltemp - leveringtotaalvandaag) --Sensoren updaten. StroomLevering.updateElectricity(leveringactueel,leveringtotaal) NettoStroomgebruik.updateElectricity(nettoactueel,nettototaal) --Custom sensoren t.b.v. de notificatie via Telegram. sensor1.updateCustomSensor(nettototaaltemp) end } |
Onderstaand dzvents script draait iedere 5 minuten en berekent het Totaal stroomgebruik.
Voor de totale productie van de zonnepanelen maak ik gebruik van de PVOutput sensor in Domoticz. Deze scrapet mijn account op PVOuput welke op haar beurt mijn zonnepanelen uitleest (Enphase v7 software, dus rechtstreeks uitlezen in Domoticz is nog stuk).
Aangezien PVOutput iedere 20 minuten of zo mijn Enphase systeem uitleest is een refreshrate van 1 minuut voor de "Totaal stroomgebruik" sensor een beetje overkill.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| return { on = { timer = { "every 5 minutes"} }, execute = function(dz) --Devices. local levering = dz.devices('Stroom').counterDeliveredToday -- Stroomlevering via Stroommeter device local gebruik = dz.devices('Stroom').counterToday -- Stroomgebruik via Stroommeter device local leveringactueel = dz.devices('Stroom').usageDelivered -- Stroomleveringactueel via Stroommeter device local gebruikactueel = dz.devices('Stroom').usage -- Stroomgebruikactueel via Stroommeter device local SolarTotaalproductieVandaag = dz.devices('Solar totaal productie').counterToday -- Solar totaal productie vandaag device local SolarTotaalproductieActueel = dz.devices('Solar totaal productie').usage -- Solar actueel vandaag device local Totaalstroomgebruik = dz.devices('Totaal stroomgebruik') -- Totaal stroomgebruik device local sensor2 = dz.devices('sensorTotaalStroomgebruik') --Vorige waardes inlezen. local dagtotaalvorigedag = Totaalstroomgebruik.WhTotal local dagtotaalvandaag = Totaalstroomgebruik.WhToday --Dag gebruik berekenen. local dagactueel = SolarTotaalproductieActueel - leveringactueel + gebruikactueel local dagtotaaltemp = (dz.utils.round(SolarTotaalproductieVandaag - levering + gebruik, 3)) * 1000 local dagtotaal = dagtotaalvorigedag + (dagtotaaltemp - dagtotaalvandaag) --Sensoren updaten. Totaalstroomgebruik.updateElectricity(dagactueel,dagtotaal) --Custom sensoren t.b.v. de notificatie via Telegram. sensor2.updateCustomSensor(dagtotaaltemp) end } |
Ik doe wat ik kan, zodoende blijft er veel liggen.
ik zit met de volgende gedachte:
ik heb een Shelly kWh meter welke alles naar m'n MQTT stuurt
nu wil ik eigenlijk dat - indien switch 1 op A of B staat een wisselende registratie en/of extra losse registratie in Domoticz doen van de verbruikte energy naar een aparte sensor.
Dus ...
indien switch 1 op A: registreer kW(h) zoals het nu is
indien switch 2 op B: registreer een extra kW(h) sensor met dezelfde data
maar ... ik heb echt even geen idee hoe ik dit ga bewerkstelligen; een dzEventz is niet echt een optie
ik heb een Shelly kWh meter welke alles naar m'n MQTT stuurt
nu wil ik eigenlijk dat - indien switch 1 op A of B staat een wisselende registratie en/of extra losse registratie in Domoticz doen van de verbruikte energy naar een aparte sensor.
Dus ...
indien switch 1 op A: registreer kW(h) zoals het nu is
indien switch 2 op B: registreer een extra kW(h) sensor met dezelfde data
maar ... ik heb echt even geen idee hoe ik dit ga bewerkstelligen; een dzEventz is niet echt een optie
12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu
Want? Met DzVents is dit juist super eenvoudig te realiseren.Crazy- schreef op maandag 26 september 2022 @ 11:34:
maar ... ik heb echt even geen idee hoe ik dit ga bewerkstelligen; een dzEventz is niet echt een optie
omdat ie die alleen per minuut registreert ?rens-br schreef op maandag 26 september 2022 @ 12:16:
[...]
Want? Met DzVents is dit juist super eenvoudig te realiseren.
12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu
Hoe bedoel je dat? Je kan in dzvents instellen dat het script getriggerd wordt wanneer je waarde veranderd.
ai ai,, ik zat er niet bij met mijn hoofd. ... heb het voor elkaarrens-br schreef op maandag 26 september 2022 @ 13:08:
[...]
Hoe bedoel je dat? Je kan in dzvents instellen dat het script getriggerd wordt wanneer je waarde veranderd.

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu
Dan zijn wij natuurlijk wel super nieuwsgierig naar het script.Crazy- schreef op maandag 26 september 2022 @ 13:40:
[...]
ai ai,, ik zat er niet bij met mijn hoofd. ... heb het voor elkaar
Uiteraard!rens-br schreef op maandag 26 september 2022 @ 13:43:
[...]
Dan zijn wij natuurlijk wel super nieuwsgierig naar het script.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| local DHW_Switch = "WP klep" local WP_kWh = "WP Verbruik" local DWH_kWh = "DHW verbruik" local DWH_kW_idx = 261 function update(device, id, power, index) commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";"} end commandArray = {} local wpDhwState = otherdevices[DHW_Switch] Power1 = 0.0 if wpDhwState == 'DHW' then Power1 = otherdevices_svalues[WP_kWh]:match("([^;]+)") end update(DWH_kWh, DWH_kW_idx, Power1, 1) return commandArray |
12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu
Dat is geen dzvents script, maar een lua script.Crazy- schreef op maandag 26 september 2022 @ 14:12:
[...]
Uiteraard!
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 local DHW_Switch = "WP klep" local WP_kWh = "WP Verbruik" local DWH_kWh = "DHW verbruik" local DWH_kW_idx = 261 function update(device, id, power, index) commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";"} end commandArray = {} local wpDhwState = otherdevices[DHW_Switch] Power1 = 0.0 if wpDhwState == 'DHW' then Power1 = otherdevices_svalues[WP_kWh]:match("([^;]+)") end update(DWH_kWh, DWH_kW_idx, Power1, 1) return commandArray
True true ;-)rens-br schreef op maandag 26 september 2022 @ 16:12:
[...]
Dat is geen dzvents script, maar een lua script.Maar wel fijn dat het gelukt is.
12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu
Dank voor het delenPanzer_V schreef op maandag 26 september 2022 @ 08:32:
Op verzoek van @MikeOO
Hierbij het script dat ik gebruik om de volgende drie waarden uit te rekenen.
Netto stroomgebruik: dat is de van het net gebruikte stroom minus de aan het net geleverde stroom.
Stroomlevering: dat is de aan het net geleverde stroom.
Totaal stroomgebruik: dat is de stroom direct van de panelen gebruikt plus de stroom die nog van het net afgenomen is. Dus je daadwerkelijke stroomgebruik op de dag.
Tevens maakt het script gebruik van twee custom sensors om de, Telegram, notificatie op te laten draaien.
Benodigdheden:Onderstaande dzvents script draait iedere minuut en berekent het Netto stroomgebruik en de Stroomlevering.
- 3x virtuele sensor type "Elektra (Aktueel + Teller)"
- 2x virtuele sensor type "Custom Sensor"
- Sensor waarin de dagproductie van de zonnepanelen ingelezen wordt. Ikzelf scrape deze van PVOutput.org via de in Domoticz ingebouwde functie.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 return { on = { timer = { "every 1 minutes" } }, execute = function(dz) --Devices. local levering = dz.devices('Stroom').counterDeliveredToday -- Stroomlevering via Stroommeter device local gebruik = dz.devices('Stroom').counterToday -- Stroomgebruik via Stroommeter device local leveringactueel = dz.devices('Stroom').usageDelivered -- Stroomleveringactueel via Stroommeter device local gebruikactueel = dz.devices('Stroom').usage -- Stroomgebruikactueel via Stroommeter device local StroomLevering = dz.devices('Stroomlevering') -- Stroomlevering device local NettoStroomgebruik = dz.devices('Netto stroomgebruik') -- Netto stroomgebruik device local sensor1 = dz.devices('sensorNettoStroomgebruik') --Vorige waardes inlezen. local nettototaalvorigedag = NettoStroomgebruik.WhTotal local nettototaalvandaag = NettoStroomgebruik.WhToday local leveringtotaalvorigedag = StroomLevering.WhTotal local leveringtotaalvandaag = StroomLevering.WhToday --Netto stroomgebruik berekenen. local nettoactueel = gebruikactueel - leveringactueel local nettototaaltemp = (dz.utils.round(gebruik - levering, 3)) * 1000 local nettototaal = nettototaalvorigedag + (nettototaaltemp - nettototaalvandaag) --Stroomlevering berekenen. local leveringtotaaltemp = levering * 1000 local leveringtotaal = leveringtotaalvorigedag + (leveringtotaaltemp - leveringtotaalvandaag) --Sensoren updaten. StroomLevering.updateElectricity(leveringactueel,leveringtotaal) NettoStroomgebruik.updateElectricity(nettoactueel,nettototaal) --Custom sensoren t.b.v. de notificatie via Telegram. sensor1.updateCustomSensor(nettototaaltemp) end }
Onderstaand dzvents script draait iedere 5 minuten en berekent het Totaal stroomgebruik.
Voor de totale productie van de zonnepanelen maak ik gebruik van de PVOutput sensor in Domoticz. Deze scrapet mijn account op PVOuput welke op haar beurt mijn zonnepanelen uitleest (Enphase v7 software, dus rechtstreeks uitlezen in Domoticz is nog stuk).
Aangezien PVOutput iedere 20 minuten of zo mijn Enphase systeem uitleest is een refreshrate van 1 minuut voor de "Totaal stroomgebruik" sensor een beetje overkill.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 return { on = { timer = { "every 5 minutes"} }, execute = function(dz) --Devices. local levering = dz.devices('Stroom').counterDeliveredToday -- Stroomlevering via Stroommeter device local gebruik = dz.devices('Stroom').counterToday -- Stroomgebruik via Stroommeter device local leveringactueel = dz.devices('Stroom').usageDelivered -- Stroomleveringactueel via Stroommeter device local gebruikactueel = dz.devices('Stroom').usage -- Stroomgebruikactueel via Stroommeter device local SolarTotaalproductieVandaag = dz.devices('Solar totaal productie').counterToday -- Solar totaal productie vandaag device local SolarTotaalproductieActueel = dz.devices('Solar totaal productie').usage -- Solar actueel vandaag device local Totaalstroomgebruik = dz.devices('Totaal stroomgebruik') -- Totaal stroomgebruik device local sensor2 = dz.devices('sensorTotaalStroomgebruik') --Vorige waardes inlezen. local dagtotaalvorigedag = Totaalstroomgebruik.WhTotal local dagtotaalvandaag = Totaalstroomgebruik.WhToday --Dag gebruik berekenen. local dagactueel = SolarTotaalproductieActueel - leveringactueel + gebruikactueel local dagtotaaltemp = (dz.utils.round(SolarTotaalproductieVandaag - levering + gebruik, 3)) * 1000 local dagtotaal = dagtotaalvorigedag + (dagtotaaltemp - dagtotaalvandaag) --Sensoren updaten. Totaalstroomgebruik.updateElectricity(dagactueel,dagtotaal) --Custom sensoren t.b.v. de notificatie via Telegram. sensor2.updateCustomSensor(dagtotaaltemp) end }
Zojuist heb ik hem ook hier in werking gesteld, want dit was wat ook al een tijdje wil realiseren. Maar simpelweg mij nog niet was gelukt.
In dit script zit niet de telegram update met de totalen toch? Zie alleen dat de custom sensor wordt gevuld.
Hoe heb je dit gerealiseerd dan?
- leeg -
Dat was nou het eenvoudigst. Ik heb een telegrambot aangemaakt volgens deze handleiding ==> https://www.domoticz.com/wiki/Telegram_Botluigi87 schreef op maandag 26 september 2022 @ 21:04:
[...]
Dank voor het delen![]()
Zojuist heb ik hem ook hier in werking gesteld, want dit was wat ook al een tijdje wil realiseren. Maar simpelweg mij nog niet was gelukt.
In dit script zit niet de telegram update met de totalen toch? Zie alleen dat de custom sensor wordt gevuld.
Hoe heb je dit gerealiseerd dan?
Daarna heb ik op de customsensors notificaties gezet. Bijvoorbeeld: als sensornettostroomverbruik >= 5000 (is in Wh!!!) dan een melding via Telegram.
Die notificaties gaan af op de "actueleteller" van een sensor. Vandaar de customsensors voor de notificatie. Zou je de notificatie op de kWh sensor zetten dat krijg je in dit voorbeeld alleen een bericht als het actuele verbruik boven de 5000 Wh is (dus de wasmachine, droger en waterkoker tegelijk aanstaan), niet het dagtotaal.
Ga je er zo uitgeraken?
Update: Ik heb gewoon basic notificaties ingesteld. Geen scripts o.i.d. Dus gewoon naar tabblad "Overige" gaan, daar staan je custom sensors. Dan op de sensor op het knopje "Notifications" klikken. Waardes instellen, alles uitvinken op Telegram na en dat is het.
En aangezien ik Telegram niet gebruik heb ik bij de installatie van Telegram gekozen dat deze NIET bij mijn contacten mag. Ik heb hem alleen verbonden met mijn bot. Dat kan dus gewoon
[ Voor 18% gewijzigd door Panzer_V op 27-09-2022 08:34 ]
Ik doe wat ik kan, zodoende blijft er veel liggen.
Dat is inderdaad simpel.Panzer_V schreef op dinsdag 27 september 2022 @ 08:22:
[...]
Dat was nou het eenvoudigst. Ik heb een telegrambot aangemaakt volgens deze handleiding ==> https://www.domoticz.com/wiki/Telegram_Bot
Daarna heb ik op de customsensors notificaties gezet. Bijvoorbeeld: als sensornettostroomverbruik >= 5000 (is in Wh!!!) dan een melding via Telegram.
Die notificaties gaan af op de "actueleteller" van een sensor. Vandaar de customsensors voor de notificatie. Zou je de notificatie op de kWh sensor zetten dat krijg je in dit voorbeeld alleen een bericht als het actuele verbruik boven de 5000 Wh is (dus de wasmachine, droger en waterkoker tegelijk aanstaan), niet het dagtotaal.
Ga je er zo uitgeraken?
Update: Ik heb gewoon basic notificaties ingesteld. Geen scripts o.i.d. Dus gewoon naar tabblad "Overige" gaan, daar staan je custom sensors. Dan op de sensor op het knopje "Notifications" klikken. Waardes instellen, alles uitvinken op Telegram na en dat is het.
En aangezien ik Telegram niet gebruik heb ik bij de installatie van Telegram gekozen dat deze NIET bij mijn contacten mag. Ik heb hem alleen verbonden met mijn bot. Dat kan dus gewoon
Nooit aan gedacht om het zo op te lossen.
Heb al wat meldingen lopen vanuit domoticz naar een telegram bot
Daar ga ik wel uitkomen ja.
Best wel ideaal want dan kan ik ook meldingen maken als we veel energie overhebben. Enzo.
Dank
- leeg -
Dzvents
Hard to get voor me... Maar hopelijk zijn er experts, die me.
Ik heb een WPomp met een Heishamon, de heishamon kan de wp via mqtt aansturen en uitlezen.
De warmtepomp heeft een stooklijn, waarop ik op stook. De stooklijn wordt aangestuurd door heishamon via een thermostaat setpoint sensor in Domoticz.
Ik zoek een verschuiving van +1 en -1 [ tot +5 en -5 ] op mijn stooklijn.
Die verschuiving zou op x tijd moeten kunnen schakelen.
En op y temperatuur binnen of z temperatuur buiten.
Dit met stapjes van 1 per keer.
Ik ben hier al even met blockley mee aan het stoeien geweest, maar hiermee kun je een thermostat setpoint schakelen.
Ook als met dz vents bezig geweest, maar ik bak er echt niets van. Mijn start script is waardeloos hier.
Hopelijk kan iemand met mijn sensoren me een scriptje opweg helpen:
:fill(white):strip_exif()/f/image/NF071l9wJzyEHCN5CbbBdGWR.png?f=user_large)
:fill(white):strip_exif()/f/image/B8yJ0jReekEO60eZiIEUzrhe.png?f=user_large)
:fill(white):strip_exif()/f/image/ZFUObTjxFbx80onq0nQvWu2D.png?f=user_large)

ps: En als bonus, mss maanden en of jaargetijden
/f/image/dgdaBWoGjoMwf0ZvpUNsctbh.png?f=fotoalbum_large)
Hard to get voor me... Maar hopelijk zijn er experts, die me.
Ik heb een WPomp met een Heishamon, de heishamon kan de wp via mqtt aansturen en uitlezen.
De warmtepomp heeft een stooklijn, waarop ik op stook. De stooklijn wordt aangestuurd door heishamon via een thermostaat setpoint sensor in Domoticz.
Ik zoek een verschuiving van +1 en -1 [ tot +5 en -5 ] op mijn stooklijn.
Die verschuiving zou op x tijd moeten kunnen schakelen.
En op y temperatuur binnen of z temperatuur buiten.
Dit met stapjes van 1 per keer.
Ik ben hier al even met blockley mee aan het stoeien geweest, maar hiermee kun je een thermostat setpoint schakelen.
Ook als met dz vents bezig geweest, maar ik bak er echt niets van. Mijn start script is waardeloos hier.
Hopelijk kan iemand met mijn sensoren me een scriptje opweg helpen:
:fill(white):strip_exif()/f/image/NF071l9wJzyEHCN5CbbBdGWR.png?f=user_large)
:fill(white):strip_exif()/f/image/B8yJ0jReekEO60eZiIEUzrhe.png?f=user_large)
:fill(white):strip_exif()/f/image/ZFUObTjxFbx80onq0nQvWu2D.png?f=user_large)
ps: En als bonus, mss maanden en of jaargetijden
/f/image/dgdaBWoGjoMwf0ZvpUNsctbh.png?f=fotoalbum_large)
:fill(white):strip_exif()/f/image/6zV3UstIDSZ6UKFNZBaefT50.png?f=user_large)
[ Voor 20% gewijzigd door Dylantje2 op 27-09-2022 12:02 ]
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
https://github.com/Bazema...r/scripts/dzVents/scriptsDylantje2 schreef op dinsdag 27 september 2022 @ 11:58:
Dzvents
Hard to get voor me... Maar hopelijk zijn er experts, die me.
Ik heb een WPomp met een Heishamon, de heishamon kan de wp via mqtt aansturen en uitlezen.
De warmtepomp heeft een stooklijn, waarop ik op stook. De stooklijn wordt aangestuurd door heishamon via een thermostaat setpoint sensor in Domoticz.
Ik zoek een verschuiving van +1 en -1 [ tot +5 en -5 ] op mijn stooklijn.
Die verschuiving zou op x tijd moeten kunnen schakelen.
En op y temperatuur binnen of z temperatuur buiten.
Dit met stapjes van 1 per keer.
Ik ben hier al even met blockley mee aan het stoeien geweest, maar hiermee kun je een thermostat setpoint schakelen.
Ook als met dz vents bezig geweest, maar ik bak er echt niets van. Mijn start script is waardeloos hier.
Hopelijk kan iemand met mijn sensoren me een scriptje opweg helpen:
[Afbeelding]
[Afbeelding]
[Afbeelding]
ps: En als bonus, mss maanden en of jaargetijden
[Afbeelding]
[Afbeelding]
https://www.fam-oldenburger.nl/category/domotica/
Oef.. das een mooi linkje.
Maar dan toch.
Warmtepomp regeling, 2.0 , 3.0..
Zomer, winter..
Wat is the best of the rest? 👍👍👍
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
Ik gebruik nu de zomer en winter. In de zomer hoeft er geen VW/CV water gemaakt te worden. Ik zet de scripts nog zelf aan/uit.Dylantje2 schreef op dinsdag 27 september 2022 @ 22:36:
[...]
Oef.. das een mooi linkje.
Maar dan toch.
Warmtepomp regeling, 2.0 , 3.0..
Zomer, winter..
Wat is the best of the rest? 👍👍👍
Voor het shiften gebruik ik Thermostaat en voor de nachtverlaging Set thermostaat
https://www.fam-oldenburger.nl/category/domotica/
DANK..BazemanKM schreef op dinsdag 27 september 2022 @ 23:01:
[...]
Ik gebruik nu de zomer en winter. In de zomer hoeft er geen VW/CV water gemaakt te worden. Ik zet de scripts nog zelf aan/uit.
Voor het shiften gebruik ik Thermostaat en voor de nachtverlaging Set thermostaat
Ik heb geen sww op mijn pomp...
En wil eigenlijk per maand aan of uit zetten [ heb dummys van elke maand ]
Welke kan het beste aan sleutelen?
Ik ga er gewoon 1 als basis gebruiken.
En hopelijk kijk je een keer kritisch mee.:-)
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
Geen DHW, dan pak je het beste de winter, want in zomer zit geen verwarming.Dylantje2 schreef op woensdag 28 september 2022 @ 18:24:
[...]
DANK..
Ik heb geen sww op mijn pomp...
En wil eigenlijk per maand aan of uit zetten [ heb dummys van elke maand ]
Welke kan het beste aan sleutelen?
Ik ga er gewoon 1 als basis gebruiken.
En hopelijk kijk je een keer kritisch mee.:-)
Je kunt meerdere maanden combineren, zodat je minder regels krijgt.
Je kunt je code altijd hier posten. Ik heb alles ook niet helemaal zelf bedacht...
https://www.fam-oldenburger.nl/category/domotica/
Beste allemaal,
Ik heb heel wat aan elkaar geknoopt in domoticz met Blockly, (aangepaste) Lua scripts, Json en nog wat andere dingen. Nu zag ik op een YouTube kanaal iemand die in HomeWizard bij Xwatt aan teruglevering (met zonnepanelen) een boiler aan laat gaan tussen bepaalde tijden. Tussen andere tijden zou de boiler dan zoizo aan gaan ivm afwas bijvoorbeeld en of legionella preventie.
Zie dit filmpje: https://www.youtube.com/watch?v=3CvJvvV--Fg&t=1010s en bij ca. 16:45 gaat hij in HomeWizard instellen. Nu dacht ik dat is wel makkelijk en doe ik ook even in Domoticz. Eerst bedacht ik dat probeer ik even bij Notifications onder mijn apparaat P1 Smart Meter. Bij waarde hoger dan 100 een
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=Off"
en bij waarde lager dan -400
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=On"
Hiermee gaat de schakelaar wel uit bij hoger dan 100w afname van energie maar niet uit bij een teruglevering dus -400w
Daarna Blockly geprobeerd te maken:
:strip_exif()/f/image/7i6sMJoKNnpXKgqY81XUATrA.jpg?f=fotoalbum_large)
Deze werkt niet zoals hier afgebeeld. Zet ik bij de -400 waarde een positief getal (bijvoorbeeld 10) dan gaat de schakelaar wel aan.
Dus toen verder zoeken. Uiteindelijk met dzVents gaan klooien, waar ik eigenlijk veel te weinig mee heb gedaan om te weten hoe het werkt. Ik krijg de schakelaar wel aan en uit, maar de zonnekracht is inmiddels te laag om negatieve waardes te testen. Ik weet wel dat de waardes vanuit de P1 meter in dzVents beter te scheiden zijn zoals usage en usageDeliv. Dus dan kan je met 2 verschillende positieve waardes wat creëren, maar ik kom er niet helemaal uit.
Heeft hier iemand op het forum misschien al eens zoiets als in het YouTube filmpje gemaakt in Domoticz?
Ik heb heel wat aan elkaar geknoopt in domoticz met Blockly, (aangepaste) Lua scripts, Json en nog wat andere dingen. Nu zag ik op een YouTube kanaal iemand die in HomeWizard bij Xwatt aan teruglevering (met zonnepanelen) een boiler aan laat gaan tussen bepaalde tijden. Tussen andere tijden zou de boiler dan zoizo aan gaan ivm afwas bijvoorbeeld en of legionella preventie.
Zie dit filmpje: https://www.youtube.com/watch?v=3CvJvvV--Fg&t=1010s en bij ca. 16:45 gaat hij in HomeWizard instellen. Nu dacht ik dat is wel makkelijk en doe ik ook even in Domoticz. Eerst bedacht ik dat probeer ik even bij Notifications onder mijn apparaat P1 Smart Meter. Bij waarde hoger dan 100 een
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=Off"
en bij waarde lager dan -400
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=On"
Hiermee gaat de schakelaar wel uit bij hoger dan 100w afname van energie maar niet uit bij een teruglevering dus -400w
Daarna Blockly geprobeerd te maken:
:strip_exif()/f/image/7i6sMJoKNnpXKgqY81XUATrA.jpg?f=fotoalbum_large)
Deze werkt niet zoals hier afgebeeld. Zet ik bij de -400 waarde een positief getal (bijvoorbeeld 10) dan gaat de schakelaar wel aan.
Dus toen verder zoeken. Uiteindelijk met dzVents gaan klooien, waar ik eigenlijk veel te weinig mee heb gedaan om te weten hoe het werkt. Ik krijg de schakelaar wel aan en uit, maar de zonnekracht is inmiddels te laag om negatieve waardes te testen. Ik weet wel dat de waardes vanuit de P1 meter in dzVents beter te scheiden zijn zoals usage en usageDeliv. Dus dan kan je met 2 verschillende positieve waardes wat creëren, maar ik kom er niet helemaal uit.
Heeft hier iemand op het forum misschien al eens zoiets als in het YouTube filmpje gemaakt in Domoticz?
niet zoiets gemaakt, maar wilde in de begintijd van zonnepanelen graag een berichtje ontvangen als er netto teruglevering was. Toen ben ik er ook achtergekomen dat de data vanuit de P1 poort op idx "Energiemeter" niet (goed) werkt. Er is ook een sensor die alleen de teruglevering weergeeft, vanuit de P1 poort. zoek die op en ga daarmee aan de slag, dat zijn positieve waardes - blockly of dzvents werkt dan makkelijker.boppos schreef op donderdag 29 september 2022 @ 18:08:
Beste allemaal,
Ik heb heel wat aan elkaar geknoopt in domoticz met Blockly, (aangepaste) Lua scripts, Json en nog wat andere dingen. Nu zag ik op een YouTube kanaal iemand die in HomeWizard bij Xwatt aan teruglevering (met zonnepanelen) een boiler aan laat gaan tussen bepaalde tijden. Tussen andere tijden zou de boiler dan zoizo aan gaan ivm afwas bijvoorbeeld en of legionella preventie.
Zie dit filmpje: https://www.youtube.com/watch?v=3CvJvvV--Fg&t=1010s en bij ca. 16:45 gaat hij in HomeWizard instellen. Nu dacht ik dat is wel makkelijk en doe ik ook even in Domoticz. Eerst bedacht ik dat probeer ik even bij Notifications onder mijn apparaat P1 Smart Meter. Bij waarde hoger dan 100 een
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=Off"
en bij waarde lager dan -400
"(IPadres:Poort)/json.htm?type=command¶m=switchlight&idx="diviceID"&switchcmd=On"
Hiermee gaat de schakelaar wel uit bij hoger dan 100w afname van energie maar niet uit bij een teruglevering dus -400w
Daarna Blockly geprobeerd te maken:
[Afbeelding]
Deze werkt niet zoals hier afgebeeld. Zet ik bij de -400 waarde een positief getal (bijvoorbeeld 10) dan gaat de schakelaar wel aan.
Dus toen verder zoeken. Uiteindelijk met dzVents gaan klooien, waar ik eigenlijk veel te weinig mee heb gedaan om te weten hoe het werkt. Ik krijg de schakelaar wel aan en uit, maar de zonnekracht is inmiddels te laag om negatieve waardes te testen. Ik weet wel dat de waardes vanuit de P1 meter in dzVents beter te scheiden zijn zoals usage en usageDeliv. Dus dan kan je met 2 verschillende positieve waardes wat creëren, maar ik kom er niet helemaal uit.
Heeft hier iemand op het forum misschien al eens zoiets als in het YouTube filmpje gemaakt in Domoticz?
Nou mijn eerste DZ dan maar eens
Op het script van @BazemanKM
Maar ook die past niet helemaal
Dus eerst maar eens proberen te snappen hoe het eea werkt.
Krijg een rood kruis:-(
:fill(white):strip_exif()/f/image/htW83IdAC3kSSuC6XPzbd4WG.png?f=user_large)
En wat ik erbij zoek is een optie om een simpele check te doen naar een waarde.
Als setpoint niet 0 is tussen -5 en +5 dan op 0 zetten.
Of als hij niet -1 tussen -5 en +5 dan op -1 zetten
Maar eerst maar eens snappen hoe eea werkt.
Want in het script van bazeman:
Waarom deze? en niet rechtstreeks de xxx Id gebruiken?
Op het script van @BazemanKM
Maar ook die past niet helemaal
Dus eerst maar eens proberen te snappen hoe het eea werkt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| --https://github.com/BazemanKM/Domoticz-Mysensors.org-/blob/master/scripts/dzVents/scripts/warmtepomp%20regeling%20winter -- Thanks to bazeman en forum --https://gathering.tweakers.net/forum/list_message/72931512#72931512 return { on = { timer = {'every 2 minutes'}, }, execute = function(domoticz) -- Ruimte/omgeving temperatuur device local Tbinnen = domoticz.devices('TV Woonkamer').rawData[1]) local Tbinnenhm = domoticz.devices('WP Kamerthermostaat ST HM') local Tbuiten = domoticz.devices('DM Terras').rawData[1]) local Tbuitenhm = domoticz.devices('WP HM Buiten Mqqt') local Tbuitenowm = domoticz.devices('Oosterhout T H B OWM').rawData[1]) --Schakel Devices WP Shift W HM 12956 Dit is de shift voor de stooklijn local SetThermostaatId = 12956 local SetThermostaat = domoticz.devices('WP Shift W HM') ---Tijd devices local Time = require('Time') local currentTime = Time() if currentTime.matchesRule("isDayTime") and Tbinnen <= 22 or Tbinnenhm <= 22 then SetThermostaat.updateSetPoint(5) SetThermostaat(5) SetThermostaatId(5) domoticz.notify("Test daytime DZ 1 ", domoticz.PRIORITY_NORMAL,domoticz.SOUND_DEFAULT, "" , "") elseif currentTime.matchesRule("isNightTime") and Tbinnen >= 22 or Tbinnenhm >= 22 then SetThermostaat.updateSetPoint(0) SetThermostaat(0) SetThermostaatId(0) domoticz.notify("Test nigtime DZ 2", domoticz.PRIORITY_NORMAL,domoticz.SOUND_DEFAULT, "" , "") end end } |
Krijg een rood kruis:-(
:fill(white):strip_exif()/f/image/htW83IdAC3kSSuC6XPzbd4WG.png?f=user_large)
En wat ik erbij zoek is een optie om een simpele check te doen naar een waarde.
Als setpoint niet 0 is tussen -5 en +5 dan op 0 zetten.
Of als hij niet -1 tussen -5 en +5 dan op -1 zetten
Maar eerst maar eens snappen hoe eea werkt.
Want in het script van bazeman:
code:
1
2
3
| local roomTemperature = tonumber(domoticz.devices(roomTemperatureId).rawData[1]) local PTemperature = tonumber(domoticz.devices(PTemperatureId).rawData[1]) local SetThermostaatR = tonumber(domoticz.devices(SetThermostaatId).rawData[1]) |
Waarom deze? en niet rechtstreeks de xxx Id gebruiken?
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
Ik heb een https://www.ecodim.nl/nl/eco-dim07-zigbee-pro.html dimmer die ik in Domoticz heb staan.
Hiermee zou ik een wifi lamp willen bedienen, die ik ook in domoticz heb staan.
Hoe kan ik deze 2 devices koppelen in Domoticz? Moet ik dan aan de gang met scripts? en zo ja, kent iemand een voorbeeld?
Hiermee zou ik een wifi lamp willen bedienen, die ik ook in domoticz heb staan.
Hoe kan ik deze 2 devices koppelen in Domoticz? Moet ik dan aan de gang met scripts? en zo ja, kent iemand een voorbeeld?
Maar goed, ik zeg ook maar wat....
Zoek eens op scènes en groepen.Blackouts schreef op zaterdag 1 oktober 2022 @ 09:58:
Ik heb een https://www.ecodim.nl/nl/eco-dim07-zigbee-pro.html dimmer die ik in Domoticz heb staan.
Hiermee zou ik een wifi lamp willen bedienen, die ik ook in domoticz heb staan.
Hoe kan ik deze 2 devices koppelen in Domoticz? Moet ik dan aan de gang met scripts? en zo ja, kent iemand een voorbeeld?
In sommige gevallen moet je van rawData gebruik maken en er een tonumber van maken. En ga je dus van IDX naar een andere local met een tussenstap. Waarom precies? Dat antwoord moet ik je schuldig blijven, maar ik weet wel dat het in mijn script werkt ;-)Dylantje2 schreef op zaterdag 1 oktober 2022 @ 09:47:
Nou mijn eerste DZ dan maar eens
Op het script van @BazemanKM
Maar eerst maar eens snappen hoe eea werkt.
Want in het script van bazeman:
code:
1 2 3 local roomTemperature = tonumber(domoticz.devices(roomTemperatureId).rawData[1]) local PTemperature = tonumber(domoticz.devices(PTemperatureId).rawData[1]) local SetThermostaatR = tonumber(domoticz.devices(SetThermostaatId).rawData[1])
Waarom deze? en niet rechtstreeks de xxx Id gebruiken?
https://www.fam-oldenburger.nl/category/domotica/
Daarmee krijg ik ze wel ingeschakeld, maar dimmen werkt niet.
Maar goed, ik zeg ook maar wat....
Zeker wel. Je kunt een niveau instellen.Blackouts schreef op zaterdag 1 oktober 2022 @ 10:05:
[...]
Daarmee krijg ik ze wel ingeschakeld, maar dimmen werkt niet.
eerst maar eens simpel starten:
De Error in de log:
Dus wat te leren wss.
Eerst maar eens zien dat ik uberhaupt de shift kan laten verschuiven :-)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| --https://github.com/BazemanKM/Domoticz-Mysensors.org-/blob/master/scripts/dzVents/scripts/warmtepomp%20regeling%20winter -- Thanks to bazeman en forum --https://gathering.tweakers.net/forum/list_message/72931512#72931512 return { on = { timer = {'every 2 minutes'}, }, execute = function(domoticz) -- Ruimte/omgeving temperatuur device local Tbinnen = domoticz.devices('TV Woonkamer').rawData[1] local Tbinnenhm = domoticz.devices('WP Kamerthermostaat ST HM') local Tbuiten = domoticz.devices('DM Terras').rawData[1] local Tbuitenhm = domoticz.devices('WP HM Buiten Mqqt') local Tbuitenowm = domoticz.devices('Oosterhout T H B OWM').rawData[1] --Schakel Devices WP Shift W HM 12956 Dit is de shift voor de stooklijn local SetThermostaatId = 12956 local SetThermostaat = domoticz.devices('WP Shift W HM') local shiftId = 12956 local setpoint = 12956 ---Tijd devices local Time = require('Time') -- Omzetting naar bruikbare waarde -- Omgeving Temperaturen local Tbinnen = tonumber(domoticz.devices(TbinnenId).rawData[1]) local Tbuitenowm = tonumber(domoticz.devices(TbuitenowmId).rawData[1]) --Setpoints local SetThermostaat = tonumber(domoticz.devices(SetThermostaatId).rawData[1]) -- Tijd local currentTime = Time() if currentTime.matchesRule("isDayTime") and TbinnenId <= 20 then SetThermostaatId.setlevel(5) shiftId.setpoint(5) setpoint(5) domoticz.notify("Test daytime DZ 1 ", domoticz.PRIORITY_NORMAL,domoticz.SOUND_DEFAULT, "" , "") elseif currentTime.matchesRule("isDayTime") and TbinnenId >= 21 then SetThermostaatId.setlevel(0) shiftId.setlevel(0) setpoint(0) domoticz.notify("Test nightime DZ 2", domoticz.PRIORITY_NORMAL,domoticz.SOUND_DEFAULT, "" , "") end end } |
De Error in de log:
code:
1
2
3
4
| 10-01 10:22:00.298 Status: dzVents: Info: ------ Start internal script: 1 WP Verschuiving:, trigger: "every 2 minutes" 2022-10-01 10:22:00.298 Status: dzVents: Info: ------ Finished 1 WP Verschuiving 2022-10-01 10:22:00.298 Error: dzVents: Error: (3.1.8) An error occurred when calling event handler 1 WP Verschuiving 2022-10-01 10:22:00.298 Error: dzVents: Error: (3.1.8) .../scripts/dzVents/generated_scripts/1 WP Verschuiving.lua:12: attempt to index a nil value |
Dus wat te leren wss.
Eerst maar eens zien dat ik uberhaupt de shift kan laten verschuiven :-)
[ Voor 4% gewijzigd door Dylantje2 op 01-10-2022 10:39 ]
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
Je zou kunnen proberen de lamp als slave device van de dimmer in te stellen. Dat werkt voor schakelaars, dimmers weet ik niet.Blackouts schreef op zaterdag 1 oktober 2022 @ 09:58:
Ik heb een https://www.ecodim.nl/nl/eco-dim07-zigbee-pro.html dimmer die ik in Domoticz heb staan.
Hiermee zou ik een wifi lamp willen bedienen, die ik ook in domoticz heb staan.
Hoe kan ik deze 2 devices koppelen in Domoticz? Moet ik dan aan de gang met scripts? en zo ja, kent iemand een voorbeeld?
Als je geen andere mogelijkheden meer hebt kan het met een event, maar ik denk dat er dan wel wat vertraging in zal zitten.
Zijn er meer mensen die sinds vannacht problemen hebben met het script voor mindergas ?
Ik zag dat mijn meterstand van gisteren niet binnengekomen was.
Maar ik had de aanpassing van januari 2021 gemist.
Vanmorgen de link aangepast naar https://www.mindergas.nl/api/meter_readings
Echter blijf ik een error 404 houden.
Daarom was ik benieuwd of mensen hier problemen mee hebben ?
Ik kreeg eerst een error 422 maar dat kwam omdat ik al een waarde had ingevoerd.
Ik kan mijn waarden overigens wel uitlezen.
Ik zag dat mijn meterstand van gisteren niet binnengekomen was.
Maar ik had de aanpassing van januari 2021 gemist.
Vanmorgen de link aangepast naar https://www.mindergas.nl/api/meter_readings
Echter blijf ik een error 404 houden.
Daarom was ik benieuwd of mensen hier problemen mee hebben ?
Ik kreeg eerst een error 422 maar dat kwam omdat ik al een waarde had ingevoerd.
Ik kan mijn waarden overigens wel uitlezen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| { "ActTime" : 1664617566, "AstrTwilightEnd" : "21:13", "AstrTwilightStart" : "05:51", "CivTwilightEnd" : "19:54", "CivTwilightStart" : "07:10", "DayLength" : "11:38", "NautTwilightEnd" : "20:33", "NautTwilightStart" : "06:31", "ServerTime" : "2022-10-01 11:46:06", "SunAtSouth" : "13:32", "Sunrise" : "07:43", "Sunset" : "19:21", "app_version" : "2022.1", "result" : [ { "AddjMulti" : 1.0, "AddjMulti2" : 1.0, "AddjValue" : 0.0, "AddjValue2" : 0.0, "BatteryLevel" : 255, "Counter" : "4004.243", "CounterToday" : "0.000 m3", "CustomImage" : 0, "Data" : "4004.243", "Description" : "", "Favorite" : 1, "HardwareDisabled" : false, "HardwareID" : 2, "HardwareName" : "Energiemeter", "HardwareType" : "P1 Smart Meter USB", "HardwareTypeVal" : 4, "HaveTimeout" : false, "ID" : "0001", "LastUpdate" : "2022-10-01 11:43:45", "Name" : "Gasmeter", "Notifications" : "false", "PlanID" : "0", "PlanIDs" : [ 0 ], "Protected" : false, "ShowNotifications" : true, "SignalLevel" : "-", "SubType" : "Gas", "SwitchTypeVal" : 1, "Timers" : "false", "Type" : "P1 Smart Meter", "TypeImg" : "counter", "Unit" : 2, "Used" : 1, "XOffset" : "0", "YOffset" : "0", "idx" : "2" } ], "status" : "OK", "title" : "Devices" } |
2250 WP Zuid PVoutput
Er zit geen merkbare vertraging in. Groepen en scènes werken prima.Vollervo schreef op zaterdag 1 oktober 2022 @ 11:22:
[...]
Je zou kunnen proberen de lamp als slave device van de dimmer in te stellen. Dat werkt voor schakelaars, dimmers weet ik niet.
Als je geen andere mogelijkheden meer hebt kan het met een event, maar ik denk dat er dan wel wat vertraging in zal zitten.
Ik had het ook gemist, half september ingesteld op de nieuwe api. Toen kreeg ik een 404, site werkte toen even niet stabiel, ook niet toen ik het handmatig via de api wilde uploaden. Even later werkte het weer.MdO82 schreef op zaterdag 1 oktober 2022 @ 11:57:
Zijn er meer mensen die sinds vannacht problemen hebben met het script voor mindergas ?
Ik zag dat mijn meterstand van gisteren niet binnengekomen was.
Maar ik had de aanpassing van januari 2021 gemist.
Vanmorgen de link aangepast naar https://www.mindergas.nl/api/meter_readings
Echter blijf ik een error 404 houden.
Daarom was ik benieuwd of mensen hier problemen mee hebben ?
Ik kreeg eerst een error 422 maar dat kwam omdat ik al een waarde had ingevoerd.
Ik kan mijn waarden overigens wel uitlezen.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 { "ActTime" : 1664617566, "AstrTwilightEnd" : "21:13", "AstrTwilightStart" : "05:51", "CivTwilightEnd" : "19:54", "CivTwilightStart" : "07:10", "DayLength" : "11:38", "NautTwilightEnd" : "20:33", "NautTwilightStart" : "06:31", "ServerTime" : "2022-10-01 11:46:06", "SunAtSouth" : "13:32", "Sunrise" : "07:43", "Sunset" : "19:21", "app_version" : "2022.1", "result" : [ { "AddjMulti" : 1.0, "AddjMulti2" : 1.0, "AddjValue" : 0.0, "AddjValue2" : 0.0, "BatteryLevel" : 255, "Counter" : "4004.243", "CounterToday" : "0.000 m3", "CustomImage" : 0, "Data" : "4004.243", "Description" : "", "Favorite" : 1, "HardwareDisabled" : false, "HardwareID" : 2, "HardwareName" : "Energiemeter", "HardwareType" : "P1 Smart Meter USB", "HardwareTypeVal" : 4, "HaveTimeout" : false, "ID" : "0001", "LastUpdate" : "2022-10-01 11:43:45", "Name" : "Gasmeter", "Notifications" : "false", "PlanID" : "0", "PlanIDs" : [ 0 ], "Protected" : false, "ShowNotifications" : true, "SignalLevel" : "-", "SubType" : "Gas", "SwitchTypeVal" : 1, "Timers" : "false", "Type" : "P1 Smart Meter", "TypeImg" : "counter", "Unit" : 2, "Used" : 1, "XOffset" : "0", "YOffset" : "0", "idx" : "2" } ], "status" : "OK", "title" : "Devices" }
Heb inmiddels ook Grafana geinstalleerd.
Klopt het dat ik alle sensoren die ik daar wil gebruiken handmatig, één voor één moet toevoegen?
Beetje omslachtig toch?
Klopt het dat ik alle sensoren die ik daar wil gebruiken handmatig, één voor één moet toevoegen?
Beetje omslachtig toch?
ja, incl instellingen per sensor.MikeyMan schreef op maandag 3 oktober 2022 @ 11:55:
Heb inmiddels ook Grafana geinstalleerd.
Klopt het dat ik alle sensoren die ik daar wil gebruiken handmatig, één voor één moet toevoegen?
Beetje omslachtig toch?
Pff... Je zou zeggen dat dat makkelijker moet kunnen.

Let op:
- Scripts/code graag tussen ~[code] ~[/code] tags voor de leesbaarheid.
- dzVents vragen? Lees eerst even de wiki door!
- Lees ook de openingspost door!
- Sommige vragen kunnen opgelost worden door zelf even Google te gebruiken, probeer dat eerst voordat je een vraag hier stelt!