Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • Dickey
  • Registratie: Augustus 2011
  • Laatst online: 05-10 20:42
Mijn vraag:

Heeft iemand een script voorbeeld hoe je de E-data van Domoticz kunt uploaden naar PVOutput?

Relevante software en hardware die ik gebruik:

Domoticx op een Raspberry

Wat ik al gevonden of geprobeerd heb:

Ik kom wel wat heel oude onvolledige scripts tegen.

Al vast bedankt.

Alle reacties


  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Hier een voorbeeld van een dzVents script.
Geef hem een naam.lua en plaats hem in /dzvents/scripts
Uiteraard aanpassen met je eigen gegevens. (die api key en system zijn fictief)
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
62
63
64
65
66
67
68
69
70
71
return {
    active = true,
    logging = {
        --level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting and use debug
        marker = 'PVOutput'
    },
   on = {
      timer = {
         'every 5 minutes'   -- The number of minutes between posts to PVoutput (normal is 5 but when in donation mode it's max 1)
      },
      httpResponses = { 'triggerPVoutput' }
   },
   execute = function(domoticz,item)
       
        ----------------------------------------------------------------------------------------------------------
        -- PVoutput parameters
        ----------------------------------------------------------------------------------------------------------
        local PVoutputApi = '87cb8900c1b4f308b3d86ba47f7aa50d637d4321'      -- Your PVoutput api key
        local PVoutputSystemID = '52532'                                    -- Your PVoutput System ID
        local PVoutputURL = 'http://pvoutput.org/service/r2/addstatus.jsp'  -- The URL to the PVoutput Service
        ----------------------------------------------------------------------------------------------------------
        -- Domoticz Sensor parameters
        ----------------------------------------------------------------------------------------------------------
        local tempSensor = 'SMA zuid'
        local ConsumptionSensor = 'Eigen verbruik'

        domoticz.log('PVOutput script running', domoticz.LOG_DEBUG)

        if (item.isTimer) then
            local temperature = domoticz.devices(tempSensor).temperature
            local Temperature = domoticz.round(temperature,2)
            local EnergyConsumption  = domoticz.devices(ConsumptionSensor).counterToday*1000 -- v3 in Watt hours
            local PowerConsumption  = domoticz.devices(ConsumptionSensor).usage              -- v4 in Watts
            domoticz.log('Temperature is :'..Temperature..' graden', domoticz.LOG_DEBUG)
            domoticz.log('EnergyConsumption is :'..EnergyConsumption..' Wh', domoticz.LOG_DEBUG)
            domoticz.log('PowerConsumption is :'..PowerConsumption..' watt', domoticz.LOG_DEBUG)


            domoticz.log('Call PVOutput url with callback', domoticz.LOG_DEBUG)
            -- ASYNC openUrl
            domoticz.openURL({
                                url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v3='..EnergyConsumption..'&v4='..PowerConsumption,
                                method = 'GET',
                                callback = 'triggerPVoutput',
                                headers = { ['X-Pvoutput-Apikey'] = PVoutputApi, 
                                            ['X-Pvoutput-SystemId'] = PVoutputSystemID
                                          }
            })
        
        
        end

        if (item.isHTTPResponse) then 
            domoticz.log('Callback from url requested. Statuscode:'..item.statusCode, domoticz.LOG_DEBUG)

            if (item.ok) then
                local valid = string.find(item.data, "OK 200: Added Status")  
                if (valid ~= nil) then
                    domoticz.log('Response received from PVOutput: '..item.data, domoticz.LOG_DEBUG)
        
                    domoticz.log('Current status successfully uploaded to PVoutput.', domoticz.LOG_INFO)
                else
                    domoticz.log('Current status NOT successfully uploaded to PVoutput -> '..item.data, domoticz.LOG_ERROR)
                end
            else
                domoticz.log('Current status NOT successfully uploaded to PVoutput. Statuscode:'..item.statusCode, domoticz.LOG_ERROR)
            end        
        end
    end

}

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • Dickey
  • Registratie: Augustus 2011
  • Laatst online: 05-10 20:42
Dank je wel, Ga het morgen proberen.

  • sjoemie1985
  • Registratie: Januari 2014
  • Laatst online: 09:47
Ik probeer dus mijn energie data ook te uploaden naar pvoutput.org.
alleen blijft mijn lua script het volgende zeggen als ik het uitvoer.

lua: .../domoticz/scripts/lua/script_time_upload_to_PVoutput.lua:82: attempt to index global 'otherdevices_svalues' (a nil value)
stack traceback:
.../domoticz/scripts/lua/script_time_upload_to_PVoutput.lua:82: in main chunk
[C]: in ?

Iemand een idee wat er verkeerd kan gaan?
Ik maak gebruik van domoticz en heb hier via pvoutput mijn zonne panelen ingezet, dus de import van die gegevens lukt wel.
en domoticz leest ook wel mijn slimme meter uit via een USB > P1 kabel.

alleen de upload van mijn energie verbuik lukt dus niet via het lua script.
wellicht dat in het volgende iets verkeerd gaat?
Ik heb ook nog niet helemaal door welke device namen ik moet hebben.
ik denk dat daar ook iets verkeer gaat.
hier onder dus mijn time script van lua mocht men meer info nodig hebben hoor of lees ik het graag. :)

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
-- /home/pi/domoticz/scripts/lua/script_time_upload_to_PVoutput.lua
-- This script collects the values below from Domoticz
--   * The Power generation, energy generation and voltage from a Solar power inverter
--   * The temperature from a outside temperature sensor
--   * The Power consumption and energy consumption which is calculated in another Lua script 
-- And uploads all of the values to a PVoutput account.
--
-- For more information about PVoutput, see their user documentation on http://www.pvoutput.org/help.html

----------------------------------------------------------------------------------------------------------
-- Domoticz IDX of devices
----------------------------------------------------------------------------------------------------------
local GenerationDeviceName = Oplevering -- Device name of the Generated energy
local ConsumptionDeviceName = Power     -- Name of the energy device that shows calculated Consumption
local VoltageDeviceName = Voltage   -- Name of the voltage device that shows voltage of the inverter
local TemperatureDeviceName = "temperatuur" -- Name of the temperature device that shows outside temperature

