Hej!
Finns det någon mer än jag här som sysslar med hemautomation och Domoticz? Jag har en Fronius Symo och Fronius Smartmeter och vill gärna få in värden till min Raspberry pi med Domoticz. Jag är tyvärr inte så duktig på Lua script men försöker förstå något av det som finns här: http://www.domoticz.com/forum/viewtopic.php?t=15037 Om någon har kunskaper inom detta så skulle jag bli otroligt glad om jag kunde få hjälp! Mvh.David
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Jag har inte petat på just Domoticz men jag tror nog jag har relevant expertis ändå, vad är det du behöver hjälp med, mer specifikt?
|
Jadu. Just nu känner jag att jag hade velat ha en steg för steg nybörjarguide.
Eller att någon kunde fjärrköra mitt system och bara fixa så det fungerar. Jag fattar helt enkelt inte hur jag ska göra.
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Jag har fattat att jag når de data som på något sätt ska förflyttas till Domoticz så här:
http://192.168.1.39/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData Då ser det ut såhär i webbläsaren men sedan ska dessa data förflyttas in i domoticz : { "Body" : { "Data" : { "DAY_ENERGY" : { "Unit" : "Wh", "Value" : 64070 }, "DeviceStatus" : { "ErrorCode" : 0, "LEDColor" : 2, "LEDState" : 0, "MgmtTimerRemainingTime" : -1, "StateToReset" : false, "StatusCode" : 7 }, "FAC" : { "Unit" : "Hz", "Value" : 49.979999999999997 }, "IAC" : { "Unit" : "A", "Value" : 45.280000000000001 }, "IDC" : { "Unit" : "A", "Value" : 23.329999999999998 }, "PAC" : { "Unit" : "W", "Value" : 10410 }, "TOTAL_ENERGY" : { "Unit" : "Wh", "Value" : 96664.009999999995 }, "UAC" : { "Unit" : "V", "Value" : 232.09999999999999 }, "UDC" : { "Unit" : "V", "Value" : 478.39999999999998 }, "YEAR_ENERGY" : { "Unit" : "Wh", "Value" : 96664.899999999994 } } }, "Head" : { "RequestArguments" : { "DataCollection" : "CommonInverterData", "DeviceClass" : "Inverter", "DeviceId" : "1", "Scope" : "Device" }, "Status" : { "Code" : 0, "Reason" : "", "UserMessage" : "" }, "Timestamp" : "2018-05-10T14:33:28+02:00" } }
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Okej, nybörjarguide... det kan ju bli lite trickigt då jag aldrig provat programvaran i fråga
Men som jag förstår det skall du skapa en ny "virtuell sensor" under "hardware", och där skall du ge den ett namn och ett unikt id. Detta unika ID återkommer sedan som "idx" i json-api:t. Lua-scriptet (eller vilket skript/program som helst) skall plocka datan med "curl http://192.168.1.39/...", plocka ut ur den strukturen de värden du vill ha till var och en av dina virtuella sensorer, och curl:a med rätt idx och rätt värde mot din domoticz json-api. Om du kollar det skriptet lite längre ned i forumtråden du länkade till har de ett mer komplett skript där, som har 8st "commandArray" på rad, det verkar vara relevant för dig. Hur det faktiska lua-scriptet anropas vet jag inte, men det kanske framgår då när man skapar en virtuell device? |
Hejsan igen och tack så mycket för att du försöker hjälpa mig!
Jag har kommit en liten bit på rätt väg men har fastnat igen... Jag har skapat Hardware dummy och alla virtuella sensorer korrekt men sedan är jag ett stort frågetecken igen. Jag gissar att det är nu själva scriptet börjar? Jag försöker följa det som står i tråden jag länkade till innan och har alltså kommit fram till där det står "-- one-time load of the routines JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows -- JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux"" Saxat från det jag försöker följa men som jag alltså inte förstår tillvägagångsättet längre: -- Script to read solardata from FroniusAPI -- Autor : Meulderg -- Date : 29-Jan-2017 -- Name: script_time_Fronius.lua -- Warning: Don't forget to setup the Local Networks otherwize the device counters won't get updated if site security is used. -- Variables to customize ------------------------------------------------ local DEBUG = 0 -- 0 is off, 1 for domoticz log, 2 for fronius JSON data to log local IPdomiticz = '192.168.xxx.xxx:8080' -- IP adress of the domoticz service + port local IPFronius = '192.168.xxx.xxx' -- IP adress of the Fronius converter local idx_Fronius_Opbrengst = 19 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UDC = 16 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UAC = 15 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IDC = 18 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IAC = 17 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_DAY_ENERGY = 12 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_YEAR_ENERGY = 13 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_TOTAL_ENERGY = 14 -- idx of the virtual sensor, you need to change this to your own Device IDx --Create Virtual Hardware via JSON script (Copy this URL manualy) --Change IP, Port and name accordingly --http://127.0.0.1:8080/json.htm?type=command¶m=addhardware&htype=15&port=1&name=Fronius&enabled=true --Create Virtual sensors via JSON script (Copy these URL manual) --Change IP, Port and idx (idx is of the previously created hardware ID) accordingly --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_Opbrengst&sensortype=18 --Above sensor needs to be manual adjusted to Type: Return. --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_Day_Energy&sensortype=248 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_Year_Energy&sensortype=248 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_Total_Energy&sensortype=248 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_UAC&sensortype=4 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_UDC&sensortype=4 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_IAC&sensortype=19 --http://192.168.1.41:8080/json.htm?type=createvirtualsensor&idx=6&sensorname=Fronius_IDC&sensortype=19 -- one-time load of the routines JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows -- JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux commandArray = {} if(DEBUG == 1) then print ('Fronius script running!!') end -- get current time & calculate sunrise and sunset. time_now = os.date("*t") minutes_now = time_now.min + time_now.hour * 60 if(DEBUG == 1) then print ('Time in minutes: ' ..minutes_now) end if(DEBUG == 1) then print ('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60) end if(DEBUG == 1) then print ('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60) end -- Validation for sunrise and sunset. if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then --Extract data from Fronius converter. froniusurl = 'curl "http://'..IPFronius..'/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' jsondata = assert(io.popen(froniusurl)) froniusdevice = jsondata:read('*all') jsondata:close() froniusdata = JSON:decode(froniusdevice) --Process fronius data if (froniusdata ~= nil) then if(DEBUG == 2) then print (froniusdevice) end local StatusCode = froniusdata['Body']['Data']['DeviceStatus']['StatusCode'] if( StatusCode == 7) then --Fronius converter is Running local DAY_ENERGY = froniusdata['Body']['Data']['DAY_ENERGY']['Value'] local YEAR_ENERGY = froniusdata['Body']['Data']['YEAR_ENERGY']['Value'] local TOTAL_ENERGY = froniusdata['Body']['Data']['TOTAL_ENERGY']['Value'] local PAC = froniusdata['Body']['Data']['PAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] local UAC = froniusdata['Body']['Data']['UAC']['Value'] local IDC = froniusdata['Body']['Data']['IDC']['Value'] local IAC = froniusdata['Body']['Data']['IAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] if(DEBUG == 1) then print ('PAC: '..PAC) end if(DEBUG == 1) then print ('Day Energy: '..DAY_ENERGY) end if(DEBUG == 1) then print ('Year Energy: '..YEAR_ENERGY) end if(DEBUG == 1) then print ('Total Energy: '..TOTAL_ENERGY) end if(DEBUG == 1) then print ('UDC: '..UDC) end if(DEBUG == 1) then print ('UAC: '..UAC) end if(DEBUG == 1) then print ('IDC: '..IDC) end if(DEBUG == 1) then print ('IAC: '..IAC) end --To update the devices. commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_Fronius_Opbrengst.."&nvalue=0&svalue="..PAC..";"..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_DAY_ENERGY.."&nvalue=0&svalue="..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_YEAR_ENERGY.."&nvalue=0&svalue="..YEAR_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_TOTAL_ENERGY.."&nvalue=0&svalue="..TOTAL_ENERGY..""} else print ('Fronius converter state other than running') local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0 commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} end else print ('Fronius converter data is empty or unreachable') end else print ('Fronius converter Offline') end return commandArray -- Example of the data returned by the Fronius converter --[[ { "Head" : { "RequestArguments" : { "DataCollection" : "CommonInverterData", "DeviceClass" : "Inverter", "DeviceId" : "1", "Scope" : "Device" }, "Status" : { "Code" : 0, "Reason" : "", "UserMessage" : "" }, "Timestamp" : "2017-01-29T12:16:22+01:00" }, "Body" : { "Data" : { "DAY_ENERGY" : { "Value" : 1535.1, "Unit" : "Wh" }, "FAC" : { "Value" : 50, "Unit" : "Hz" }, "IAC" : { "Value" : 4.68, "Unit" : "A" }, "IDC" : { "Value" : 3.49, "Unit" : "A" }, "PAC" : { "Value" : 1062, "Unit" : "W" }, "TOTAL_ENERGY" : { "Value" : 839677.06, "Unit" : "Wh" }, "UAC" : { "Value" : 231.1, "Unit" : "V" }, "UDC" : { "Value" : 342.7, "Unit" : "V" }, "YEAR_ENERGY" : { "Value" : 119222.5, "Unit" : "Wh" }, "DeviceStatus" : { "StatusCode" : 7, "MgmtTimerRemainingTime" : -1, "ErrorCode" : 0, "LEDColor" : 2, "LEDState" : 0, "StateToReset" : false } } } } ]]-- Jag har lyckats med att skapa alla virtuella sensorer och dummy hardware korrekt. Efter det skall man köra som det står "-- one-time load of the routines JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows -- JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux" Jag kör Domoticz på en Raspberry med Linux
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Från och med raden commandarray = {} är luaskriptet som skall köras varje minut, om jag förstått det rätt. För att lägga in skriptet i Domoticz skall det antingen finnas en skriptredigerare i guit, eller så kan man hitta en speciell katalog som heter nånting/domoticz/scripts/lua eller dylikt, och lägga skriptet där i en fil som slutar på .lua
Sök på "Domoticz lua time scripts" så får du upp relevant information. |
In reply to this post by Davil
Kan det vara så här....?
Gå in i Domoticz Gå till menyn Inställningar/ Fler inställningar/ Händelsesystem/Events Välj sedan Lua, Time och Event active Klistra in koden i kodfönstret till vänster Rader som börjar med "-- "och är gröna är kommentarer, ex: -- Domoticz passes information to scripts through a number of global tables Testa om det fungerar.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Tack så mycket för ditt svar!
Jag antar att jag ska skriva in mitt ipnummer och port till domoticz dvs 192.168.1.41:8080 Ser ni något som verkar fel i scriptet? Jag försökte att klistra in detta men det fungerade ej/händer inget: commandArray = {} if(DEBUG == 1) then print ('Fronius script running!!') end -- get current time & calculate sunrise and sunset. time_now = os.date("*t") minutes_now = time_now.min + time_now.hour * 60 if(DEBUG == 1) then print ('Time in minutes: ' ..minutes_now) end if(DEBUG == 1) then print ('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60) end if(DEBUG == 1) then print ('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60) end -- Validation for sunrise and sunset. if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then --Extract data from Fronius converter. froniusurl = 'curl "http://192.168.1.39/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' jsondata = assert(io.popen(froniusurl)) froniusdevice = jsondata:read('*all') jsondata:close() froniusdata = JSON:decode(froniusdevice) --Process fronius data if (froniusdata ~= nil) then if(DEBUG == 2) then print (froniusdevice) end local StatusCode = froniusdata['Body']['Data']['DeviceStatus']['StatusCode'] if( StatusCode == 7) then --Fronius converter is Running local DAY_ENERGY = froniusdata['Body']['Data']['DAY_ENERGY']['Value'] local YEAR_ENERGY = froniusdata['Body']['Data']['YEAR_ENERGY']['Value'] local TOTAL_ENERGY = froniusdata['Body']['Data']['TOTAL_ENERGY']['Value'] local PAC = froniusdata['Body']['Data']['PAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] local UAC = froniusdata['Body']['Data']['UAC']['Value'] local IDC = froniusdata['Body']['Data']['IDC']['Value'] local IAC = froniusdata['Body']['Data']['IAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] if(DEBUG == 1) then print ('PAC: '..PAC) end if(DEBUG == 1) then print ('Day Energy: '..DAY_ENERGY) end if(DEBUG == 1) then print ('Year Energy: '..YEAR_ENERGY) end if(DEBUG == 1) then print ('Total Energy: '..TOTAL_ENERGY) end if(DEBUG == 1) then print ('UDC: '..UDC) end if(DEBUG == 1) then print ('UAC: '..UAC) end if(DEBUG == 1) then print ('IDC: '..IDC) end if(DEBUG == 1) then print ('IAC: '..IAC) end --To update the devices. commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_Fronius_Opbrengst.."&nvalue=0&svalue="..PAC..";"..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_DAY_ENERGY.."&nvalue=0&svalue="..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_YEAR_ENERGY.."&nvalue=0&svalue="..YEAR_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_TOTAL_ENERGY.."&nvalue=0&svalue="..TOTAL_ENERGY..""} else print ('Fronius converter state other than running') local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0 commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} end else print ('Fronius converter data is empty or unreachable') end else print ('Fronius converter Offline') end return commandArray
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
I den här raden ska du skriva in ipnr till växelriktaren
froniusurl = 'curl "http://192.168.1.39/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' Se till att du inte har radbrytningar på "fel" ställen. Jag vill inte ha det här skriptet, för jag läser ut det jag vill ha med PHP skript istället, så jag kommer inte lägga in det i min Domoticz Rent spontant, så ser det ut som att den radbryter fel i fronousurl och alla rader som börjar med commandArray dom bryter vid type=command, de två raderna ska vara på samma rad. I övrigt kan inte jag med min begränsade programeringskunskap se något. När du får igång det, kan du ta en skärmbild och visa hur det ser ut... kanske blir jag sugen när jag ser det i verkligheten :-)
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Provade klistra in det i min ändå ;-)
Och såg då det konstiga tecknet som jag gulmarkerade. Det blev lite svårt att se, så jag zoomade inte lite Jag tror att det är det tecknet som är fel, för jag känner inte igen det. Men jag är inte LUA programerare så... Förslag, inaktivera det här skriptet, ta en kopia på det och ta bort krumelurm, så att det står. type=command=udevice&idx=' istället. Det kan gå och det kan inte gå. Jag provade köra skriptet ändå och min dator låste sig, så jag får ge upp innan jag tar sönder något på riktigt.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Jäklars, nu fastnade jag i det här... något fel ser det ut att vara. I loggen säger den "Error: EventSystem: in Fronius: [string "--commandArray = {} ..."]:18: attempt to index global 'JSON' (a nil value)" Jag tolkar det som att den inte lyckas läsa in JSON filen och då händer det inget.
Jag tog bort allt som har med att spara värden att göra, det kan vara det som strular till det för mig - eller så är det inte det - som sagt jag har eg ingen koll på vad jag gör. Ledsen att jag inte kunde hjälpa mer.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Det där felmeddelandet är ju inte så hjälpsamt, men det betyder att det är fel på en helt annan rad, nämligen där JSON används. Det var jag som sade fel när jag sade att skriptet skall starta med "commandarray = {}", raden som deklarerar variablen JSON måste också vara med, alltså den här:
JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() Och den måste ju referera en JSON.lua som faktiskt finns, så du får justera den om du inte har /home/pi/domoticz-katalogen. |
Jag tog en kopia på orginalskriptet som länkades till i första inlägget. Kommenterade bort alla cammandArray (för att inte skriva något till Domoticz) och nu fick jag iaf en reaktion.
2018-05-15 23:38:00.481 LUA: Fronius converter Offline Och det stämmer, det är mörkt här nu. Jag hade JSON.lua på rätt ställe... Nya tag i morgon om jag hinner.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Oki, fick igång det - så det loggar till loggen iaf. (debug = 1)
Eg var det bara att få de här raderna rätt. local DEBUG = 1 -- 0 is off, 1 for domoticz log, 2 for fronius JSON data to log local IPdomiticz = '192.168.0.117:8080' -- IP adress of the domoticz service + port local IPFronius = '192.168.0.101/' -- IP adress of the Fronius converter Sen får du kolla så att dina sensorIdn är rätt också. Men det hade du väl redan gjort? Jag har inte skapat dom så jag kan inte se om/hur det fungerar. local idx_Fronius_Opbrengst = 19 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UDC = 16 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UAC = 15 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IDC = 18 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IAC = 17 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_DAY_ENERGY = 12 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_YEAR_ENERGY = 13 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_TOTAL_ENERGY = 14 -- idx of the virtual sensor, you need to change this to your own Device IDx Jag fick det här i loggen. 2018-05-16 08:29:00.121 LUA: Fronius script running!! 2018-05-16 08:29:00.121 LUA: Time in minutes: 509 2018-05-16 08:29:00.121 LUA: Sunrise in minutes: 82 2018-05-16 08:29:00.121 LUA: Sunset in minutes: 1428 2018-05-16 08:29:01.068 LUA: PAC: 1810 2018-05-16 08:29:01.068 LUA: Day Energy: 1601.7 2018-05-16 08:29:01.068 LUA: Year Energy: 1603110 2018-05-16 08:29:01.068 LUA: Total Energy: 6408610 2018-05-16 08:29:01.069 LUA: UDC: 576.4 2018-05-16 08:29:01.069 LUA: UAC: 230.8 2018-05-16 08:29:01.069 LUA: IDC: 3.16 2018-05-16 08:29:01.069 LUA: IAC: 7.84
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
This post was updated on .
Såg förresten att du också kör på en Raspberry PI, då måste du även ändra.
-- one-time load of the routines JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows -- JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux Till -- one-time load of the routines -- JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux Dvs flytta -- från den nedre raden till den övre. Det här är inte något du själv ska köra utan det körs av skriptet.
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Suck. Jag är ju helt borta känner jag. Så jädrans frustrerande att jag tydligen är så korkad att inte få detta att fungera!
Jag har försökt med att klistra in i "Events / Lua med valet "Time". Detta har jag försökt med och får följade error i min log: Error: EventSystem: in JSON: [string "-- one-time load of the routines ..."]:21: attempt to index global 'JSON' (a nil value) och detta är kopia av det jag har klistrat in: -- one-time load of the routines -- JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux commandArray = {} if(DEBUG == 1) then print ('Fronius script running!!') end -- get current time & calculate sunrise and sunset. time_now = os.date("*t") minutes_now = time_now.min + time_now.hour * 60 if(DEBUG == 1) then print ('Time in minutes: ' ..minutes_now) end if(DEBUG == 1) then print ('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60) end if(DEBUG == 1) then print ('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60) end -- Validation for sunrise and sunset. if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then --Extract data from Fronius converter. froniusurl = 'curl "http://192.168.1.39/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' jsondata = assert(io.popen(froniusurl)) froniusdevice = jsondata:read('*all') jsondata:close() froniusdata = JSON:decode(froniusdevice) --Process fronius data if (froniusdata ~= nil) then if(DEBUG == 2) then print (froniusdevice) end local StatusCode = froniusdata['Body']['Data']['DeviceStatus']['StatusCode'] if( StatusCode == 7) then --Fronius converter is Running local DAY_ENERGY = froniusdata['Body']['Data']['DAY_ENERGY']['Value'] local YEAR_ENERGY = froniusdata['Body']['Data']['YEAR_ENERGY']['Value'] local TOTAL_ENERGY = froniusdata['Body']['Data']['TOTAL_ENERGY']['Value'] local PAC = froniusdata['Body']['Data']['PAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] local UAC = froniusdata['Body']['Data']['UAC']['Value'] local IDC = froniusdata['Body']['Data']['IDC']['Value'] local IAC = froniusdata['Body']['Data']['IAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] if(DEBUG == 1) then print ('PAC: '..PAC) end if(DEBUG == 1) then print ('Day Energy: '..DAY_ENERGY) end if(DEBUG == 1) then print ('Year Energy: '..YEAR_ENERGY) end if(DEBUG == 1) then print ('Total Energy: '..TOTAL_ENERGY) end if(DEBUG == 1) then print ('UDC: '..UDC) end if(DEBUG == 1) then print ('UAC: '..UAC) end if(DEBUG == 1) then print ('IDC: '..IDC) end if(DEBUG == 1) then print ('IAC: '..IAC) end --To update the devices. commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_Fronius_Opbrengst.."&nvalue=0&svalue="..PAC..";"..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_DAY_ENERGY.."&nvalue=0&svalue="..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_YEAR_ENERGY.."&nvalue=0&svalue="..YEAR_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_TOTAL_ENERGY.."&nvalue=0&svalue="..TOTAL_ENERGY..""} else print ('Fronius converter state other than running') local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0 commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://192.168.1.41:8080/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} end else print ('Fronius converter data is empty or unreachable') end else print ('Fronius converter Offline') end return commandArray
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Jag tror inte att du fått med dig hela skriptet, jag klistrar in det här under och jag har ändrat så att den läser in JSON.lua på din Raspberry.
Det du behöver göra är att få in rätt värden i stycket -- Variables to customize. Börja med att testa DEBUG=2, då ska du få ut JSON filen i loggen, testa sedan DEBUG=1, då ska du se värdena som sparas i Domoticz. När dom ser ok ut, sätter du DEBUG=0 för att slippa se skrotet i loggen. -- Script start -- - Script to read solardata from FroniusAPI -- Autor : Meulderg -- Date : 29-Jan-2017 -- Name: script_time_Fronius.lua -- Warning: Don't forget to setup the Local Networks otherwize the device counters won't get updated if site security is used. -- Variables to customize ------------------------------------------------ local DEBUG = 0 -- 0 is off, 1 for domoticz log, 2 for fronius JSON data to log local IPdomiticz = '192.168.xxx.xxx:8080' -- IP adress of the domoticz service + port local IPFronius = '192.168.xxx.xxx' -- IP adress of the Fronius converter local idx_Fronius_Opbrengst = 19 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UDC = 16 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UAC = 15 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IDC = 18 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IAC = 17 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_DAY_ENERGY = 12 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_YEAR_ENERGY = 13 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_TOTAL_ENERGY = 14 -- idx of the virtual sensor, you need to change this to your own Device IDx -- Ändra inget nedanför den här raden -- --Create Virtual Hardware via JSON script (Copy this URL manualy) --Change IP, Port and name accordingly --http://127.0.0.1:8080/json.htm?type=command¶m=addhardware&htype=15&port=1&name=Fronius&enabled=true --Create Virtual sensors via JSON script (Copy these URL manual) --Change IP, Port and idx (idx is of the previously created hardware ID) accordingly --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Opbrengst&sensortype=18 --Above sensor needs to be manual adjusted to Type: Return. --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Day_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Year_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Total_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_UAC&sensortype=4 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_UDC&sensortype=4 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_IAC&sensortype=19 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_IDC&sensortype=19 -- one-time load of the routines -- JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux commandArray = {} if(DEBUG == 1) then print ('Fronius script running!!') end -- get current time & calculate sunrise and sunset. time_now = os.date("*t") minutes_now = time_now.min + time_now.hour * 60 if(DEBUG == 1) then print ('Time in minutes: ' ..minutes_now) end if(DEBUG == 1) then print ('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60) end if(DEBUG == 1) then print ('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60) end -- Validation for sunrise and sunset. if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then --Extract data from Fronius converter. froniusurl = 'curl "http://'..IPFronius..'/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' jsondata = assert(io.popen(froniusurl)) froniusdevice = jsondata:read('*all') jsondata:close() froniusdata = JSON:decode(froniusdevice) --Process fronius data if (froniusdata ~= nil) then if(DEBUG == 2) then print (froniusdevice) end local StatusCode = froniusdata['Body']['Data']['DeviceStatus']['StatusCode'] if( StatusCode == 7) then --Fronius converter is Running local DAY_ENERGY = froniusdata['Body']['Data']['DAY_ENERGY']['Value'] local YEAR_ENERGY = froniusdata['Body']['Data']['YEAR_ENERGY']['Value'] local TOTAL_ENERGY = froniusdata['Body']['Data']['TOTAL_ENERGY']['Value'] local PAC = froniusdata['Body']['Data']['PAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] local UAC = froniusdata['Body']['Data']['UAC']['Value'] local IDC = froniusdata['Body']['Data']['IDC']['Value'] local IAC = froniusdata['Body']['Data']['IAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] if(DEBUG == 1) then print ('PAC: '..PAC) end if(DEBUG == 1) then print ('Day Energy: '..DAY_ENERGY) end if(DEBUG == 1) then print ('Year Energy: '..YEAR_ENERGY) end if(DEBUG == 1) then print ('Total Energy: '..TOTAL_ENERGY) end if(DEBUG == 1) then print ('UDC: '..UDC) end if(DEBUG == 1) then print ('UAC: '..UAC) end if(DEBUG == 1) then print ('IDC: '..IDC) end if(DEBUG == 1) then print ('IAC: '..IAC) end --To update the devices. commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_Fronius_Opbrengst.."&nvalue=0&svalue="..PAC..";"..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_DAY_ENERGY.."&nvalue=0&svalue="..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_YEAR_ENERGY.."&nvalue=0&svalue="..YEAR_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_TOTAL_ENERGY.."&nvalue=0&svalue="..TOTAL_ENERGY..""} else print ('Fronius converter state other than running') local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0 commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} end else print ('Fronius converter data is empty or unreachable') end else print ('Fronius converter Offline') end return commandArray -- Script slut --
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Jag är fortfarande ett hopplöst fall :(
Nu ser det ut såhär : - Script to read solardata from FroniusAPI -- Autor : Meulderg -- Date : 29-Jan-2017 -- Name: script_time_Fronius.lua -- Warning: Don't forget to setup the Local Networks otherwize the device counters won't get updated if site security is used. -- Variables to customize ------------------------------------------------ local DEBUG = 1 -- 0 is off, 1 for domoticz log, 2 for fronius JSON data to log local IPdomiticz = 192.168.1.41:8080 -- IP adress of the domoticz service + port local IPFronius = 192.168.1.39 -- IP adress of the Fronius converter local idx_Fronius_Opbrengst = 640 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UDC = 639 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_UAC = 638 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IDC = 642 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_IAC = 641 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_DAY_ENERGY = 624 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_YEAR_ENERGY = 636 -- idx of the virtual sensor, you need to change this to your own Device IDx local idx_TOTAL_ENERGY = 637 -- idx of the virtual sensor, you need to change this to your own Device IDx -- Ändra inget nedanför den här raden -- --Create Virtual Hardware via JSON script (Copy this URL manualy) --Change IP, Port and name accordingly --http://127.0.0.1:8080/json.htm?type=command¶m=addhardware&htype=15&port=1&name=Fronius&enabled=true --Create Virtual sensors via JSON script (Copy these URL manual) --Change IP, Port and idx (idx is of the previously created hardware ID) accordingly --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Opbrengst&sensortype=18 --Above sensor needs to be manual adjusted to Type: Return. --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Day_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Year_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_Total_Energy&sensortype=248 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_UAC&sensortype=4 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_UDC&sensortype=4 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_IAC&sensortype=19 --http://127.0.0.1:8080/json.htm?type=createvirtualsensor&idx=4&sensorname=Fronius_IDC&sensortype=19 -- one-time load of the routines -- JSON = (loadfile "C:\\Domoticz\\scripts\\lua\\json.lua")() -- For Windows JSON = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux commandArray = {} if(DEBUG == 1) then print ('Fronius script running!!') end -- get current time & calculate sunrise and sunset. time_now = os.date("*t") minutes_now = time_now.min + time_now.hour * 60 if(DEBUG == 1) then print ('Time in minutes: ' ..minutes_now) end if(DEBUG == 1) then print ('Sunrise in minutes: ' ..timeofday['SunriseInMinutes'] - 60) end if(DEBUG == 1) then print ('Sunset in minutes: ' ..timeofday['SunsetInMinutes'] + 60) end -- Validation for sunrise and sunset. if (minutes_now > timeofday['SunriseInMinutes'] - 30) and (minutes_now < timeofday['SunsetInMinutes'] + 30) then --Extract data from Fronius converter. froniusurl = 'curl "http://'..IPFronius..'/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"' jsondata = assert(io.popen(froniusurl)) froniusdevice = jsondata:read('*all') jsondata:close() froniusdata = JSON:decode(froniusdevice) --Process fronius data if (froniusdata ~= nil) then if(DEBUG == 2) then print (froniusdevice) end local StatusCode = froniusdata['Body']['Data']['DeviceStatus']['StatusCode'] if( StatusCode == 7) then --Fronius converter is Running local DAY_ENERGY = froniusdata['Body']['Data']['DAY_ENERGY']['Value'] local YEAR_ENERGY = froniusdata['Body']['Data']['YEAR_ENERGY']['Value'] local TOTAL_ENERGY = froniusdata['Body']['Data']['TOTAL_ENERGY']['Value'] local PAC = froniusdata['Body']['Data']['PAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] local UAC = froniusdata['Body']['Data']['UAC']['Value'] local IDC = froniusdata['Body']['Data']['IDC']['Value'] local IAC = froniusdata['Body']['Data']['IAC']['Value'] local UDC = froniusdata['Body']['Data']['UDC']['Value'] if(DEBUG == 1) then print ('PAC: '..PAC) end if(DEBUG == 1) then print ('Day Energy: '..DAY_ENERGY) end if(DEBUG == 1) then print ('Year Energy: '..YEAR_ENERGY) end if(DEBUG == 1) then print ('Total Energy: '..TOTAL_ENERGY) end if(DEBUG == 1) then print ('UDC: '..UDC) end if(DEBUG == 1) then print ('UAC: '..UAC) end if(DEBUG == 1) then print ('IDC: '..IDC) end if(DEBUG == 1) then print ('IAC: '..IAC) end --To update the devices. commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_Fronius_Opbrengst.."&nvalue=0&svalue="..PAC..";"..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_DAY_ENERGY.."&nvalue=0&svalue="..DAY_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_YEAR_ENERGY.."&nvalue=0&svalue="..YEAR_ENERGY..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_TOTAL_ENERGY.."&nvalue=0&svalue="..TOTAL_ENERGY..""} else print ('Fronius converter state other than running') local UDC = 0 local UAC = 0 local IDC = 0 local IAC = 0 commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UDC.."&nvalue=0&svalue="..UDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IDC.."&nvalue=0&svalue="..IDC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_UAC.."&nvalue=0&svalue="..UAC..""} commandArray[#commandArray + 1]={['OpenURL']="http://"..IPdomiticz.."/json.htm?type=command¶m=udevice&idx="..idx_IAC.."&nvalue=0&svalue="..IAC..""} end else print ('Fronius converter data is empty or unreachable') end else print ('Fronius converter Offline') end return commandArray
Fronius Symo 17,5. Fronius Smartmeter. 18,24kW. 32 x 32st JA-Solar 285w paneler 20Gr lutning riktning Öst/Väst i Glanshammar Närke.
https://www.solarweb.com/Home/GuestLogOn?pvSystemid=26a3723a-9023-45ae-9816-b3d81c12c592 |
Fungerar inte?
Får du något fel i loggen?
6,0kWp: 8st JA-Solar 290W + 13st JA-Solar 285W. Fronius Symo 5.0-3-M + Smart Meter 63A-3, montage system Renusol Metasol+.
Taklutning 45°. Azimut 190° Ort Kiruna. Produktionsdata: PVOutput |
Free forum by Nabble | Edit this page |