PVdiary installatie op Raspberry Pi - PVDIAN image

Uit Pv en zonneboiler wiki
Ga naar: navigatie, zoeken

Overzicht.[bewerken]

Even geduld -- Documentatie nog niet volledig klaar --

Vanaf november 2014 is een image gebaseerd op Raspbian beschikbaar dat voorzien is van alle software om pvdiary te draaien op een RaspberryPi. Het image is aangemaakt met als basis de officiele Raspbian distributie. Vervolgens is de desktop omgeving verwijderd en de nodige software voor PVdiary geinstalleerd en geconfigureerd. Ook de pvdiary2 gebruiker en de nodige cron-jobs zijn reeds aangemaakt.

Het image bevat een werkende demo van pvdiary die je onmiddelijk via het pvdiary dashboard kan bekijken. SBFspot is geinstalleerd en in principe hoef je enkel het bluetooth adres van je omvormer in te vullen in de configuratie om SMA-omvormers uit te lezen. Voor installaties met een Sunnybeam kan sunnybeamtool ingeschakeld worden. Tevens is ook Samba geinstalleerd zodat je vanuit windows een netwerkschijf kan aanmaken.

Om het beheer van de raspi volledig webbased te kunnen doen is PVDIAN ontwikkeld. Hiermee kan je een debian-based systeem (Raspbian in dit geval) beheren via een webbrowser. PVDIAN bevat ook de nodige tests om zeker te zijn dat de tijd correct staat.

Opgelet! Het eindresultaat is niet hetzelfde als hetgeen beschreven wordt in de wiki van Marcelr. Een van de belangrijkste verschillen is dat niet Apache, maar Nginx als webserver gebruikt wordt. (Configuratie via root webserver van PVDIAN)

Download PVDIAN image.[bewerken]

Je kan het compressed image (+- 390 MByte) vinden op

  http://www.aps11tl.be/download.php?id=raspi_pvdian_img   

Het image is gebaseerd op het raspbian image van juni 2015 en werkt eveneens op een Pi 2 model B en B+. Belangrijk: dit image is niet geschikt voor een Pi 3 !

Het image van november 2014 kun je nog downloaden op

 http://www.aps11tl.be/download.php?id=raspi_pvdian_img_old

Belangrijk: het oude image is niet geschikt voor pi model 2, enkel voor model B en B+


Dit levert je een .gz file op (grootte ongeveer 390 Mbyte) met de naam raspi_pvdian_YYYYMMDD.gz . Bijvoorbeeld het image van 11 november 2014:

 ls Downloads/rasp* -lh
 -rw-r----- 1 leslie users 362M Nov 21 00:16 Downloads/raspi_pvdian_20141120.gz

De .gz file moet uitgepakt en geflasht worden op de sd-kaart (minimum 2 Gbyte)

Installatie vanuit een Windows omgeving.[bewerken]

De beschrijving hieronder gaat uit van een Windows omgeving als hulpmiddel om tot installatie op de Rpi te komen. Verder gaan wij er voor deze beschrijving vanuit dat je op zijn minst een basiskennis Windows hebt die je in staat stelt om onderstaande handelingen te begrijpen en uit te voeren.

STAP 1.

Na stap 1 kun je de Rpi bereiken via een tweetal webpagina’s, n.l. de Root Webserver (waarmee je op systeem niveau elementaire zaken kunt aanpassen en ook linux commando’s kunt uitvoeren) en het PVdiary dashboard (hiermee stel je de applicatie variabelen in en ook kun je alle relevante data bekijken).


Voorbereiding: Installeer Win-32-disk-imager via http://sourceforge.net/projects/win32diskimager Hiermee kan het Pvdiary image op een SD kaart worden geschreven.

Installeer eventueel Winrar of een soortgelijk unzip programma om het image-file te kunnen uitpakken

Installatie PVdiary: Na het downloaden van de image-file via bovenstaande link moet het image worden uitgepakt, bijvoorbeeld via Winrar. Wanneer dit is gebeurd moet je even controleren of het uitgepakte bestand een filetype “img” heeft, als dit niet zo is dan moet je dit aanpassen via Windows Explorer (rename). Dan wordt het dus ImageFile.img