----------------------------------------------------------------------------------------------------------
-- PVoutput parameters
----------------------------------------------------------------------------------------------------------
local PVoutputApi = "c550e7568ba649922fd015828f37667bf40933d8"      -- Your PVoutput api key
local PVoutputSystemID = "69982"                    -- Your PVoutput System ID
local PVoutputPostInterval = 1                      -- The number of minutes between posts to PVoutput (normal is 5 but when in donation mode it's max 1)
local PVoutputURL = 'http://pvoutput.org/service/r2/addstatus.jsp'  -- The URL to the PVoutput Service

----------------------------------------------------------------------------------------------------------
-- Require parameters
----------------------------------------------------------------------------------------------------------
local http = require("socket.http")

----------------------------------------------------------------------------------------------------------
-- Script parameters
----------------------------------------------------------------------------------------------------------
EnergyGeneration = 0    -- v1 in Watt hours
PowerGeneration = 0     -- v2 in Watts
EnergyConsumption = 0   -- v3 in Watt hours
PowerConsumption = 0    -- v4 in Watts
CurrentTemp = 0     -- v5 in celcius
Voltage = 0         -- v6 in volts
c1 = 1          -- c1 = 0 when v1 is today's energy. c1 = 1 when v1 is lifetime energy.
Debug = "NO"        -- Turn debugging on ("YES") or off ("NO")

----------------------------------------------------------------------------------------------------------
-- Lua Functions
----------------------------------------------------------------------------------------------------------
function UploadToPVoutput(self)
    b, c, h = http.request("http" .. PVoutputURL .. PVoutputApi .. "&sid=".. PVoutputSystemID .. "&d=" .. os.date("%Y%m%d") .. "&t=" .. os.date("%H:%M") .. 

    "&v1=" .. EnergyGeneration .. "&v2=" .. PowerGeneration .. "&v3=" .. EnergyConsumption .. "&v4=" .. PowerConsumption .. "&v5=" .. CurrentTemp .. "&v6=" .. Voltage .. "&c1=" .. c1 )
    if b=="OK 200: Added Status" then
        print(" -- Current status successfully uploaded to PVoutput.")
    else
        print(" -- " ..b)
    end
    
    print(" -- Energy generation (v1) = ".. EnergyGeneration .. " Wh")
    print(" -- Power generation (v2) = " .. PowerGeneration .. " W")
    print(" -- Energy consumption (v3) = " .. EnergyConsumption .. " Wh")
    print(" -- Power consumption (v4) = " .. PowerConsumption .. " W")
    print(" -- Current temperature (v5) = " .. CurrentTemp .. " C")
    print(" -- Voltage (v6) = " .. Voltage .. "V")
    print(" -- Cumulative Flag (c1) = " .. c1 .. "")
end

function update(device, id, power, energy, index)
    commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
end 

----------------------------------------------------------------------------------------------------------
-- CommandArray
----------------------------------------------------------------------------------------------------------
commandArray = {}

    time = os.date("*t")
    if PVoutputPostInterval>1 then
        TimeToGo = PVoutputPostInterval - (time.min % PVoutputPostInterval)
        print('Time to go before upload to PVoutput: ' ..TimeToGo.. " minutes")
    end
    
    if((time.min % PVoutputPostInterval)==0)then
        -- Generated
        PowerGeneration, EnergyGeneration = otherdevices_svalues[GenerationDeviceName]:match("([^;]+);([^;]+)")
        if Debug=="YES" then
            print(" ---- The total generated energy is " .. EnergyGeneration .. " Wh");
            print(" ---- The current generated power is " .. PowerGeneration .. " W");
        end

        -- Voltage
        Voltage = otherdevices_svalues[VoltageDeviceName] :match("([^;]+)")
        if Debug=="YES" then
            print(" ---- The voltage of the inverter is " .. Voltage .. " V");
        end
        
        -- Temperature
        CurrentTemp = otherdevices_svalues[TemperatureDeviceName]:match("([^;]+)")
        if Debug=="YES" then
            print(" ---- The outside temperature is " .. CurrentTemp .. " C.");
        end
        
        -- Consumption
        PowerConsumption, EnergyConsumption = otherdevices_svalues[ConsumptionDeviceName]:match("([^;]+);([^;]+)")
        if Debug=="YES" then
            print(" ---- The total consumed energy is " .. EnergyConsumption .. " Wh");
            print(" ---- The current consumed power is " .. PowerConsumption .. " W");
        end
        -- Upload data to PVoutput  
        UploadToPVoutput()
    end

return commandArray

  • Knielen
  • Registratie: December 2009
  • Laatst online: 08:48
Lijkt inderdaad mis te gaan op de namen die je meegeeft. De namen moeten overeenkomen met deze in Domoticz. De volgende gegevens heb je nodig:

Naam van apparaat in Domoticz dat de levering van je zonnepanelen registreert
Naam van apparaat in Domoticz dat je P1 gebruik laat zien
Naam van apparaat in Domoticz dat je P1 spanning laat zien
Naam van apparaat in Domoticz dat je temperatuur laat zien (eventueel via bijvoorbeeld buienradar plugin)

  • wautah91
  • Registratie: April 2010
  • Laatst online: 07:03
Vergeet ook niet de namen van de devices tussen aanhalingstekens te zetten bij regel 13, 14 en 15. Dus zoals je bij regel 16 wel doet.

Mijn smarthome blog artikelen over: Thuisaccu | Dynamische energieprijzen | Watermeter


  • sjoemie1985
  • Registratie: Januari 2014
  • Laatst online: 09:47
wat zou dan waar moeten komen en betreft het dan het time upload script of het device script.
wat ik van de tutorial begrijp is dat deze ook een berekning kan maken aan de hand van 1 device naam en als ik dat zo zie zou dat het device "Power" zou moeten zijn?

Hierbij 2 afbeeldingfen van domoticz

Afbeeldingslocatie: https://i.imgur.com/l57URF9.png

Afbeeldingslocatie: https://i.imgur.com/0EsSBza.png

wat betreft de het weer heb ik een openweather account voor :)

[ Voor 7% gewijzigd door sjoemie1985 op 16-09-2019 13:12 ]


  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@sjoemie1985
Dit lua script is eigenlijk afhankelijk van een ander lua script, wat "Eigen verbruik" eerst uit rekent, uit je zonnepanelen en data van de slimme meter. Resultaat is dan de dummy Consumption devicename.

Als je de zonnepanelen info terughaalt van pvoutput, heb je per 5 minuten data.
Je slimme meter zal ieder 10 sec updaten.

De berekening van eigen verbruik, zal dan enorm afwijken. De panelen info is immers 4,59 minuten oud.
Het moet zoveel mogelijk synchroon lopen. Dus liefst iedere 10 sec een update van de zonnepanelen en P1 (slimme meter). Pas dan heb je een correcte berekening van "Eigen verbruik" in de consumption devicename dummy.

In je script staan fouten
Geen aanhalingstekens gebruikt bij de Domoticz IDX of devices
ConsumptionDeviceName is dus niet je slimme meter, maar dus een berekende dummy "Eigen verbruik"

Ook moet je met dit script "socket.http" extra installeren (staat ook ergens uitgelegd in de domoticz wiki)

