First post in forum. In short just moved in to new house 6 months ago and is considering to install solar. Family of 4 with two kids. Did some browsing to hard to make decision. I have zero knowledge about solar. Our quarterly energy electricity bill comes around 350.
Solar Installation - 6.6 kW Price Ranging from $2600- $8000
Comments
If GreenApple has 2 kids and a power bill of 350 a quarter, how many pancakes does it take to get to the moon?
assuming the average pancake height is 0.5 cm and the distance between Earth and Moon is 384,400 km, this means it needs 76,880,000,000 pancakes to get to the moon.
What if pancakes were used as fuel, not a platform?
For NSW something decent starts around $3800. I wouldn't pay more than $5k unless you need micro-inverters as the payback is too long.
Do you have a specific question?
The price varies a lot.
The type of company that is selling is important to note. Tthere are some that are like eBay drop shippers - marketing squad to sign you up then sub contractors to install the cheapest panels they can import form China, then there are the local small business that might cost a bit more but know the area and will be around for after sales service.
The quality of components varies. You get what you pay for.
The level of knowledge and advice provided for the install is Also important. I had one flashy salesman visit (flash car, big gold watch, not a tradie etc) that basically didn’t look at the house and picked ‘set b’ from his brochure for us after looking at our last two bills. This was as opposed to rhe company I picked that turned up in a work ute and boots, inspected the roofspace, did some calcs to work out power consumptions and provided an estimate of output for a few different configurations.
Recommend
- Quality Inverter - Fronius Brand
- Economical Panel - Jinko Brand
- Install 25 Panel 6.75 Kw System ($6000-7000)
- Install Paladin Solar Hot Water Diverter (google it) -AI Software to divert excess energy to Hot Water Tank
- Install Large 410L Hot Water Tank - Natural Battery System (Excess Energy store as Heat overnight)
- Install Roof Insulation - Reduce the need for AC and Heater
1/3 Of Electrical Bill involve Heating (Hot Water eg) and Cooling
Recommend going with “Solar Gain”, just in case something goes wrong with the Solar System. They have been around for a while and pretty reputable, Most Solar Panel Company come and go, making your installation warranty useless.
Good Luck
How did you choose these brands?
Compare to ARRL's QST-magazine,
where a detailed recommendation
include Lab Test results, for
each & every Radio - or other
product being reviewed; it's:Evidence-based Recommendations
Also available, elsewhere, are
individual Reviews (eHam.net),
mostly owner / user opinions,
akin to OzB comments, IMO.But a list of your fav brands
- with No justifying Evidence
or even data - could be biased"Do you Make or Sell these?"
is what one begins to wonderPS I like the idea of storing
Heat, ie, in Solar Powered HWSI know a guy w/ both Solar HWS
& oodles of on-roof PV panels.His problem (B4 buying an EV):
- Too Much Electricity(!)
His solution was, IMO, wasteful:
Run excess power across a huge
metal bar designed to glow Red
to "dump" the excess (dunno Y)Clearly better to heat usable
waterLol 🙄
Have the system in my House to cut down ongoing cost
Work like a charm for my house and investment property
To summarise
Definitely consider Jinko, Fronius, Paladin and Solar Gain
Read up on Solarquotes.com.au
.Price will also depend on where you live, NSW is a big state.
If you want help, give a lot more details.
I empathise. (Hey at least you know how many kWs youre after!). I went 6.6kW in higher end of your band late last year, chasing quality components with a decent warranty - and a company with good reviews. Big fan of Solarquotes. Had ours in since eoSept and havent paid a power bill yet We were also about $1400pa. Receive credits in Summer/Spring, which will be clawed back during winter (in Melb). Best purchase Ive ever made
Hey at least you know how many kWs youre after!
Based on the OP I suspect it is just a guess, or because everyone else is getting that sized system. A few years ago all the tv adds were for a 4kw system, now they’ve out marketed themselves up to 6 being the minimum you should get. Bigger may not be better.
https://forums.whirlpool.net.au/forum/143?g=371
Whirlpool has a great solar forum if you have the time to do some reading/research through it
true, if you want more technical discussion about solar, go to WP.
remember, the quality of supplier/installation is as important as the solar panel & inverter.
Installing solar panel is a long term investment.
You need to make sure you are dealing with a company that can gives support for the next 5-10 years at least.
Any recommendations on installers with some of the above mentioned inverter/panel combo that can be used in Vic. If someone has had good experience and can pm details will be greatly appreciated.
Reference a Paladin Diverter. There has been a good deal written about how diverters work and how well they do it, some good, some not so much…
Here is the real time display from my house system using Paladin. The display is my new style graphing idea (StarBurst) that attempts to accommodate the 24 data points that flow out of Paladin in any given second.
I am quite pleased with this version of the Starburst as it is visually pleasing, gives a decent visual snapshot of the day so far, and all the relevant hard data points as well. But then I would say that - I wrote it..
The source code for all the Windows based helper apps are going open source, so you can modify anything you don't like yourself. I use a variety of languages, C++ for Paladin Core, JAVA for the HTML interface. These helper apps are in Liberty Basic - a much maligned language IMHO, but it compiles properly, is fast and easy to read / digest.
The source code for the app presently live is below. I have tried to make the comments comprehensive. If you have a passing interest in this sort of thing, the code ain't that bad. All scratch built and as simple as I could make it. No fancy tricks, or tight code. Just boring old BASIC. If you want to play with it - use Liberty Basic Booster from here : http://www.bbcbasic.co.uk/lbb/
YouTube Link to Live Paladin.
https://www.youtube.com/watch?v=emhz2fRzyLs
Granted this external data is not available to the general public, as I have not released the ESP32 add-on yet. I have one as I am the Dev. However my core Paladin is identical to any other, the ESP board just plugs into the CPU daughter board. From this POV all the ESP32 is doing is transmitting data via its' API to the helper app on my LAN.
There are a variety of things the ESP32 can do to modify the Paladin's behavior and because it is a separate CPU, there is no interference or downgrade of the basic Paladin functions. Mainly the ESP32 is there for Grid support, temperature gradients, inverter / changer control (if applicable) and time of use charging etc. The ESP32 contains a rather elegant little AI internally that I based on an ANT's brain - but that is story for another time, perhaps.
The Paladin Australia Facebook page has a lot of my blog entries on various Paladin functions and abilities - try there first. But if there is interest and I have time, I will gladly reply to queries and ideas. I get a lot of my best ideas from 'questions', since a question is often a 'need' in other clothes.
WARNING *** LOTS OF BORING CODE BELOW *** WARNING
As usual the forum text engine disregards tabs and compresses spaces so the comments are bunched hard against the code. Comments start with a ' for non-BASIC readers.
' All new Star Burst as a single display module using ESP Wifi API to get history and real time data.
[InitColors]
ForegroundColor$ = "black"
BackgroundColor$ = "white"
[WindowSetup]
NOMAINWIN
global version$ : version$ = "V0.7" ' Current version displayed on screen header
global Screen : Screen = 5 ' Valid values to date are 4,5 and 10
global TEST ' When testing - use this
WindowWidth = 160 * Screen : WindowHeight = 160 * Screen ' Screen params
UpperLeftX = INT((DisplayWidth-WindowWidth)/2)
UpperLeftY = INT((DisplayHeight-WindowHeight)/2)
global CenterX : CenterX = WindowWidth/2.05 ' Fiddle factor to accomodate font sizes
global CenterY : CenterY = WindowHeight/2.05
[ControlSetup]
graphicbox #main.g, 0,0,WindowWidth,WindowHeight ' main.g is the whole thing
Stylebits #main.g, 0, _WS_BORDER, 0, 0 ' borderless
'textbox #main, 500,0,200,200
' Globals
global GWorkDir$, GDataDir$ ' Some directory and file structures
global True, False, TRUE, FALSE
True = 1 : TRUE = True: False = 0 : FALSE = False ' Makes the code more readable
global START ,OFF : START = TRUE : OFF = FALSE
TEST = False
global crlf$, q$ ' text building helpers
q$ = chr$(34) : crlf$ = chr$(13)+chr$(10) ' Text helpers - probably redundent here
global copyr$ : copyr$ = chr$(169) ' Copyright symbol
global PalWifiAddress$,RTData$
global Radius : Radius = CenterX - Screen * 10 ' Defining the circle
global HandScale : HandScale = Radius - 20
global Scale : Scale = 5
Global TimeScale : TimeScale = 12 ' 12 times every 2 minutes = 10 secs. 24 gives 5 second refresh
global TimeTT : TimeTT = 2 * 12/TimeScale ' Either 10 secs for 12 or or 5 seconds for 24 (TimeTT = 1)
global LastPlot : LastPlot = 2
global LastSec,LastMin,LastHour
global FontSize,LeftX,RightX,BottomY
FontSize = Screen * 2.5
LeftX = 2 : RightX = WindowWidth - 15 - Screen * 35 ' Various constants to get the boxes positioned
BottomY = 69 : if Screen = 5 then BottomY = 136 ' Total cludge for the top of the bottom boxes
if Screen = 4 then BottomY = 168' Defines
GWorkDir$ = DefaultDir$ + "\" ' where things live on disk
GDataDir$ = GWorkDir$ + "DATA\"' Data Arrays
dim RTD(24) ' Real Time Data as per ESP '/RAW'. 0 = Current, 1 = Last
dim DL$(24) ' Data Lables
dim HD(720,13) ' History from ESP '/TODAY'
dim C$(24) ' Colors associated with Data Set
dim TT(10)
' Read In Labels
for x = 0 to 24 : read DL$(x) : read C$(x) : next xOpen "Paladin StarBurst " + copyr$ + " KBS 2019. Version "+version$ for Window as #main
#main.g "font ms_sans_serif 10"
print #main, "trapclose [quit]"
print #main.g, "trapclose [quit]"
r = getIni("PALWIFI.txt") ' PALWIFI.TXT holds the ESP address
[start]
redim HD(720,13)
#main.g "cls"
call showClock
call drawFace
#main.g "flush"
call timerSet
if TEST = False then ' Do this when not testing
call getHistoryData
call plotHistoryData
else
call showRTD ' Use these for display test
call plotLine 180,3
wait
end if[loop]
if TT(9) = True goto [start] ' This is the main program loop at midnight
if TT(TimeTT) = True then
call getRTD ' get RTD
TT(TimeTT) = False ' reset 10 or 5 sec flag
if (len(RTData$) > 20) then ' Only plot valid data
call showRTD
end if
end if
if TT(5) = True then ' TT(5) is a 2 minute flag
call plotHistoryData
TT(5) = False ' TT(5) is a 2 minute flag
end if
while TT(0) = False ' TT(0) is a 1 second flag
call sleep 100 ' sleep for 100 ms - don't hog the CPU
scan ' scan the keyboard for abort
call timerSet ' check all the TT flags
wend ' untill a second has elapsed
TT(0) = False ' Reset 1 second Flag
call showClock ' Show the clock change every second
goto [loop] ' Rinse and Repeat
goto [quit] ' we should never get here, but if so, exit properly
' All below here are sub routines and functions
' ********** Graphics primativesSub plotTemp x ' Plot the HW temp dot in range 30-80C
#main.g "up; color ";C$(10) ' HW Temp color on [10]
call rotateTo x/2 ' center and point in the correct direction
#main.g "go ";((HD(x,3)-30) / (Scale * 10)) * Radius ' HWT data is in HD[x,3]. Scale it 30-80C
#main.g " down ; size 4 ; go 2" ' Pen down, 4 pixel dot and 2 pixel push. Might need go 1
End SubSub plotInvChg x ' Plot the Inverter and Charger dots on circumference as required
dotcolor = 0 ' Cludgy - but set color to 0 for starters
if HD(x,10) > 0 then dotcolor = 18 ' Choose suitable colors
if HD(x,11) > 0 then dotcolor = 19 ' if associated data > 0
if dotcolor > 0 then ' Is there a valid color?
#main.g "color ";C$(dotcolor) ' Inv or Chg
call rotateTo x/2 ' Center and point again
#main.g "up ;go ";Radius
#main.g " down ; size 4 ; go 2" ' same as temperature
end if
End SubSub plotLine x,y ' Plot a line with data from HD[x,y] in color y
#main.g "size 2 ;color ";C$(y) ' y is the data type so y = color
call rotateTo x/2
if y = 9 then ' when y = 9 the data is solar so go out to in
#main.g "up ;go ";Radius
#main.g "turn 180"
end if
#main.g "down; go ";(HD(x,y) / (Scale * 1000)) * Radius ' Center to circumference
call plotTemp x ' after the line plot the Temperature
call plotInvChg x ' then the Inverter / Charger dots
End SubSub showHand rt ' Show a hand on face at RTD(x)
pieDeep = (RTD(rt) / Scale) * Radius * 2 ' Calculate hot big the pie slice should be
' #main.g, "rule xor " ';_R2_NOTXORPEN ' Not tyhat pleasing a graphic technique really
#main.g "color ";C$(rt-5) ' Pie slice colour
#main.g "backcolor ";C$(rt-5)
#main.g "size 3" ' Density of edges in pixels
call gotoCenter ' start in the middle pointing North
if RTD(rt) > 0 then ' only do this when the data point > 0
if RTD(rt) < Scale then ' Inside Scale, make the slice hollow.
#main.g "pie ";pieDeep;" ";pieDeep;" ";270 + (RTD(rt) / Scale) * 360;" ";5
else ' Over Scale - make it filled for comparison and effect
#main.g "piefilled ";pieDeep;" ";pieDeep;" ";270 + (RTD(rt) / Scale) * 360;" ";5
end if
end if
' #main.g, "rule over" ';_R2_COPYPEN` ' Cancel the XOR rule if used
End SubSub showRTD
#main.g "redraw" ' Refresh the save graphic memory
call showClock ' show the clock
for x = 5 to 9 ' Build top left and right boxes as they run in sequence
call showText LeftX,(x-5) * 18 + 20,FontSize,23,x-5,makeDisp$(x,"##.##") ' Top Left
call showText RightX,(x-5) * 18 + 20,FontSize,23,x-5,makeDisp$(x-5,"###.#") ' Top Right
call showHand x ' Show the pie hands for these changing values
next x
call showText LeftX,(0 * 18) + Screen * BottomY,FontSize,23,10,makeDisp$(10,"##.#C") ' HW Temp - Now Bottom Left box
call showText LeftX,(1 * 18) + Screen * BottomY,FontSize,23,11,makeDisp$(11,"##.##") ' Delta T
call showText LeftX,(2 * 18) + Screen * BottomY,FontSize,23,21,makeDisp$(21,"##.#C") ' Min Temp
call showText LeftX,(3 * 18) + Screen * BottomY,FontSize,23,18,makeOnOff$(18) ' Inverter On/OFF
call showText LeftX,(4 * 18) + Screen * BottomY,FontSize,23,19,makeOnOff$(19) ' Charger ON/OFF
call showText RightX,(0 * 18) + Screen * BottomY,FontSize,23,12,makeDisp$(12,"##.#c") ' Current kWh price - Bottom Right Box
call showText RightX,(1 * 18) + Screen * BottomY,FontSize,23,14,makeDisp$(14,"###.#") ' Daily Cost in c
call showText RightX,(2 * 18) + Screen * BottomY,FontSize,23,15,makeDisp$(15,"## ") ' OverFlow
call showText RightX,(3 * 18) + Screen * BottomY,FontSize,23,16,makeOnOff$(16) ' PV Export
call showText RightX,(4 * 18) + Screen * BottomY,FontSize,23,17,makeOnOff$(20) ' Forced Export
End SubSub drawFace ' Draw the clock face to scale Screen
#main.g "font courier_new ";Screen * 2 ' The Screen variable defines the font size
call gotoCenter ' Center and face North
#main.g "color black; backcolor white; size 1" ' Black with White background, 1 pixel wide lines
#main.g "circle ";Radius ' Graw a circle
call showScale ' Now put the scale and numbers on
End SubSub showScale ' Create the circle and scaling text and lines
call gotoCenter ' Somewhete tricky, but only used once
#main.g "color black; backcolor white"
#main.g "font courier_new 12 ; size 1; down" ' Set the font, radius lines at 1 dot wide
for x = 1 to Scale ' How many radius lines
#main.g "circle ";Radius * (x/Scale) ' draw them
next xfor x = 1 to Scale ' Now do the numbers around the edge call rotateTo x * (360 / Scale) #main.g "up" tm = x : if tm > 3 then tm = 3 if x = 5 then tm = 1 #main.g "go ";Radius + tm * Screen #main.g "down" #main.g "\";str$(x) next x
End Sub
Sub rotateTo degrees ' Center the Turtle and point it ahere needed (degrees)
call gotoCenter ' Center and point North
if degrees < 0 degrees *= -1 ' If degrees are < 0 make them positive
#main.g "turn ";degrees ' Turn to coirrect angle
End SubSub gotoCenter ' Used a lot, so make a seperate sub.
' #main.g "up" ' disable drawing to avoid trailing lines
#main.g "place ";CenterX;" ";CenterY;" ; north" ' Put the cursor in the center of the circle and face North
' #main.g "down" ' Pen down to enable drawing again - common mistake to miss this
End SubSub showText x,y,fs,fc,bc,t$ 'xpos, ypos,font size,color,background,text$
#main.g "font courier_new ";int(fs) ' Set the font size
#main.g "color ";C$(fc);"; backcolor ";C$(bc) ' Set the colors
if x <= 0 then ' Centered Text if we put a -ve value for x (tricky woo)
#main.g "stringwidth? t$ tw" ' What is the pixel length of the text in t$
x = CenterX - tw/2 + x * (Screen / 5) ' Calculate x axis using string width / 2 and Screen size
end if
#main.g "place ";x;" ";y * (Screen / 5) ' Set the cursor into the correct position
#main.g "\ ";t$ ' and write text using graphics sequence "\ " text$
End SubSub showClock ' Show the clock in needed position using Screen size
call showText -20,25,15+Screen,23,24,time$()
End SubFunction PadString$(st$,l) ' Pad a string with l trailing spaces
if len(st$)<l then
st$=st$+space$(l-len(st$))
end if
PadString$=left$(st$,l) ' return the padded string
End Function' ********** Data Handling *******
Sub getHistoryData
esp$ = ""
while len(esp$) < 50
esp$ = getPalData$("/TODAY")
fpos = 100 : ln = 0 : maxln = 0 ' start fpos positive
while (fpos > 0)
fpos = instr(esp$,chr$(10)) ' End of Line
espLine$ = left$(esp$,fpos) ' Transfer that line to espLine$
ln = val(word$(espLine$,1,",")) ' The ESP is 0-7
if maxln < ln then maxln = ln ' max valid line
for x = 1 to 13
HD(ln,x) = val(word$(espLine$,x + 1,",")) ' Extract and transfer
next x
esp$ = mid$(esp$,fpos + 1) ' Remove line used from front
wend ' Rinse and Repeat to end of string
clockdiff = time$("seconds") - (maxln * 120) ' This clock's position at end of this entry / apparent clock from esp
for x = 5 to 9 ' Just adjust the needed values
HD(maxln,x) = HD(maxln,x) * (clockdiff / 120) ' Roll them back proportional to clock error
next x
' print "ClockDiff = " + str$(clockdiff) + " / " + str$(maxln)
End SubSub plotHistoryData ' Now plot it all
#main.g "redraw"
for x = LastPlot -2 to 719
if HD(x,1) > 0 then
for y = 5 to 9
call plotLine x,y
next y
LastPlot = x
end if
next x
#main.g "flush"
TT(5) = False ' Reset 2 minute flag
call showRTD
End SubSub addHistoryData ' Increment History data rather than recalling it
inc = 1000/TimeScale ' Watts to kW / Number of entries per HD value
ln = int(time$("seconds") / 120) ' We get a data point every 10 seconds
HD(ln,0) = ln ' This is where we are
HD(ln,1) = RTD(12) ' Price
HD(ln,3) = RTD(10) ' Hot Water Temp - replace only
for x = 5 to 9
HD(ln,x) = HD(ln,x) + (RTD(x) * inc) ' MainsIn/MainsOut/TransIn/TransOut/Solar added 12 times in 120 secs
next x
for x = 10 to 12
HD(ln,x) = RTD(x + 8) ' Inverter / Charge / PV Export
next x
HD(ln,13) = RTD(13) ' Solar Export value
' print str$(ln) + " / " + str$(LastPlot) + " MainsIn = " + str$(HD(ln,9))
End SubFunction getPalData$(ext$)
timeout = 0 ' We need a timeout counter to not do this forever…
while len(getPalData$) < 50
getPalData$ = httpget$(PalWifiAddress$ + ext$) ' Use WiFi address and extension
if len(getPalData$) > 50 then exit while ' More than 50 bytes is usable
call sleep 200 ' Sleep for 200ms to wait for ESP to wake up
timeout += 1 ' Increment the timeout value
if timeout > 5 then exit while ' 5 x 200ms = 1 second = long enough
wend ' Keep going until valid data or timeout
End FunctionSub getRTD ' Get Real Time Data from ESP
RTData$ = "" ' Clear out any old data string
RTData$ = getPalData$("/WifiData") ' Get RTD from ESP API using the '/WifiData' call
if len(RTData$) > 50 then ' Check we do have data and it was a not a timeout '
for x = 0 to 24 ' There are 25 data points in the /WifiData return
RTD(x) = val(word$(RTData$,x+1,",")) ' Transfer the Comma String to the RTD array numerics
next x
else
call showText 2,20,Screen * 2.5,23,0,"Wifi TimeOut " ' If we did timeout - show that on the top left
end if
call addHistoryData ' Always add it in to History - even if we miss
End SubFunction httpget$(url$) ' This is just a standard library call to get web data
call showText -20,25,15+Screen,0,24,time$() ' Turn the clock red as we start this call
open "WININET.DLL" for dll as #net ' Lots of Windows API trickery - It works - don't ask…
calldll #net, "InternetOpenA", "PalPie" as ptr, 0 as long, _
1 as long, 0 as long, 0 as long, hnet as ulong
calldll #net, "InternetOpenUrlA", hnet as ulong, url$ as ptr, _
"" as ptr, 0 as long, 0 as long, 0 as long, hurl as ulong
buffer$ = space$(1000)
struct gethttp, nread as long
do
buflen = len(buffer$)
calldll #net, "InternetReadFile", hurl as ulong, _
buffer$ as ptr, buflen as long, gethttp as struct, res as long
httpget$ = httpget$ + left$(buffer$, gethttp.nread.struct)
loop until gethttp.nread.struct = 0
calldll #net, "InternetCloseHandle", hurl as ulong, res as long
calldll #net, "InternetCloseHandle", hnet as ulong, res as long
close #net
call showText -20,25,15+Screen,23,24,time$() ' Put the clock back to Black.
end Function' ———————— INI File = Lots of standard code to read the PALWIFI.TXT file —————————
function getIni(filename$)
if fileexist(GWorkDir$,filename$) = FALSE then ' no ini file at all, create one
call findNemo
end if
' INI File - these will be read in from the INI file.
open filename$ for input as #ini ' default to here anyway
getIni = True
if TEST = True then ' ever the optimist
PalWifiAddress$ = "http://10.1.1.174"' getLine$()
else
PalWifiAddress$ = getLine$()
end if
' call drawText 100,15,5,12,4,8, "Paladin LAN Address - " + PalWifiAddress$ + " "
End FunctionFunction getLine$()
[anotherline]
if eof(#ini) = False then
comment = False
line input #ini, a$
if left$(a$,1) = " " or a$ = "" or left$(a$,1) = "'" then comment = True
getLine$ = a$
end if
if comment = True then goto [anotherline]
End Function' ———— File Handling ——————-
function fileexist(where$, filename$) ' does a file exist ?
dim info$(10,10) ' LB mumbo jumbo looking at directory values
files where$,filename$,info$()
fileexist = False
fileexist = val(info$(1,1))
end functionSub killFile fn$
if fileexist(GWorkDir$, fn$) > 0 then ' If you try to kill a non exitant file it breaks things
kill fn$
end if
End SubSub sleep howlong ' Nana Nap in 1000th of a sec using MSDOS kernel32 to offload CPU
waitfor = howlong / 100
for x = 1 to waitfor
calldll #kernel32,"Sleep",waitfor as long,r as void
scan
next x
End SubSub findNemo ' Finding NEMO is an inside joke. This finds the ESP on the LAN
call killFile("CoreIP.bat")
open "CoreIP.bat" for output as #t ' Build the batch file for finding base IP address
print #t,"arp -a > CoreIP.txt" ' Write it to the current directory
close #t ' And tidy up by closing
call killFile "CoreIP.txt" ' Kill CoreIP.txt in current directory if it exists
rc$ = "CoreIP.bat " ' Build the command string. NB you need to put the '.bat' on the batch file name ' Uncomment this to see the command itself
run rc$,HIDE
call findGateway "CoreIP.txt"
End SubSub findGateway s$ ' Find gateway address in string s$
while (fileexist(GWorkDir$,s$) = False) ' wait here until file exists.
call sleep 100 ' Nanna Nap to wait for windows to create the file
scan ' but watch the keyboard for an escape
wend
fileLength = -1
open s$ for input as #t ' Open for reading on buffer #t
while (fileLength <> lof(#t)) ' Sneaky way to wait for windows to finish writing a file
fileLength = lof(#t) ' Wait for the file length to stabilise
call sleep 100 ' 1/10th of a second Nanna Nap
scan ' watch the keyboard for an escape click
wend ' Keep going until complete
while eof(#t) = False
line input #t, l$
print l$,word$(l$,3)
if word$(l$,3) = "dynamic" then
if checkAddress(l$) = True then exit while
end if
wend
close #t
End SubFunction checkAddress(l$) ' check IP address in l$ for Nemo
checkAddress = False ' Default position
ip$ = "http://" + word$(l$,1)
ipCall$ = ip$ + "/MX0"
scan
a$ = httpget$(ipCall$)
if len(a$) = 24 then
checkAddress = True
call killFile("PALWIIFI.txt")
open "PALWIFI.txt" for output as #f
print #f,"'PALADIN WiFi address found by Nemo"
print #f,ip$
print #f,"'——————————-"
close #f
end if
End FunctionFunction makeDisp$(x,use$) ' Used by the data blocks to format text and numbers
makeDisp$ = PadString$(DL$(x),10) + " " + using(use$,RTD(x))
End FunctionFunction makeOnOff$(x) ' Used by data blocks to show ON or OFF
oo$ = " OFF " : if RTD(x) = 1 then oo$ = " ON "
makeOnOff$ = PadString$(DL$(x),10) + oo$
End Function' Clock Control Timer
'TT[] 0 = 1sec : 1 = 5 sec : 2 = 10 sec : 3 = 30sec : 4 = 1min : 5 = 2min : 6 = 5min : 7 = 10min : 8 = 1 hour : 9 = 1 day
Sub timerSet ' Rather than have a lot of IF THEN ELSE stuff in the core code
thisSec = val(mid$(time$(),7,2)) ' Extract the numeric value of Seconds from Time$ string "HH/MM/SS"
thisMin = val(mid$(time$(),4,2)) ' The minutes
thisHour = val(mid$(time$(),1,2)) ' The Hours
if LastSec <> thisSec then ' Has a whole second gone by - we are calling this a lot…
TT(0) = True ' TT(0) = True means a new second in play
LastSec = thisSec ' Hold this as LastSec for next pass
if (LastSec mod 5) = 0 then TT(1) = True ' Now has a 5 second window elapsed? Set TT[1] to True
if (LastSec mod 10) = 0 then TT(2) = True ' Ditto 10 seconds
if (LastSec mod 30) = 0 then TT(3) = True ' Ditto 30
if LastMin <> thisMin then ' Now do minutes if we have a whole minuted change
LastMin = thisMin
TT(4) = True
if (LastMin mod 2) = 0 then TT(5) = True ' 2 minute flag
if (LastMin mod 5) = 0 then TT(6) = True ' 5 minute flag
if (LastMin mod 10) = 0 then TT(7) = True ' 10 minute flag
if LastHour <> thisHour then ' Same for hours
TT(8) = True ' 1 hour elapsed flag
LastHour = thisHour
if LastHour = 0 then TT(9) = True ' Next Day
end if ' Most of these are not used at the moment, but it is trivial work for the CPU
end if
end if
End Substop
' Data Labels corresponding to RTD() followed by color value - 20 sets = 18 + black / white
' Lots of work to do here. Use RGB values from here : https://www.w3schools.com/colors/color_tryit.asp?hex=F0F8FF
data Tot Mains In,RED ' Hot Pink = Grid In
data Tot Mains Out,124 252 0 ' Lawn Green
data Tot TopUp,199 21 133 ' Medium Violet Red
data Tot Trans,100 149 237 ' Cornflower Blue
data Tot Solar,255 200 0 ' Yellow / Gold
data Mains In, 255 105 180
data Mains Out,GREEN
data Top Up,199 21 133
data Transfer, BLUE
data Solar,255 140 0 ' Yellow / Gold
data HW Temp,CYAN
data DeltaT,155 155 128 ' Dark Cyan
data kWh Price,YELLOW
data PV Value,GREY
data Day Total,YELLOW
data OverFlow,YELLOW
data Export,YELLOW
data Import,YELLOW
data Inverter,DARKGREEN
data Charger,PINK
data PV Export,YELLOW
data Min Temp,YELLOW
data Max Temp, GREY
data BLACK,0 0 0
data WHITE,255 255 255' ********************** Tests etc *********
Sub TestgetRTD
for x = 0 to 4
RTD(x) = rnd() * 5000
next x
End Sub[quit] ' Get a clean exit with all windows closed to avoid hanging processes
close #main
endAll I can say is do your research on the company before hand as there are some hit and run and just overall bad solar companies out there.
In Sydney NSW for examine avoid Eurosolar and I think the other phoenixed company was Sunboost or something sounding like that.
Their head office address was basically an empty room and when one of these get too hot under scrutiny they just close down and "phoenix" or come back as a new entity but they usually keep same address and same business owner which is funny.
As others have said Jinko panels and Fronius inverter are both good but just check reviews from others of the company before going ahead or you might end up behind on your investment rather than ahead.
What’s people’s thoughts on the Sunpower P19 panels and Fronius Primo 5kW Inverter?
That's some very good gear, quality inverter and all though the P19 panels are the budget panel in the Sunpower range they are still very good panels.
I got a quote for them for 20 panels. $9850 installed. Upfront is something like 5600.
As people have mentioned previously, always do your own research. I spent a few months doing research and having met a lot of (shady) people at my property, I finally made a decision. I'm based in NSW, Sydney and hooked up a 6kw system to my parent's house back in April this year.
20x Opal Solar panels
5kw Solax inverterOpal Solar's warranty is backed by Solarjuice whose head office is based in Wetherill Park, NSW.
My parents are with Origin and the first winter-solar bill has just been issued. Their average quarterly bill ranges between $500-$600. The bill that was released was $133. Household is a family of 4 with no natural gas in the area (electric hot water tank in place). The first month, the plan was not adjusted to solar so FIT was 8c per kwh. From month two onwards, the plan was changed to 22c per kwh.
As this winter set the benchmark (where the sun is not out as long as summer), I'm looking forward to the next quarterly bill (and the warmer quarters to come) to see the results from there.
Feel free to reach out if you have questions. Happy to help out.
Hey just wondering if you can let me know which installer you went with? Thanks
Sure, I dealt with Ultimate Solar Solutions. As you can imagine, there are probably a few solar companies across the country with that name. Happy to share the contact name/details of their team with you if you want to be certain it's the right company. Cheers
You shouldn’t need to spend over $6000 for 5kw system.
What is your question?