Via Win32-disk-imager het hiervoor genoemde image op een SD kaartje schrijven. Let vooral goed op dat je de juiste unit opgeeft, anders loop je het risico kostbare gegevens kwijt te raken.


Installatie vanuit een Linux omgeving.[bewerken]

Vanuit linux kan dat eenvoudig met 1 commando :

 gzip -dc raspi_pvdian_20141120.gz | dd bs=1M of=/dev/xxxx
 (duurt ongeveer 5 minuten)

Opgelet! zeker zijn dat je het juiste device kiest of je riskeert een schijf te overschrijven!!


De eerste opstart[bewerken]

Nadat de SD kaart is beschreven deze in de Rpi stoppen (wel eerst de spanning er vanaf halen), netwerk kabel aansluiten, spanning opzetten en even geduld... Wees er wel op bedacht dat de Rpi een aantal keren zal herstarten om zichzelf te configureren.

Standaard is het netwerk geconfigureerd om DHCP te gebruiken. Het IP-adres wordt getoond op de console of kan je op je router terugvinden. De raspi kan je terugvinden met hostname "pvdian01".

Om het de gebruiker nog gemakkelijker te maken maakt de raspi standaard gebruik van de "redirect service" op www.aps11tl.be zodat je het IP-adres van de raspi niet hoeft te weten.


Als alles werkt naar behoren worden 2 webservers opgestart:

  • Een Root-webserver voor systeem administratie op poort 81
  • Nginx webserver voor het PVdiary dashboard op poort 80


Bekijk even of de Root-Webserver werkt via

 http://ip-adres-van-jouw-Rpi:81
of
 http://www.aps11tl.be/RedirectService.php?id=pvdian

Standaard is de Root-webserver beveiligd via een token. Dit is standaard "pvdian".


Het PVdiary dashboard kun je vinden op

 http://ip-adres-van-jouw-Rpi/pvdiary_dashboard.php
of
 http://www.aps11tl.be/RedirectService.php?id=pvdiary

Standaard wordt gebruik gemaakt van een "demo" plugin zodat je snel kunt kijken of het dashboard correct werkt.

Standaard setup[bewerken]

Het image is geconfigureerd

Netwerk setup: DHCP

Je kan via de console of SSH inloggen:

Het standaard paswoord van root is "raspberry"
Het standaard paswoord van pvdiary2 is "zonstraal"


Token voor root-webserver: "pvdian"


Web-based administratie via de root-webserver[bewerken]

De root-webserver maakt gebruik van de embedded webserver in PHP en staat dus volledig los van het pvdiary dashboard.

Opgelet! de root-webserver loopt met alle rechten en laat toe om elk commando uit te voeren of file aan te passen. De banner "Warning, you are using the root account, you may harm your system." staat er niet voor niks.

Standaard is de root-webserver ingesteld om te luisteren naar poort 81.

De root-webserver maakt gebruik van 1 configuratie-bestand /etc/pvdian/pvdian.ini voor het aanmaken van de verschillende configuratiefiles. Je kan dit aanpassen vanuit de rootwebserver->PVDIAN 1.x -> pvdian.ini -> Modify
Belangrijk: aanpassingen aan de netwerk configuratie worden uitgevoerd na een REBOOT van de raspi.

Configuratie van een vast IP-adres[bewerken]

In het voorbeeld worden volgende setup verondersteld:

ip-adres : 192.168.1.86
ip_gateway: 192.168.1.1
ip_netmask: 255.255.255.0
De standaard dns-server is 208.67.222.222 (opendns)

Pas pvdian.ini aan als volgt:

;
;  a list of all the hosts on your intranet
; host[] = 'hostname : ip_address : network_template'
; this will be used to make the /etc/network/interfaces en /etc/hosts file 
host[] = 'pvdian01 : 192.168.1.86 : static_wired'
host[] = 'pvdian02 : : dhcp_wifi'
;
; 
; network_template : 
;    dhcp_wired    dhcp_wifi    static_wired    static_wifi
;   for static add at least ip_address and ip_gateway
;   for wifi add wifi_SSID  and wifi_pwd
; network_template = 'dhcp_wired'
; network_template = 'static_wifi'
; ip_address = '192.168.1.107'
ip_gateway = '192.168.1.1'
ip_netmask = '255.255.255.0'
dns_domain = 'intranet'
; dns_server = '...'
;