Maw.
Het is veel makkelijker een dzVents script te gebruiken hiervoor, zodat je dat niet hoeft te installeren.
Deze heb ik onlangs (met veel moeite en tijd) in elkaar gestoken.

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
return {

    on = {
        devices = { 
                    79, -- Slimme meter youless (youless or P1)
                    82, -- Zonnepanelen
                  }
         },
    logging = {
        level = domoticz.LOG_INFO,
--        level = domoticz.LOG_ERROR,
        marker = "Eigen verbruik"
               },    
    
    execute = function(domoticz, item)
        
        local Smartmeter = domoticz.devices(6)   -- Slimme meter (youless or P1)
        local Generation = domoticz.devices(18)   -- Zonnepanelen
        local Consumption = domoticz.devices(83)  -- Eigen verbruik / calculated value / dummy Elekta kWh + counter
        
        -- Smartmeter
        local EnergyImportLow = Smartmeter.rawData[1]
        local EnergyImportHigh = Smartmeter.rawData[2]
        local EnergyExportLow = Smartmeter.rawData[3]
        local EnergyExportHigh = Smartmeter.rawData[4]
        local PowerImport = Smartmeter.rawData[5]
        local PowerExport = Smartmeter.rawData[6]
        
        -- Generation
        local EnergyGeneration = Generation.rawData[2]
        local PowerGeneration = Generation.rawData[1]

        --Calculate
        local EnergyImport = EnergyImportLow + EnergyImportHigh
        local EnergyExport = EnergyExportLow + EnergyExportHigh
        
        local EnergyConsumption = EnergyGeneration + EnergyImport - EnergyExport
        local PowerConsumption = PowerGeneration + PowerImport - PowerExport

        domoticz.log('EnergyImportLow ' .. EnergyImportLow .. ' Wh ', domoticz.LOG_INFO)
        domoticz.log('EnergyImportHigh ' .. EnergyImportHigh .. ' Wh ', domoticz.LOG_INFO)
        domoticz.log('EnergyExportLow ' .. EnergyExportLow .. ' Wh ', domoticz.LOG_INFO)
        domoticz.log('EnergyExportHigh ' .. EnergyExportHigh .. ' Wh ', domoticz.LOG_INFO)

        domoticz.log('PowerImport ' .. PowerImport .. ' W ', domoticz.LOG_INFO)
        domoticz.log('PowerExport ' .. PowerExport .. ' W ', domoticz.LOG_INFO)
        domoticz.log('EnergyGeneration ' .. EnergyGeneration .. ' Wh ', domoticz.LOG_INFO)
        domoticz.log('PowerGeneration ' .. PowerGeneration .. ' W ', domoticz.LOG_INFO)

        domoticz.log('EnergyConsumption ' .. EnergyConsumption .. ' Wh ', domoticz.LOG_INFO)
        domoticz.log('PowerConsumption: ' .. PowerConsumption .. ' W ', domoticz.LOG_INFO)
        
        domoticz.openURL('http://127.0.0.1:8095/json.htm?type=command&param=udevice&idx=83'..'&nvalue=0&svalue='..PowerConsumption..';'..EnergyConsumption)  
        --vul zelf hier idx in van dummy Consumption (83) en domoticz port (8095)
        
    end
    
}

Een en ander is afhankelijk van de data die je aanbiedt.
Een sensor kan je makkelijk uitlezen en in de info in de log laten plaatsen, om zo tot de juiste parameters te komen (rawdata[x] in bovenstaand geval)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
return {
    active = true,
    
    on = {
        devices = {81}-- device idx that you want to readout and put into the log
        --timer = { 'at 15:51'}
    },

   execute = function(d, item)
      print("START Testscript---------------------------------------------------")
    -- toont alle info van item:
    item.dump()
      print("END Testscript-------------------------------------------------")
     
   end
}


Dan nog een script om te uploaden naar pvoutput:
Zie hierboven en zelf aanvullen verbeteren met v1 en v2 etc.

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • sjoemie1985
  • Registratie: Januari 2014
  • Laatst online: 09:47
klein ander vraagje: is het mogelijk de poort van domoticz te veranderen?
deze heb ik nu op 8080 staan maar weet niet of dat heel handig is?

en wat betreft de live zonnepanelen data wordt lastig, omdat de sems portal niet direct kan importeren naar mijn domoticz.

of zijn er andere manieren om een goodwe omvormer in domoticz te laten uit komen?

[ Voor 42% gewijzigd door sjoemie1985 op 16-09-2019 19:45 ]


  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@sjoemie1985
Is toch makkelijk te vinden met google?
https://www.letscontrolit.com/forum/viewtopic.php?t=1378
code:
1
 sudo nano /etc/init.d/domoticz.sh

Zoek 8080 op en verander die.
ctrl o en ctrl x
Misschien domoticz ff restarten.
code:
1
2
systemctl daemon-reload
sudo service domoticz.sh restart


En de goodwe kan met een esp uitgelezen worden. Verlies je wel je sems portal.
[GoodWe] Uitlezen inverters via USB

Of je koopt een kWh meter met s0 en een youless om de omvormer uit te lezen.
Dat is ook best snel.
De Youless kan beide doen. kWh met s0 en P1 van de slimme meter

[ Voor 28% gewijzigd door AUijtdehaag op 16-09-2019 21:46 ]

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • sjoemie1985
  • Registratie: Januari 2014
  • Laatst online: 09:47
AUijtdehaag schreef op maandag 16 september 2019 @ 21:35:
@sjoemie1985
Is toch makkelijk te vinden met google?
https://www.letscontrolit.com/forum/viewtopic.php?t=1378
code:
1
 sudo nano /etc/init.d/domoticz.sh

Zoek 8080 op en verander die.
ctrl o en ctrl x
Misschien domoticz ff restarten.
code:
1
2
systemctl daemon-reload
sudo service domoticz.sh restart


En de goodwe kan met een esp uitgelezen worden. Verlies je wel je sems portal.
[GoodWe] Uitlezen inverters via USB

Of je koopt een kWh meter met s0 en een youless om de omvormer uit te lezen.
Dat is ook best snel.
De Youless kan beide doen. kWh met s0 en P1 van de slimme meter
oke dank voor de info.
had ook al een script gevonden via google.
mocht dat niet lukken ga ik die van jouw eens checken :) (y)

  • sjoemie1985
  • Registratie: Januari 2014
  • Laatst online: 09:47
ter info kwam net het volgende tegen :)
Voor diegene die ook gebruik maken van de semsportal inclusief een Goodwe omvormer
volgende plugin plaatsen in domoticz en hij doet het :)

https://github.com/dylian94/domoticz-GoodWeSEMS

Nu alleen nog er voor zorgen dat ik deze gegevens kan uploaden naar pvoutput :)

  • hesselb
  • Registratie: Mei 2009
  • Laatst online: 18-11 23:10
er gaat iets mis met het uitlezen van mijn zonnepanelen

2019-11-17 14:05:22.217 Status: dzVents: Info: Handling events for: "Smartmeter", value: "3561257;2795288;299302;947676;0;362"
2019-11-17 14:05:22.217 Status: dzVents: Info: Eigen verbruik: ------ Start internal script: verbruik2: Device: "Smartmeter (smart meter)", Index: 69
2019-11-17 14:05:22.219 Status: dzVents: Error (2.4.19): Eigen verbruik: An error occured when calling event handler verbruik2
2019-11-17 14:05:22.219 Status: dzVents: Error (2.4.19): Eigen verbruik: ...domoticz/scripts/dzVents/generated_scripts/verbruik2.lua:38: attempt to perform arithmetic on local 'PowerGeneration' (a nil value)

stukje script

-- Generation
local EnergyGeneration = Generation.rawData[2]
local PowerGeneration = Generation.rawData[1]

als ik local PowerGeneration = Generation.rawData[1] verander in 2 is mijn fout weg, dan heb ik wel de verkeerde uitlezing natuurlijk


68 2019-11-17 13:38:01 Generation 3525W;354700.0 0/3525W;354700.0

[ Voor 88% gewijzigd door hesselb op 17-11-2019 14:26 . Reden: aanvulling ]


  • hesselb
  • Registratie: Mei 2009
  • Laatst online: 18-11 23:10
@AUijtdehaag

er gaat bij mij wat mis met het berekenen van mijn eigen verbruik
ik denk dat het komt dat er een W achter staat

2019-11-22 10:59:52.984 Status: dzVents: > state: 195W;384000.0

heb je een idee hoe ik dit oplossen kan?

  • DjAntoon
  • Registratie: Augustus 2017
  • Laatst online: 17-11 20:43
Ik heb dit script gevonden om data te uploaden naar pvoutput, maar ik zou het liefst ook mijn growatt omvormer data die ik al in domoticz heb ook mee uploaden.
Het (power) consumption sensor script loopt al.

Ik begrijp toch goed dat dit alleen mijn data uit de P1 meter upload?
AUijtdehaag schreef op vrijdag 26 juli 2019 @ 20:42:
Hier een voorbeeld van een dzVents script.
Geef hem een naam.lua en plaats hem in /dzvents/scripts
Uiteraard aanpassen met je eigen gegevens. (die api key en system zijn fictief)
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
62
63
64
65
66
67
68
69
70
71
return {
    active = true,
    logging = {
        --level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting and use debug
        marker = 'PVOutput'
    },
   on = {
      timer = {
         'every 5 minutes'   -- The number of minutes between posts to PVoutput (normal is 5 but when in donation mode it's max 1)
      },
      httpResponses = { 'triggerPVoutput' }
   },
   execute = function(domoticz,item)
       
        ----------------------------------------------------------------------------------------------------------
        -- PVoutput parameters
        ----------------------------------------------------------------------------------------------------------
        local PVoutputApi = '87cb8900c1b4f308b3d86ba47f7aa50d637d4321'      -- Your PVoutput api key
        local PVoutputSystemID = '52532'                                    -- Your PVoutput System ID
        local PVoutputURL = 'http://pvoutput.org/service/r2/addstatus.jsp'  -- The URL to the PVoutput Service
        ----------------------------------------------------------------------------------------------------------
        -- Domoticz Sensor parameters
        ----------------------------------------------------------------------------------------------------------
        local tempSensor = 'SMA zuid'
        local ConsumptionSensor = 'Eigen verbruik'

        domoticz.log('PVOutput script running', domoticz.LOG_DEBUG)

        if (item.isTimer) then
            local temperature = domoticz.devices(tempSensor).temperature
            local Temperature = domoticz.round(temperature,2)
            local EnergyConsumption  = domoticz.devices(ConsumptionSensor).counterToday*1000 -- v3 in Watt hours
            local PowerConsumption  = domoticz.devices(ConsumptionSensor).usage              -- v4 in Watts
            domoticz.log('Temperature is :'..Temperature..' graden', domoticz.LOG_DEBUG)
            domoticz.log('EnergyConsumption is :'..EnergyConsumption..' Wh', domoticz.LOG_DEBUG)
            domoticz.log('PowerConsumption is :'..PowerConsumption..' watt', domoticz.LOG_DEBUG)


            domoticz.log('Call PVOutput url with callback', domoticz.LOG_DEBUG)
            -- ASYNC openUrl
            domoticz.openURL({
                                url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v3='..EnergyConsumption..'&v4='..PowerConsumption,
                                method = 'GET',
                                callback = 'triggerPVoutput',
                                headers = { ['X-Pvoutput-Apikey'] = PVoutputApi, 
                                            ['X-Pvoutput-SystemId'] = PVoutputSystemID
                                          }
            })
        
        
        end

        if (item.isHTTPResponse) then 
            domoticz.log('Callback from url requested. Statuscode:'..item.statusCode, domoticz.LOG_DEBUG)

            if (item.ok) then
                local valid = string.find(item.data, "OK 200: Added Status")  
                if (valid ~= nil) then
                    domoticz.log('Response received from PVOutput: '..item.data, domoticz.LOG_DEBUG)
        
                    domoticz.log('Current status successfully uploaded to PVoutput.', domoticz.LOG_INFO)
                else
                    domoticz.log('Current status NOT successfully uploaded to PVoutput -> '..item.data, domoticz.LOG_ERROR)
                end
            else
                domoticz.log('Current status NOT successfully uploaded to PVoutput. Statuscode:'..item.statusCode, domoticz.LOG_ERROR)
            end        
        end
    end

}

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@DjAntoon
Niet zozeer een P1 meter, maar een dummy kWh meter.
v3 en v4 voor verbruik. v1 en v2 voor opwek.
Er zit ook nog een temperatuur meting in. Maar die zou je eruit kunnen halen.

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • DjAntoon
  • Registratie: Augustus 2017
  • Laatst online: 17-11 20:43
AUijtdehaag schreef op zaterdag 27 juni 2020 @ 14:34:
@DjAntoon
Niet zozeer een P1 meter, maar een dummy kWh meter.
v3 en v4 voor verbruik. v1 en v2 voor opwek.
Er zit ook nog een temperatuur meting in. Maar die zou je eruit kunnen halen.
En als ik de data van mijn growatt omvormer die al in domoticz zit erbij wil zetten?

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@DjAntoon dan zet je ze er allemaal in?

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • DjAntoon
  • Registratie: Augustus 2017
  • Laatst online: 17-11 20:43
Ok, dat gaan we dan maar eens proberen, er zitten geen vaste plekken voor in de data tabel?

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • DjAntoon
  • Registratie: Augustus 2017
  • Laatst online: 17-11 20:43
Nou het lijkt gelukt te zijn, er word data geupload naar pvoutput.
Hierbij het aangepaste script van @AUijtdehaag, lekker duidelijk zodat ik het zelfs voor elkaar krijg om het aantepassen. Het werkte zelfs ineens...
Api key en system id zijn niet kloppend met de werkelijkheid.
Power en energie generation heb ik toegevoegd.
Er zitten in het script ook nog wat notificaties, die ik gebruikte voor debug.

Ik ben trouwens:
DjAntoon2muchPanels op PV output.
2muchPanels komt doordat ik altijd hoor, wat ik met zoveel panelen moet voor een 2 persoonshuishouden.

Edit:

Ik zie bij het bestuderen van mijn output, toch wel wat probleempjes, de growatt data word eens in de 5 minuten opgehaald, en de P1 meter elkde 10 seconden. Dus vliegt mijn consumption alle kanten op en zelf negatief. Toch maar eens gaan kijken naar een oplossing, of meer growatt data of (en misschien dan nog steeds) de P1 data uitmiddelen voordat de consumption berekend word.

Edit 2:
De growatt data komt maar eens in de 5 minuten binnen, ik denk dat ik daar weinig aan kan doen. (Behalve lokaal zelf gaan meten) Het uitmiddelen werkt wel een stuk beter, maar het lijkt me dat de growatt data ook niet zo netjes uitgemiddeld is over 5 minuten, dus zie ik nog steeds niet kloppende data.

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
-- Script from https://gathering.tweakers.net/forum/list_messages/1936018
-- Credits to Fonske, AUijtdehaag
-- Some small changes for uploading power generation
--
return {
    active = true,
    logging = {
        --level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting and use debug
        marker = 'PVOutput'
    },
   on = {
      timer = {
         'every 5 minutes'   -- The number of minutes between posts to PVoutput (normal is 5 but when in donation mode it's max 1)
      },
      httpResponses = { 'triggerPVoutput' }
   },
   execute = function(domoticz,item)
       
        ----------------------------------------------------------------------------------------------------------
        -- PVoutput parameters
        ----------------------------------------------------------------------------------------------------------
        local PVoutputApi = 'c912890a394129bad0257eb94a6247bb566c4989'      -- Your PVoutput api key 
        local PVoutputSystemID = '73218'                                    -- Your PVoutput System ID
        local PVoutputURL = 'http://pvoutput.org/service/r2/addstatus.jsp'  -- The URL to the PVoutput Service
        ----------------------------------------------------------------------------------------------------------
        -- Domoticz Sensor parameters
        ----------------------------------------------------------------------------------------------------------
 --       local tempSensor = 'SMA zuid'
        local ConsumptionSensor = 'Consumption'

        domoticz.log('PVOutput script running', domoticz.LOG_DEBUG)

        if (item.isTimer) then
  --          local temperature = domoticz.devices(tempSensor).temperature
  --          local Temperature = domoticz.round(temperature,2)
  
            local EnergyGeneration = domoticz.devices('Growatt').counterToday*1000           -- v1 in Watt hours
            local PowerGeneration = domoticz.devices('Growatt').usage                        -- v2 in watts
  
            local EnergyConsumption  = domoticz.devices(ConsumptionSensor).counterToday*1000 -- v3 in Watt hours
            local PowerConsumption  = domoticz.devices(ConsumptionSensor).usage              -- v4 in Watts
  --          domoticz.log('Temperature is :'..Temperature..' graden', domoticz.LOG_DEBUG)



            domoticz.log('EnergyConsumption is :'..EnergyConsumption..' Wh', domoticz.LOG_DEBUG)
            domoticz.log('PowerConsumption is :'..PowerConsumption..' watt', domoticz.LOG_DEBUG)


            domoticz.notify('PVOutput','Pv Output EnergyGeneration is :'..EnergyGeneration..' Wh')
            domoticz.notify('PVOutput','Pv Output PowerGeneration is :'..PowerGeneration..' watt')

            domoticz.notify('PVOutput','Pv Output EnergyConsumption is :'..EnergyConsumption..' Wh')
            domoticz.notify('PVOutput','Pv Output PowerConsumption is :'..PowerConsumption..' watt')



            domoticz.log('Call PVOutput url with callback', domoticz.LOG_DEBUG)
            -- ASYNC openUrl
            domoticz.openURL({
                                url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v1='..EnergyGeneration..'&v2='..PowerGeneration..'&v3='..EnergyConsumption..'&v4='..PowerConsumption,
                                method = 'GET',
                                callback = 'triggerPVoutput',
                                headers = { ['X-Pvoutput-Apikey'] = PVoutputApi, 
                                            ['X-Pvoutput-SystemId'] = PVoutputSystemID
                                          }
            })
        
        
        end

        if (item.isHTTPResponse) then 
            domoticz.log('Callback from url requested. Statuscode:'..item.statusCode, domoticz.LOG_DEBUG)

            if (item.ok) then
                local valid = string.find(item.data, "OK 200: Added Status")  
                if (valid ~= nil) then
                    domoticz.log('Response received from PVOutput: '..item.data, domoticz.LOG_DEBUG)
        
                    domoticz.log('Current status successfully uploaded to PVoutput.', domoticz.LOG_INFO)
                else
                    domoticz.log('Current status NOT successfully uploaded to PVoutput -> '..item.data, domoticz.LOG_ERROR)
                end
            else
                domoticz.log('Current status NOT successfully uploaded to PVoutput. Statuscode:'..item.statusCode, domoticz.LOG_ERROR)
            end        
        end
    end

}

[ Voor 6% gewijzigd door DjAntoon op 30-06-2020 15:28 ]


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
Hi,

Ik gebruik nu al zon 3kwart jaar, domoticz
De situatie is alsvolgt, domoticz haalt mijn zonnepanelen info van de growatt server.
Via bovenstaande lua script (aangepast naar mijn wensen), stuurt domoticz dit door naar pvoutput.
Dit heeft eigenlijk altijd prima gewerkt, tot een paar weken terug.

Als het sochtend slecht weer is en de zonnepanelen starten pas laat met leveren, stuurt domoticz de eindstand van de vorige dag op. Hij begint dus niet bij 0.
Als je in domoticz zelf kijkt, staat hij wel netjes op 0.
En dat is nou precies de waarde welke ik domoticz naar pvoutput laat sturen..

Heel irritant want als je die dag niet boven het aantal van gister komt moet je het een dag later weer aanpassen. Als hij wel boven de dagopbrengst van de vorige dag komt, tikt hij netjes door.
Automatisering en geen omkijken er meer naar is natuurlijk wat we willen!

Ik snap niet wat er fout gaat, aangezien het tot voor kort prima werkte.

Afbeeldingslocatie: https://tweakers.net/i/xW_bKSji9fJPB7NHFEMmgpcugKo=/800x/filters:strip_icc():strip_exif()/f/image/xyu0FvJvksBUJLWKhMhDnFkE.jpg?f=fotoalbum_largeDomoticz gaat het wel gewoon zoals het hoort.

Afbeeldingslocatie: https://tweakers.net/i/1H6jA0Aro6Y1UnZa8He8Jcgrc9w=/800x/filters:strip_icc():strip_exif()/f/image/q84FH3LcsntASMEXCweEi12W.jpg?f=fotoalbum_largeen bij pvoutput wordt de power wel netjes verzonden maar het "energykolommetje" is dus de eindopbrengst van gisteren.

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
62
63
64
65
66
67
local GenerationSensor = 'Zonnepanelen kWh'                                    -- Your inverter generationsensor



        domoticz.log('PVOutput script running', domoticz.LOG_DEBUG)



        if (item.isTimer) then

            local EnergyGeneration  = domoticz.devices(GenerationSensor).counterToday*1000  -- v1 in Watt hours

            local PowerGeneration  = domoticz.devices(GenerationSensor).usage               -- v2 in Watts

            domoticz.log('EnergyGeneration is :'..EnergyGeneration..' Wh', domoticz.LOG_DEBUG)

            domoticz.log('PowerGeneration is :'..PowerGeneration..' watt', domoticz.LOG_DEBUG)





            domoticz.log('Call PVOutput url with callback', domoticz.LOG_DEBUG)

            -- ASYNC openUrl

            domoticz.openURL({

                                url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v1='..EnergyGeneration..'&v2='..PowerGeneration,

                                method = 'GET',

                                callback = 'triggerPVoutput',

                                headers = { ['X-Pvoutput-Apikey'] = PVoutputApi, 

                                            ['X-Pvoutput-SystemId'] = PVoutputSystemID

                                          }

            })

        

        

        end

        if (item.isHTTPResponse) then 
            domoticz.log('Callback from url requested. Statuscode:'..item.statusCode, domoticz.LOG_DEBUG)

            if (item.ok) then
                local valid = string.find(item.data, "OK 200: Added Status")  
                if (valid ~= nil) then
                    domoticz.log('Response received from PVOutput: '..item.data, domoticz.LOG_DEBUG)
        
                    domoticz.log('Current status successfully uploaded to PVoutput.', domoticz.LOG_INFO)
                else
                    domoticz.log('Current status NOT successfully uploaded to PVoutput -> '..item.data, domoticz.LOG_ERROR)
                end
            else
                domoticz.log('Current status NOT successfully uploaded to PVoutput. Statuscode:'..item.statusCode, domoticz.LOG_ERROR)
            end        
        end
    end

}

[ Voor 69% gewijzigd door Kasper op 26-09-2020 09:18 ]


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
Ik zie dus nu de hele week al dat hij sochtends op pvoutput met het kwh van de vorige dag begint.(gelukkig telt hij niet verder, maar als hij het aantal niet overschrijft de gehele dag, onstaat er dus een vertekend beeld van de opbrengsten.

Het ging zo lang goed, maar deze week dus totaal niet.
Iemand enig idee waar ik het moet zoeken?

  • redbullwaning
  • Registratie: Februari 2002
  • Laatst online: 09:12
@Kasper je stuurt volgens mij niet mee in de url '&c1=1'

'&c1=1' voor totaal kwh (pvoutput telt zelf door en zet dagwaarde op 0)
'&c1=0' voor dag kwh

regel 29 aanpassen naar :
code:
1
url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v1='..EnergyGeneration..'&v2='..PowerGeneration..'&c1=1',

PVoutput (WH-MDC05H3E5) 12880WP /// SWW Atlantic Explorer v4 270L


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
redbullwaning schreef op vrijdag 2 oktober 2020 @ 21:56:
@Kasper je stuurt volgens mij niet mee in de url '&c1=1'

'&c1=1' voor totaal kwh (pvoutput telt zelf door en zet dagwaarde op 0)
'&c1=0' voor dag kwh

regel 29 aanpassen naar :
code:
1
url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v1='..EnergyGeneration..'&v2='..PowerGeneration..'&c1=1',
Bedankt voor uw reactie! Ik ga het direct proberen.

Maar hoe kan het al die tijd goed zijn gegaan?
Gister had ik een opbrengst van meer dan 10 kwh en vanochtend begon hij voor het eerst deze week, wel netjes op 0..

  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
redbullwaning schreef op vrijdag 2 oktober 2020 @ 21:56:
@Kasper je stuurt volgens mij niet mee in de url '&c1=1'

'&c1=1' voor totaal kwh (pvoutput telt zelf door en zet dagwaarde op 0)
'&c1=0' voor dag kwh

regel 29 aanpassen naar :
code:
1
url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v1='..EnergyGeneration..'&v2='..PowerGeneration..'&c1=1',
Dit gaat helaas ook niet goed, gister had hij 1 kwh te weinig geregistreerd. En vandaag staat hij nog steeds op 0 ipv op 0,5.

  • redbullwaning
  • Registratie: Februari 2002
  • Laatst online: 09:12
@Kasper wat stuur je naar pvoutput.

Je dag opbrengst of je totale aantal kwh

PVoutput (WH-MDC05H3E5) 12880WP /// SWW Atlantic Explorer v4 270L


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
redbullwaning schreef op zondag 4 oktober 2020 @ 12:13:
@Kasper wat stuur je naar pvoutput.

Je dag opbrengst of je totale aantal kwh
Elke 5 minuten stuurt hij zowel;
-opbrengst tot dan toe (kWh)
-hoeveelheid op dat moment (Watt)

Afbeeldingslocatie: https://tweakers.net/i/jBB_rAMHPeZnAt68QbAm7mkWDsI=/800x/filters:strip_icc():strip_exif()/f/image/j0uOvmIJQcf0ZrBS3KF8rGJH.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/xWb1bREjSbHWk4IBlcRuDYmUeDs=/800x/filters:strip_icc():strip_exif()/f/image/wuUl3aoI426UW5WCq1UAmKYq.jpg?f=fotoalbum_large

  • redbullwaning
  • Registratie: Februari 2002
  • Laatst online: 09:12
@Kasper '&c1=1'  zow dan '&c1=0'  moeten zijn voor dagopbrengst.

Heb je ook een totaal opbrengst counter.
Dan kan je beter die waarde sturen naar pvoutput.

Pvoutput zet automatisch dagopbrengst op 0 middennacht

PVoutput (WH-MDC05H3E5) 12880WP /// SWW Atlantic Explorer v4 270L


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
redbullwaning schreef op zondag 4 oktober 2020 @ 14:31:
@Kasper '&c1=1'  zow dan '&c1=0'  moeten zijn voor dagopbrengst.

Heb je ook een totaal opbrengst counter.
Dan kan je beter die waarde sturen naar pvoutput.

Pvoutput zet automatisch dagopbrengst op 0 middennacht
Sorry, had het fout. Dat is juist degene welke de dagopbrengst counter.

Wattage haal ik uit een andere.

Afbeeldingslocatie: https://tweakers.net/i/G_AFin1ezmEVyEgjALTofsDF35Q=/800x/filters:strip_icc():strip_exif()/f/image/fsisc8mnVcZEnEvBGg3jtEZL.jpg?f=fotoalbum_large

@redbullwaning
Update:
Het werkt nog steeds niet. Het schijnt dat er snachts een error voorkomt welke de boel in de soep laat lopen.
Dit gaat de hele nacht door zon beetje..
Afbeeldingslocatie: https://tweakers.net/i/WeuzUoPtFMvO0AQRsJ9geDql5tA=/800x/filters:strip_icc():strip_exif()/f/image/dueP2CckjVrfp8HdSF9MJbsb.jpg?f=fotoalbum_large

[ Voor 30% gewijzigd door Kasper op 08-10-2020 12:20 ]


  • redbullwaning
  • Registratie: Februari 2002
  • Laatst online: 09:12
@Kasper ik las verkeert

V1=5900.0 is dat de dagopbrengst van gisteren?

Welk script gekruik je?

Jij stuurt om half 5 al jou dagopbrengst naar pvoutput.

[ Voor 100% gewijzigd door redbullwaning op 08-10-2020 13:26 ]

PVoutput (WH-MDC05H3E5) 12880WP /// SWW Atlantic Explorer v4 270L


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
redbullwaning schreef op donderdag 8 oktober 2020 @ 12:58:
@Kasper ik las verkeert

V1=5900.0 is dat de dagopbrengst van gisteren?

Welk script gekruik je?

Jij stuurt om half 5 al jou dagopbrengst naar pvoutput.
Ja dat was idd de opbrengst van gisteren.

Het script van @AUijtdehaag uit dit topic. Wat aangepast naar mijn benamingen/wensen. Zoals ik liet zien in een paar posts terug.

Hele nacht lijkt hij proberen te sturen zelfs 8)7

  • redbullwaning
  • Registratie: Februari 2002
  • Laatst online: 09:12
@Kasper het lijkt net of jou &v1 telaat wordt gereset.

Wordt die soms pas op 0 gezet nadat hij de data van de server haalt.

PVoutput (WH-MDC05H3E5) 12880WP /// SWW Atlantic Explorer v4 270L


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
..

[ Voor 99% gewijzigd door Kasper op 20-10-2020 16:54 ]


  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
Even een update van mijn kant;

Ik ben sinds van t weekend een compleet ander script gaan gebruiken. En dit lijkt tot nu toe prima te werken :)