Vervolgens "Save" knop en op de "Reboot" knop drukken ... Dan is het een kwestie van enkele minuten geduld omdat de aanpassing 2 reboots doet. Bekijk de ledjes op de raspi als geen monitor is aangesloten...

Tenslotte kun je de browser richten naar het nieuwe IP adres:

http://192.168.1.86:81   of  http://www.aps11tl.be/RedirectService.php?id=pvdian


Het is normaal de rootwebserver opnieuw vraagt voor een token (= pvdian) omdat het ip-adres veranderd is.


Configuratie SBFspot[bewerken]

Bluetooth enablen en adres van de omvormer bepalen. Dit kan via root-webserver , Services ... Vervolgens "Enable" knop van Bluetooth, "Start" knop om BT te starten. Via "hcitool scan" kun je het BT adres vinden...


(SMAspot 2.2.1.1 in gebruik ... SBFspot volgt ...) PVdiary dashboard, tab Config , knop Omvormers

import_params = "CSV 0 plant0001 0 SMAspot /home/pvdiary2/SMAspot_v2211/mysmaspot.cfg"
inverter_BTAddress = "11:22:33:44:55:66"


Opgelet! Vergeet niet de lijn met import_params van de demo plugin in commentaar te plaatsen met een ;

;  demo plugin , makes random graphs
; import_params = "CSV 0 plant0001 210012345 demo"


Vervolgens met de knop "Make SMAspot config" de config file voor SMAspot aanmaken.

PVdiary met https en authenticatie.[bewerken]

Hoe de raspi configureren met de rootwebserver om het dashboard enkel te bereiken over https en authenticatie.

  • Webuser(s) aanmaken of aanpassen via   Rootwebserver -> Users -> Add web user (Enkel het paswoord is belangrijk)
  • nginx webserver stoppen via   Rootwebserver -> Services -> Nginx stop
  • Configuratie pvdian.ini file aanpassen via   Rootwebserver -> PVDIAN -> pvdian.ini

De template pvdian.ini staat normaal ok en moet je enkel aanpassen. Bijvoorbeeld de server_name en de listen poort. Het www_certificate gedeelte wordt gebruikt om een "self-signed" certificaat aan te maken en is nodig voor https. Dit moet je zeker aanpassen naar jouw smaak (country, org_name ...) .

;
[webserver_pvdiary_ssl]
template = "server_ssl_auth"
listen = 8443
;listen = 443
 server_name = "www.mijnserver.org"
 root = '/home/pvdiary2/httpd'
 fastcgi_pass = 'unix:/var/run/php5-fpm-pvdiary2.sock'
 certificate = 'www_certificate'
;
; certificate is required to generate a self-signed certificate for the nginx webserver
[www_certificate]
 country = "ZU"
 state_prov = "Zulu_provincie"
 locality = "Zulu_stad"
 org_name = "Mijn Fabriekske"
 org_unit = "."
 expir_days = 3650
;
;
  • Nginx configuratie files aanmaken

Rootwebserver -> Services -> Nginx Select webserver = pvdiary_ssl -> Process

De rootwebserver checkt of de nodige nginx config files aanwezig zijn. 
Waarschuwingen worden in het rood in het rood getoond...
Gebruik de knop "make_nginx_config" om de file /etc/nginx/sites-available/pvdiary_ssl aan te maken.
Deze knop zal ook het certificaat aanmaken en duurt ongeveer 20 seconden... Dus even geduld.
Normaal zal er slechts 1 rode lijn tekst mogen zijn :
 File /var/log/nginx/access_pvdiary_ssl.log is not present
Deze file wordt aangemaakt wanneer de webserver opnieuw start. Dus geen zorgen over maken...
Tenslotte kan je best de oude (onbeveiligde) configuratie van nginx verwijderen of disablen.
Dit kan door via de select box "pvdiary" te kiezen ipv "pvdiary_ssl".
Gebruik de "Disable" knop.
De rode tekst "Link /etc/nginx/sites-enabled/pvdiary is not present" geeft aan of dit gelukt is.
  • Nginx webserver starten via   Rootwebserver -> Services -> Nginx start