[ Voor 87% gewijzigd door Kasper op 20-10-2020 16:57 ]


  • annestweak
  • Registratie: Mei 2020
  • Laatst online: 09-11 21:04
Kasper schreef op woensdag 14 oktober 2020 @ 10:43:
Even een update van mijn kant;

Ik ben sinds van t weekend een compleet ander script gaan gebruiken. En dit lijkt tot nu toe prima te werken :)
welk script is dat?
ik wil het ook gaan proberen

  • Kasper
  • Registratie: Mei 2011
  • Laatst online: 18-11 22:47
annestweak schreef op woensdag 4 november 2020 @ 14:16:
[...]


welk script is dat?
ik wil het ook gaan proberen
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
62
63
64
65
66
67
68
69
70
local scriptVar = 'PVOutput'

return 
{
    on =    
    { 
        timer = 
        { 
            'every 5 minutes', 
        },
        httpResponses = 
        { 
            scriptVar,
        },
    },
 
    logging =    
    {   
        level = domoticz.LOG_DEBUG, -- change to LOG_ERROR when OK - was LOG_DEBUG
        marker = scriptVar,
    },

    execute = function(dz, item)

        local function post2PVOutput(PVSettings, postData)
            dz.openURL({
                url = PVSettings.url,
                method = 'POST',
                headers = {
                    ['X-Pvoutput-Apikey'] = PVSettings.api,
                    ['X-Pvoutput-SystemId'] = PVSettings.id
                },
                callback = scriptVar,
                postData = postData
            })
        end

        local function makepostData()
        local generated = dz.devices('Zonnepanelen kWh')      
  
local round = dz.utils.round

      
              dz.log('generated  : ' .. generated.nValue .. ';' .. generated.sValue,dz.LOG_DEBUG)
      
            local postdDataAsString = 
                    'd=' .. os.date("%Y%m%d") ..
                    '&t=' .. os.date("%H:%M") .. 
                    
                    '&v1=' .. round(generated.WhTotal,1) ..  -- produced
                    '&v2=' .. round(generated.actualWatt,1) ..
                    
                    '&c1=1'

            return postdDataAsString
        end

       if item.isHTTPResponse then
            dz.log("Return from PVOutput ==>> " .. item.data,dz.LOG_FORCE)
        else
            PVSettings = 
            {
            url = 'HTTPS://pvoutput.org/service/r2/addstatus.jsp',
            api = dz.variables('PVoutput_API').value,
            id  = dz.variables('PVoutput_ID').value,
            }
            post2PVOutput(PVSettings, makepostData())
        end
    end
}


https://www.huizebruin.nl...len-aan-domoticz-v2020-1/
ongeveer volgens deze handleiding

ik heb de code zover aangepast dat alleen mijn zonnepanelen naar pvoutput verzonden wordt.

https://pvoutput.org/list.jsp?userid=78903
*temperatuur haalt pvoutput zelf op, los van domoticz

  • Ierlandfan
  • Registratie: Augustus 2002
  • Laatst online: 15-11 10:38
Weet iemand welke waardes ik moet uploaden met dit script? Ik gebruik wel een p1 meter maar via Toon dus het werkt net even iets anders:

-- Imported
PowerImport, EnergyImport = otherdevices_svalues[ImportedDeviceName]:match("([^;]+);([^;]+)")
if Debug=="YES" then
print(" ----- PowerImport = " .. PowerImport .. " W"); <<<<<<< Geen Idee
print(" ----- EnergyImport = " .. EnergyImport .. " Wh"); <<<<< Energy today

  • merlin1201
  • Registratie: Juni 2011
  • Laatst online: 10:55
Ik ben momenteel ook aan het experiminteren met bovenstaande script, maar ik krijg een waarde maar niet geüpload naar pvoutput en dat is de Voltage.
Steeds krijg ik een foutmelding en dan worden gegevens niet geüpload.
Ik gebruik een goodwe, en domoticz het voltage device zou Goodwe - voltage. moeten zijn, maar dat werkt schijnbaar niet.
iemand enig idee of is er meer info nodig

4800 Wp 10x ZO 6x NW https://pvoutput.org/intraday.jsp?id=74451&sid=66030


  • annestweak
  • Registratie: Mei 2020
  • Laatst online: 09-11 21:04
mijn waardes blijven ook op nul staan in pvoutput
dat wat er wel staat heb ikzelf handmatig ingevoerd

https://pvoutput.org/list.jsp?userid=88876

  • klump4u
  • Registratie: Februari 2008
  • Niet online

klump4u

Full electric in Zuid-Limburg

AUijtdehaag schreef op vrijdag 26 juli 2019 @ 20:42:
Hier een voorbeeld van een dzVents script.
Geef hem een naam.lua en plaats hem in /dzvents/scripts
Uiteraard aanpassen met je eigen gegevens. (die api key en system zijn fictief)
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
62
63
64
65
66
67
68
69
70
71
return {
    active = true,
    logging = {
        --level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting and use debug
        marker = 'PVOutput'
    },
   on = {
      timer = {
         'every 5 minutes'   -- The number of minutes between posts to PVoutput (normal is 5 but when in donation mode it's max 1)
      },
      httpResponses = { 'triggerPVoutput' }
   },
   execute = function(domoticz,item)
       
        ----------------------------------------------------------------------------------------------------------
        -- PVoutput parameters
        ----------------------------------------------------------------------------------------------------------
        local PVoutputApi = '87cb8900c1b4f308b3d86ba47f7aa50d637d4321'      -- Your PVoutput api key
        local PVoutputSystemID = '52532'                                    -- Your PVoutput System ID
        local PVoutputURL = 'http://pvoutput.org/service/r2/addstatus.jsp'  -- The URL to the PVoutput Service
        ----------------------------------------------------------------------------------------------------------
        -- Domoticz Sensor parameters
        ----------------------------------------------------------------------------------------------------------
        local tempSensor = 'SMA zuid'
        local ConsumptionSensor = 'Eigen verbruik'

        domoticz.log('PVOutput script running', domoticz.LOG_DEBUG)

        if (item.isTimer) then
            local temperature = domoticz.devices(tempSensor).temperature
            local Temperature = domoticz.round(temperature,2)
            local EnergyConsumption  = domoticz.devices(ConsumptionSensor).counterToday*1000 -- v3 in Watt hours
            local PowerConsumption  = domoticz.devices(ConsumptionSensor).usage              -- v4 in Watts
            domoticz.log('Temperature is :'..Temperature..' graden', domoticz.LOG_DEBUG)
            domoticz.log('EnergyConsumption is :'..EnergyConsumption..' Wh', domoticz.LOG_DEBUG)
            domoticz.log('PowerConsumption is :'..PowerConsumption..' watt', domoticz.LOG_DEBUG)


            domoticz.log('Call PVOutput url with callback', domoticz.LOG_DEBUG)
            -- ASYNC openUrl
            domoticz.openURL({
                                url = PVoutputURL..'?d='..os.date("%Y%m%d")..'&t='..os.date("%H:%M")..'&v3='..EnergyConsumption..'&v4='..PowerConsumption,
                                method = 'GET',
                                callback = 'triggerPVoutput',
                                headers = { ['X-Pvoutput-Apikey'] = PVoutputApi, 
                                            ['X-Pvoutput-SystemId'] = PVoutputSystemID
                                          }
            })
        
        
        end

        if (item.isHTTPResponse) then 
            domoticz.log('Callback from url requested. Statuscode:'..item.statusCode, domoticz.LOG_DEBUG)

            if (item.ok) then
                local valid = string.find(item.data, "OK 200: Added Status")  
                if (valid ~= nil) then
                    domoticz.log('Response received from PVOutput: '..item.data, domoticz.LOG_DEBUG)
        
                    domoticz.log('Current status successfully uploaded to PVoutput.', domoticz.LOG_INFO)
                else
                    domoticz.log('Current status NOT successfully uploaded to PVoutput -> '..item.data, domoticz.LOG_ERROR)
                end
            else
                domoticz.log('Current status NOT successfully uploaded to PVoutput. Statuscode:'..item.statusCode, domoticz.LOG_ERROR)
            end        
        end
    end

}
Dit zocht ik al een tijdje, bedankt.

18950Wp🌞, Atlantic 270V3💧, Pana 5J🔥. Zendure 2400AC 11,5kWh🔋,Hyundai Kona 64kWh 🚗, Peblar Home ⛽


  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
klump4u schreef op woensdag 11 januari 2023 @ 17:02:
[...]

Dit zocht ik al een tijdje, bedankt.
Doe mij maar HA... ;)
YAML:
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
## elke 5 minuten naar pvoutput
automation:
  - id: 4f863af550147e9b3170
    alias: update pvoutput
    trigger:
      platform: time_pattern
      minutes: /5
    action:
      service: rest_command.update_pvoutput1
      data: {}
    mode: single

## v1 = Energy Generation (Wh) / v2 = Power Generation  (W) / v3 = Energy Production (Wh) / v4 = Power Production  (W) / v5 = Temperature (degr. C)
rest_command:
  update_pvoutput1:
    url: "https://pvoutput.org/service/r2/addstatus.jsp"
    method: post
    headers:
      X-Pvoutput-Apikey: !secret pvoutput_api_key
      X-Pvoutput-SystemId: !secret pvoutput_system_id_1
      Content-Type: 'application/x-www-form-urlencoded'
    payload: >-
      d={{now().strftime("%Y%m%d")}}                                    {#- date -#}
      &t={{now().strftime("%H:%M")}}                                    {#- time -#}
      &v1=                                                              {#- Energy generation (Wh) -#}
      &v2=                                                              {#- Power generation (W) -#}
      &v3={{states('sensor.flukso_1_energy')|float(0) |round(0)}}       {#- Energy consumption (Wh) -#}
      &v4={{states('sensor.flukso_1_power')|float(0) |round(0)}}        {#- Power consumption (W) -#}
      &v5=                                                              {#- Ambient temperature (degr. C) -#}
      &v6=                                                              {#- Grid voltage (V) -#}
      &c1=1                                                             {#- cumulative mode -#}

PVOutput Github - Div ESP TK: MHI - Clack - Marstek


  • MikeyMan
  • Registratie: Februari 2003
  • Laatst online: 11:17

MikeyMan

Vidi, Vici, Veni

Ben even aan het rommelen geweest zoals ook zichtbaar in het domoticz topic. Heb e.e.a. nu aan de praat, maar volgens mij gaat er nog iets niet helemaal goed. Of ik snap de waardes niet helemaal.
Wat er nu in PVOutput Terecht komt:

Afbeeldingslocatie: https://tweakers.net/i/RcXMrDoc94vtqDSovICPba5qLXk=/800x/filters:strip_exif()/f/image/xQIvr76vKOaO6nMwsQVbH8CB.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/s_ARph-3miJ79CQKmI-MxwbHnGQ=/800x/filters:strip_exif()/f/image/COqBLm7oPpRLNcqvVeIxpb38.png?f=fotoalbum_large

Domoticz zeg:

Afbeeldingslocatie: https://tweakers.net/i/5NGyVTUXdMFl__3PfBhxMM35rAE=/800x/filters:strip_exif()/f/image/291zbRYDMcbLpxLN3FsLmQGQ.png?f=fotoalbum_large

Energy used kan ik plaatsen.
Export daarengen is nu de opbrengst. Dus volgens mij is dat niet helemaal goed?

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
            local postdDataAsString = 
                    'd=' .. os.date("%Y%m%d") ..
                    '&t=' .. os.date("%H:%M") .. 
                    
                    -- Gebruik deze als u netto productie van zonnepanelen wilt
                    '&v1=' .. round(Generated.WhTotal,1) ..  -- produced
                    '&v2=' .. round(Generated.actualWatt,1) ..
                    
                    -- Gebruik deze als u wilt dat je de gegevens van je slimme meter wilt gebruiken voor teruggave
                    -- '&v1=' .. P1.return1 + P1.return2 ..  -- returned to the grid
                    -- '&v2=' .. P1.usageDelivered ..
                    
                    -- Gebruik deze als u wilt dat je de gegevens van je slimme meter wilt gebruiken voor gebruik
                    '&v3=' .. P1.usage1 + P1.usage2 .. -- net values from your smart meter
                    '&v4=' .. P1.usage ..
                    
                    -- Gebruik deze als je wilt wat er wordt berekend
                   -- '&v3=' .. round(consumed.WhTotal,1) .. -- consumed 
                   -- '&v4=' .. round(consumed.actualWatt,1) ..
                       
                   -- Gebruik deze als je temperatuur en je voltage wilt uploaden
                    '&v5=' .. round(Temperature,1) .. 
                   -- '&v6=' .. voltage ..

                    '&c1=1'


De grafiek ziet er wat mij betreft wel goed uit:

Afbeeldingslocatie: https://tweakers.net/i/5KP0N1osYng69nP6MYl4QBQi-p8=/800x/filters:strip_exif()/f/image/mYn3Hpf18AiBbJph6tgQTTk1.png?f=fotoalbum_large

[ Voor 72% gewijzigd door MikeyMan op 28-03-2023 14:34 ]


  • MikeyMan
  • Registratie: Februari 2003
  • Laatst online: 11:17

MikeyMan

Vidi, Vici, Veni

Inmiddels een stapje verder. Maar klopt nog steeds iets niet...

Dagstanden zien er nu zo uit:
Afbeeldingslocatie: https://tweakers.net/i/8VThSu47danVhHSpFiTmZTETR1A=/800x/filters:strip_exif()/f/image/VwwQi9R8xFneawxDWYxYPzju.png?f=fotoalbum_large

Domoticz zegt:Afbeeldingslocatie: https://tweakers.net/i/cWC7kDsiL2y8oMJYKdIvMUPIwL8=/800x/filters:strip_exif()/f/image/pxVRqYV0YE20Z2dzSSuuEDuN.png?f=fotoalbum_large

Gemerated klopt ongeveer.
Exported is ongeveer gelijk aan energie retour.
Verbruik lijkt enigszins op import.
Maar consumption klopt dan volgens mij niet. :?

[ Voor 9% gewijzigd door MikeyMan op 03-04-2023 09:54 ]

Pagina: 1