Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09

1. Inleiding

Omvormers van SolarEdge hebben de speciale eigenschap dat alle panelen van bijbehorende optimizers worden voorzien. Dit brengt de mogelijkheid met zich mee de opbrengst per paneel bij te houden. SolarEdge biedt haar eigen monitoring portaal om de opbrengst bij te houden. Hierop is de actuele situatie per paneel, per string en per omvormer in te zien. Bovendien zijn er grafieken beschikbaar van spanning, stroom, energie en vermogen van de omvormer en de panelen. Voor programmeurs is er de Monitoring API, waarmee de data van de omvormer (maar niet van de panelen) programmatisch ter beschikking wordt gesteld. De Monitoring API maakt het ook mogelijk om de data van de SolarEdge website rechtstreeks naar PVOutput.org te laten doorsturen.

Er zijn een aantal beperkingen aan de SolarEdge website, de Monitoring API en de koppeling met PVOutput. Zo is informatie per paneel in het geheel niet beschikbaar via de Monitoring API. Op de monitoring website kun je wel gedetailleerde informatie over de panelen krijgen, maar alleen op de grafiekenpagina die niet werkt op smartphones en tablets (en die naar mijn mening sowieso maar matig van kwaliteit is). De koppeling met PVOutput laat ook te wensen over, deze heeft last van herhaaldelijk afronden en het verkeerd toepassen van de 'active power' waarde van de omvormer, waardoor de cijfers op PVOutput behoorlijk afwijken van wat op de SolarEdge monitoring website wordt vermeld.

Om deze beperkingen en tekortkomingen te overwinnen wil de echte Tweaker natuurlijk best de handen uit de mouwen steken en een eigen logging database en website opzetten. Maar dat blijkt met SolarEdge omvormers nog niet zo eenvoudig. Daarom is dit topic er nu! :>


Tᴡᴇᴇ ʙᴇʟᴀɴɢʀɪᴊᴋᴇ ᴏᴘᴍᴇʀᴋɪɴɢᴇɴ!
:)F Het stappenplan in deze post is van toepassing op omvormers met display en zonder SetApp.
:)F Als je binnenkort een SolarEdge omvormer (met display en zonder SetApp dus) in gebruik neemt en deze met de in dit topic besproken methodes wilt loggen, lees de startpost van dit topic dan goed door voordat je de omvormer aan het internet hangt. Al lezende wordt wel duidelijk waarom. Trek die netwerkkabel er snel even uit!


1.1 Wat kan ik hiermee?
Met dit project (in de staat waarin het zich nu bevindt) kun je het volgende:
  • Telemetriedata (van de omvormer en de optimizers) die een SolarEdge omvormer naar de monitoring portal stuurt onderscheppen en opslaan in een MySQL database
  • De data van de omvormer automatisch laten uploaden naar PVOutput
Om de data mooi inzichtelijk te maken zou je een leuke website of app kunnen bouwen die uit deze database kan putten, maar dat is een afzonderlijk vervolgproject. @andrerij heeft in deze post zijn monitoring website ter beschikking gesteld. Zelf heb ik intussen ook wat in elkaar gezet, maar dit is nog niet rijp genoeg om te delen. Maar vanwege bovenstaande waarschuwing is het belangrijk dat je op tijd de logging software hebt ingesteld: je kunt het beste vóórdat de omvormer het internet op gaat al met dit project begonnen zijn. Laat je dus niet afschrikken door het gebrek aan een mooie website of app: deze komt wel, zorg nu eerst maar dat je die omvormer kunt afluisteren!


2. Afluisteren versus uitlezen

Er zijn grofweg twee manieren waarmee SolarEdge omvormers hun data beschikbaar kunnen stellen: via een seriële verbinding (RS-232 of RS-485) of via het internet. De keuze hiertussen kan gemaakt worden in het instellingenmenu van de omvormer. Het moge duidelijk zijn dat de meeste SolarEdge omvormers aan het internet worden gehangen, zodat gebruik gemaakt kan worden van de SolarEdge monitoring portal. De in dit topic beschreven methode is bedoeld voor omvormers die op het internet worden aangesloten. De omvormer blijft gewoon met de monitoring portal verbonden, maar de verbinding tussen de omvormer en de servers van SolarEdge zal worden afgeluisterd. De data die de omvormer (elke 5 minuten) verzendt naar de monitoring website kan zo worden onderschept en opgeslagen zodat het in een eigen monitoring website getoond en naar hartenlust geanalyseerd kan worden. Als bonus krijg je zelfs data die op de monitoring website niet te vinden is, zoals de temperatuur van de optimizers!

De verbinding met de servers van SolarEdge is sinds december 2015 beveiligd met AES-128 encryptie. Deze versleuteling is (voor zover bekend) onkraakbaar, dus een met AES-128 beveiligde verbinding kan alleen afgeluisterd worden als je de gebruikte beveiligingssleutel weet. SolarEdge heeft de versleuteling van de verbinding toegevoegd aan recente firmware (vermoedelijk vanaf CPU versie 3.x), maar deze staat bij nieuw geïnstalleerde omvormers standaard uit. Ergens in de eerste 48 uur dat de omvormer contact heeft met de servers van SolarEdge wordt de beveiligingssleutel uitgewisseld en direct daarna wordt de versleuteling aangezet. Het is dus belangrijk dat de verbinding al afgeluisterd wordt wanneer de versleuteling nog niet aan staat!

In het geval dat je de beveiligingssleutel niet hebt weten te onderscheppen (bijvoorbeeld omdat je omvormer er al een tijdje hangt) is het nog mogelijk om deze met een RS-232 verbinding uit te lezen. Hiervoor zul je wel de kap van de omvormer moeten openen, niet iedereen ziet dat zitten. Doe dit alleen als je weet waar je mee bezig bent en zorg voor je eigen veiligheid dat de DC schakelaar aan de onderkant op OFF staat. Als alternatief kun je een 'factory reset' van de omvormer (een optie in het service menu) uitvoeren om de encryptie weer uit te zetten. Let wel: na een factory reset staat de productieteller weer op nul en moet de omvormer opnieuw gepaird worden met de optimizers.

Wellicht dat dit topic in de toekomst wordt uitgebreid met informatie voor het rechtstreeks uitlezen van de omvormer via RS-232 (eventueel over USB) of RS-485. Het voordeel van uitlezen via een seriële verbinding is dat de uitleesfrequentie kan worden verhoogd en er geen gedoe is met encryptie. Het nadeel is dat je de monitoring website niet meer kunt gebruiken en je dus volledig zelf verantwoordelijk bent voor de monitoring.


3. Benodigdheden

Om de verbinding tussen de omvormer en de servers van SolarEdge te kunnen afluisteren en de data op te slaan heb je wel wat spullen nodig. Vooral de opzet van het netwerk is van belang: als je je omvormer en je computer aansluit op een normale switch of router neemt het verkeer gewoon de kortste weg naar buiten en kan de computer de omvormer dus niet afluisteren. Zorg dat je het volgende in huis hebt:
  • Een computer die altijd aan staat (mag een server, nas of Raspberry Pi zijn) en waar je MySQL, tcpdump en Python2 scripts op kunt draaien. Als je nog geen spul 24/7 hebt draaien kan ik een pricewatch: Raspberry Pi 3 Model B 1GB aanbevelen. Vanaf nu heet deze computer de logger.
  • Een domme ouderwetse ethernet hub (dus géén switch of router) óf een switch met 'port mirroring' functie óf een tweede netwerkaansluiting op je logger. Veel mensen hebben geen van de drie opties in huis. Als je ook nog geen logger had is dit een extra reden voor de Raspberry Pi 3 Model B: die heeft een ethernetpoort én WiFi (dus twee netwerkverbindingen). Als je al een logger hebt kun je eenvoudig een tweede netwerkpoort toevoegen met een USB-naar-Ethernet dongle.
Ik ga er in dit geheel even van uit dat de logger op een Linux distributie draait die systemd gebruikt (ik heb het zelf op Ubuntu 16.04 draaien). Als iemand het op Windows wil installeren moeten we daar gaandeweg een handleiding voor schrijven, wat dan weer hier aan de topicstart kan worden toegevoegd. Waarschijnlijk is het ook mogelijk om het op sommige NAS'en te installeren, maar ook dit zal eerst maatwerk worden voordat we het in de topicstart kunnen zetten.


4. Het netwerk instellen

Het installeren van de logger komt in de volgende sectie aan bod. Eerst moeten we het netwerk op orde krijgen. Ik raad je aan om het eerst te proberen met een andere computer in de plaats van de omvormer zodat je zonder dataverlies kunt checken of de verbinding werkt en of je met tcpdump op de logger het verkeer van de computer kunt zien. Sluit i.v.m. de encryptie de omvormer pas aan op het internet als je zeker weet dat de logger kan meeluisteren!
  • Met een domme ethernet hub: Sluit drie netwerkkabels op de hub aan, één naar de omvormer, één naar de logger en één naar de rest van je netwerk voor de internettoegang. De omvormer en de logger ontvangen nu elkaars verkeer. Zo kan de logger dus meeluisteren met de communicatie van de omvormer.
  • Met een switch met 'port mirroring' functie: Sluit de logger aan op de 'mirror port' (andere termen: 'analysis port', 'monitoring port'). Op de 'gewone' netwerkpoorten sluit je de kabel naar de omvormer en de kabel naar de rest van het netwerk aan. Stel de switch zo in dat de data op de poort waar de omvormer aan hangt wordt gemirrord naar de mirror port.
  • Met twee netwerkpoorten op de logger: Sluit de omvormer aan op de ene netwerkpoort en verbind de andere met de rest van je netwerk. Stel een netwerkbrug in tussen de twee netwerkpoorten (zie sectie 4.1). De omvormer maakt dan verbinding met het netwerk via de logger, wat de logger natuurlijk in staat stelt om hem af te luisteren.
  • Met WiFi en een netwerkpoort op de logger: Bijvoorbeeld in het geval van de Raspberry Pi 3 Model B heb je te maken met één ethernetpoort en een WiFi-verbinding, wat de configuratie wat complexer maakt. Als je omvormer een WiFi-module heeft kun je het beste sectie 4.1 volgen. Als je omvormer geen WiFi heeft ga je naar sectie 4.2.

4.1 Omvormer ━┫ kabel of WiFi ┣━ Logger ━┫ kabel ┣━ Internet
Een logger met twee netwerkverbindingen die bekabeld aan het internet hangt is redelijk eenvoudig op te zetten. Met de volgende netwerkconfiguratie kun je twee ethernetpoorten (eth0 en eth1) bridgen. Hiervoor moet bridge-utils geïnstalleerd zijn. Sla deze code op in /etc/network/interfaces. Na een reboot wordt de configuratie actief.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
## /etc/network/interfaces
auto lo br0
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual

iface br0 inet static
    bridge_ports eth0 eth1
        address 192.168.178.2
        broadcast 192.168.178.255
        netmask 255.255.255.0
        gateway 192.168.178.1
        dns-nameservers 8.8.8.8 8.8.4.4


Pas de IP-adressen in dit voorbeeld eventueel aan zodat ze op jouw netwerk zijn afgestemd. In het voorbeeld is 192.168.178.2 het adres van de logger en 192.168.178.1 het adres van het modem.

Heb je een omvormer met WiFi-module en je logger heeft ook WiFi, dan kun je met 'hostapd' de logger een WiFi-netwerk laten uitzenden. Die kun je dan op dezelfde manier bridgen (verander 'eth1' in 'wlan0' in de code hierboven). Het WiFi netwerk waar de omvormer mee verbindt wordt gebridged met de netwerkpoort die de verbinding naar buiten levert. Op die manier stel je de logger in feite in als draadloos toegangspunt (AP).

Om de logger te testen sluit je even een computer/laptop aan in plaats van de omvormer en draai je het volgende commando op de logger (verander 'eth1' naar 'wlan0' als de testcomputer via WiFi verbinding maakt):
user@logger$  sudo tcpdump -c 25 -i eth1 tcp

Op de testcomputer open je dan een website, waarna je op de logger output moet zien verschijnen. Als dat is gelukt kun je verder bij Sectie 5.


4.2 Omvormer ━┫ kabel ┣━ Logger ━┫ WiFi ┣━ Internet
De meeste mensen zullen geen WiFi module bij hun SolarEdge omvormer hebben. Met een logger met WiFi zoals de Raspberry Pi 3 Model B kom je dan hier op uit: we gebruiken de WiFi om de logger met het internet te verbinden, zodat de omvormer met de netwerkkabel aan de logger kan worden gehangen. We kunnen dan geen netwerkbrug maken zoals bij sectie 4.1; in plaats daarvan stellen we de logger in als router. Dat gaat als volgt.

Installeer 'wpasupplicant' als je WiFi-netwerk met WPA Personal is beveiligd (99% kans...). Je moet je WiFi-wachtwoord omzetten in een 'PSK' (Pre-Shared Key) met het volgende commando:
user@logger$  wpa_passphrase Naam-Van-Jouw-WiFi-Netwerk JouwWachtwoordHier123!

Je krijgt dan als output o.a. een regel die begint met 'psk=' gevolgd door een reeks letters en cijfers. Die letters en cijfers heb je nodig in de volgende stap.

Sla de volgende code op in /etc/network/interfaces en vul hierin de naam van jouw WiFi-netwerk en je PSK in. Zorg ook dat de IP-adressen die onder 'wlan0' staan genoemd kloppen. 192.168.178.2 is in dit voorbeeld het IP-adres van de logger, 192.168.178.1 het IP-adres van je modem.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## /etc/network/interfaces
auto lo
iface lo inet loopback

# Instellingen voor de Wi-Fi verbinding:
auto wlan0
iface wlan0 inet static
    address 192.168.178.2
    broadcast 192.168.178.255
    netmask 255.255.255.0
    gateway 192.168.178.1
    dns-nameservers 8.8.8.8 8.8.4.4
    wpa-ssid Naam-Van-Jouw-WiFi-Netwerk
    wpa-psk a897a679b6b987a665a765c786a8769f876a7856754765f67097d0987a96787d

# Instellingen voor de bedrade verbinding naar de omvormer (deze hoeven niet veranderd te worden):
auto eth0
iface eth0 inet static
    address 192.168.179.1
    network 192.168.179.0
    broadcast 192.168.179.255
    netmask 255.255.255.0



Om de omvormer een IP-adres te geven moeten we een DHCP-server instellen. Installeer 'isc-dhcp-server' om te beginnen. Open dan het bestand /etc/dhcp/dhcpd.conf en zet het volgende erin:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## /etc/dhcp/dhcpd.conf
option domain-name "example.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.179.255;
option routers 192.168.179.1;

subnet 192.168.179.0 netmask 255.255.255.0 {
  range 192.168.179.10 192.168.179.100;
}



Met alleen een IP-adres ben je er nog niet, de omvormer moet ook verbinding kunnen maken met het internet. Hiervoor is Network Address Translation (NAT) nodig, wat we instellen met 'iptables'. We stellen hiermee de logger in als router. Sla het onderstaande script op als /opt/scripts/se-nat.sh:

Bash:
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
## /opt/scripts/se-nat.sh
echo -e "\n\nLoading simple rc.firewall-iptables version $FWVER..\n"
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe

EXTIF="wlan0"
INTIF="eth0"
echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"

#======================================================================
#== No editing beyond this line is required for initial MASQ testing ==
echo -en "   loading modules: "
echo "  - Verifying that all kernel modules are ok"
$DEPMOD -a
echo "----------------------------------------------------------------------"
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "nf_conntrack, "
$MODPROBE nf_conntrack
echo -en "nf_conntrack_ftp, "
$MODPROBE nf_conntrack_ftp
echo -en "nf_conntrack_irc, "
$MODPROBE nf_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "nf_nat_ftp, "
$MODPROBE nf_nat_ftp
echo "----------------------------------------------------------------------"
echo -e "   Done loading modules.\n"
echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "   Clearing any existing rules and setting default policy.."

iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF

echo -e "\nrc.firewall-iptables v$FWVER done.\n"


Maak het script uitvoerbaar en test het ook even:
user@logger$  chmod a+x se-nat.sh
user@logger$  sudo sh se-nat.sh

Als hier geen errors uit naar voren komen werkt het.

Dit script moet automatisch worden uitgevoerd bij het opstarten van de logger. Dit kan door het bestand /etc/systemd/system/se-nat.service te maken, met de volgende inhoud:

code:
1
2
3
4
5
6
7
8
9
10
11
12
## /etc/systemd/system/se-nat.service
[Unit]
Description=This service sets up NAT for the SE side
After=network.target

[Service]
ExecStart=/bin/bash /opt/scripts/se-nat.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process

[Install]
WantedBy=multi-user.target


Vervolgens activeer je de service met het volgende commando:
user@logger$  sudo systemctl enable se-nat.service
user@logger$  sudo systemctl start se-nat.service

Om de logger te testen sluit je even een computer/laptop aan in plaats van de omvormer en draai je het volgende commando op de logger:
user@logger$  sudo tcpdump -c 25 -i eth0 tcp

Op de testcomputer open je dan een website, waarna je op de logger output moet zien verschijnen.


5. De logging software instellen

Nu het netwerk zo is ingesteld dat de omvormer kan worden afgeluisterd, kan begonnen worden met het instellen van de logging software. Hiervoor zijn grofweg drie opties: het project van user jbuehl op GitHub, mijn eigen solaredge-logger project, of het maken van een eigen brouwsel. Vanzelfsprekend zal ik hier de installatie van solaredge-logger bespreken, omdat ik daar het meest bekend mee ben.

Solaredge-logger is als volgt opgebouwd:
  • Met behulp van 'tcpdump' wordt de netwerkverbinding van de omvormer afgeluisterd, alle TCP communicatie wordt opgeslagen in PCAP bestanden. De solaredge-logger service wordt elke nacht herstart, zodat er van elke dag een apart PCAP bestand wordt gemaakt.
  • Het PCAP bestand wordt tegelijkertijd meegelezen door een script dat de gewenste data hieruit destilleert en opslaat in een eenvoudige MySQL database met een tabel voor omvormer data en een tabel voor optimizer data.
  • Een stand-alone PHP script dat de data van de omvormer-tabel uploadt naar PVOutput, wordt d.m.v. een cronjob elke 2 minuten uitgevoerd.
  • Los hiervan worden er twee scripts meegeleverd waarmee de beveiligingssleutel van de omvormer verkregen kan worden.
Volg onderstaande stappen om solaredge-logger te installeren:
  1. Om te beginnen kan de laatste versie gedownload worden van jerweb.nl/downloads/solaredge-logger. Het project staat ook op GitHub.
  2. Zorg dat de volgende pakketten zijn geïnstalleerd: mysql-server, python-mysqldb, python-crypto. Als je ook naar PVOutput wilt uploaden, komen daar nog bij: php-cli, php-mysql, php-curl. (Mocht je de melding krijgen dat deze php-pakketten niet bestaan, probeer dan php7- of php5- als prefix.)
  3. Maak een MySQL database aan met behulp van de SQL statements in 'database.txt'.
  4. Maak de directory '/opt/se-logger' en zet de bestanden 'liveupdate.py', 'pvo-upload.php' en 'se-logger-service.sh' erin.
  5. Open 'liveupdate.py' en vul de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan. Je vindt hier ook de plaats waar de beveiligingssleutel van de omvormer ingevuld moet worden. Als je omvormer nog niet aan het internet is verbonden, of CPU versie lager dan 3.x heeft, heb je de sleutel nog niet nodig. In sectie 6.1 staat meer informatie over hoe je deze kunt achterhalen wanneer je merkt dat er opeens geen data meer de database in gaat. Heeft je omvormer CPU versie 3.x of hoger én hangt hij al langer dan een paar uurtjes aan het internet? Kijk dan even naar sectie 6.2.
  6. (Optioneel, voor PVOutput updates) Open 'pvo-upload.php' en vul ook hierin de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan. Verder vul je hier ook de PVOutput API key en het System ID in, welke je kunt vinden op de Account Settings pagina van PVOutput. (Let op: Als je niet aan PVOutput hebt gedoneerd is de hoeveelheid status updates die tegelijk verzonden kunnen worden gelimiteerd tot 30. In dat geval moet je in pvo-upload.php de 'LIMIT 100' aanpassen naar 'LIMIT 30' om problemen te voorkomen.)
  7. Open 'se-logger-service.sh' en zorg dat in het SETTINGS gedeelte 'interface' verwijst naar de netwerkpoort waarop de omvormer is aangesloten. Als je sectie 4.1 hebt gevolgd is het waarschijnlijk 'eth1' of 'wlan0'; als je sectie 4.2 hebt gevolgd is het 'eth0'.
  8. Zet het bestand 'se-logger.service' in de '/etc/systemd/system' directory. Draai je Raspbian? Dan moet je de 'KillMode=' regel aanpassen naar 'KillMode=control-group'. Als je sectie 4.2 had gevolgd (logger via WiFi verbonden met het internet) is het aan te raden om /etc/systemd/system/se-nat.service aan te passen en de 'After=' regel te veranderen naar 'After=network.target se-logger.service'. Dit zorgt ervoor dat de omvormer pas toegang krijgt tot internet als de logger service draait.
  9. Vervolgens activeer je de service met het volgende commando:
    user@logger$  sudo systemctl enable se-logger.service
    user@logger$  sudo systemctl start se-logger.service
    
  10. We stellen cronjobs in die de service elke nacht herstarten en elke 2 minuten een update sturen naar PVOutput. Geef hiervoor het commando 'sudo crontab -e' en kopieer dan de inhoud van 'crontab.txt' welke bij de se-logger download inbegrepen was naar jouw crontab. (Als je geen PVOutput uploads wilt, moet je de regel waar 'pvo-upload.php' in staat weglaten.)
Geef de logger eventueel even een reboot. Hierna zou de logging software moeten draaien. Dit is te controleren door te kijken in /opt/se-logger. Hierin vind je de volgende output bestanden:
  • tcpdump.log: bevat de 'error' output van tcpdump. Hier hoort één regel in te staan met iets dat lijkt op: "tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes". Als er meer in staat is er mogelijk iets mis, of is de se-logger service gestopt.
  • liveupdate.log: bevat de 'error' output van liveupdate.py (het belangrijkste script van se-logger). Wat je hier NIET in wilt lezen is "End of file. Shutting down.", wat betekent dat de service is gestopt. Als je hier veel "Warning! Skipping (getal) mysterious bytes!" in tegen komt betekent dit vrijwel zeker dat je omvormer encryptie gebruikt en dat in het SETTINGS gedeelte van liveupdate.py niet de juiste sleutel is ingevuld. Kijk dan even in sectie 6.1.
  • solarege-20160924003000.pcap: bevat alle onderschepte communicatie van de omvormer. De getallen in de bestandsnaam geven de datum en tijd (jaar, maand, dag, uur, minuut, seconde) waarop de se-logger service werd gestart. Doordat de service elke nacht wordt herstart krijg je voor elke dag een aparte capture file. Je kunt deze bestanden openen in een programma als Wireshark. Tip: bewaar deze bestanden als back-up! Hierin zit alle data. Zelfs als je je database verliest kun je hem met deze bestanden weer helemaal vullen.
Wanneer je met een testcomputer in de plaats van de omvormer probeert op het internet te surfen zou je de 'solaredge-xxxx.pcap' file moeten zien groeien. Als dit werkt kun je (eindelijk!) de omvormer aansluiten.


6. De encryptiesleutel achterhalen

Bij solaredge-logger worden twee kleine Python scripts meegeleverd die helpen de encryptiesleutel te achterhalen. Net zoals solaredge-logger zelf, werken deze scripts met Python 2 en dus niet met Python 3.

6.1 De encryptiesleutel achterhalen uit PCAP capture bestanden
Zoals in sectie 2 al is uitgelegd, staat bij nieuw geïnstalleerde omvormers de encryptie standaard uit. Ergens in de eerste 48 uur dat de omvormer contact heeft met de servers van SolarEdge wordt de beveiligingssleutel uitgewisseld en direct daarna wordt de versleuteling aangezet. Als je solaredge-logger hebt opgezet vóórdat de encryptie werd aangezet, zit je encryptiesleutel ergens in de 'solaredge-xxx.pcap' bestanden in de /opt/se-logger directory verscholen. Bij solaredge-logger wordt een script 'find-key-in-pcap.py' meegeleverd, welke je kunt gebruiken om de sleutel op te zoeken in de PCAP bestanden die de se-logger service maakt. Dit kan met het commando:
user@logger$  python find-key-in-pcap.py /opt/se-logger/*.pcap

Als het script met succes je beveiligingssleutel weet te vinden wordt hij netjes getoond zodat je hem in liveupdate.py kunt zetten. Ga daarna te werk volgens sectie 6.3.

Als de sleutel niet kan worden gevonden, zul je waarschijnlijk via RS-232 de sleutel van de omvormer moeten opvragen (sectie 6.2). Ook kun je een 'factory reset' van de omvormer (een optie in het service menu) uitvoeren om de encryptie weer uit te zetten (dank @xces voor het proberen). Let wel: na een factory reset staat de productieteller weer op nul en moet de omvormer opnieuw gepaird worden met de optimizers.


6.2 De encryptiesleutel achterhalen via RS-232
Als je omvormer al encryptie gebruikte voordat je se-logger had ingesteld, of als om wat voor reden dan ook de encryptiesleutel toch niet in je PCAP bestanden terecht is gekomen, blijft er altijd nog een plan B. Bij solaredge-logger zit ook een script 'get-key-by-rs232.py', waarmee de sleutel rechtstreeks uit de omvormer uitgelezen kan worden. Hiervoor moet je een computer (dit hoeft niet per se de logger te zijn en kan ook prima op Windows) op de RS-232- of USB-aansluiting die aan de binnenkant van de omvormer zit aansluiten. In het SETTINGS gedeelte bovenaan het script vul je de naam van de seriële poort en (de eerste 8 tekens van) het serienummer van je omvormer in. Vervolgens voer je het script uit (met Python 2) en vertelt het je de encryptiesleutel. De werking van dit script is praktisch gegarandeerd (het is echt een heel simpel script), maar het aansluiten van de omvormer vereist wat extra kennis en bovendien moet hiervoor de kap van de omvormer verwijderd worden, wat sommigen als 'over de grens' kunnen ervaren. Probeer deze situatie dan liever te mijden als het nog niet te laat is!


6.3 De database bijwerken nadat je de encryptiesleutel hebt ingevoerd
Als de solaredge-logger service heeft staan draaien zonder dat je een encryptiesleutel had ingevuld in het SETTINGS gedeelte van 'liveupdate.py' terwijl de omvormer versleutelde gegevens verstuurde, is de versleutelde data niet in de MySQL database terecht gekomen. Met het volgende eenvoudige stappenplan kun je de database weer op orde maken.
  • Trek de netwerkkabel van de omvormer eruit om dataverlies te voorkomen
  • Stop de se-logger service met het commando:
    user@logger$  sudo service se-logger stop
  • Je kunt nu de database bijwerken met de versleutelde gegevens door het commando:
    user@logger$  python /opt/se-logger/liveupdate.py /opt/se-logger/*.pcap
    Dit kan in het begin heel wat 'duplicate key' warnings geven. Als het goed is eindigt dat met een bericht "Setting new 0503 key" waarna het script in relatieve stilte verder gaat. Er moet in ieder geval geen "Warning! Skipping (getal) mysterious bytes!" meer komen.
  • Als je PVOutput uploads had aan staan kun je maximaal 2 minuten later zien of de aanpassing is gelukt. Anders kun je eventueel in de database kijken of de data van vandaag er nu in staat.
  • Wanneer je hebt geconcludeerd dat dat goed is gegaan, start je de se-logger service weer met het commando:
    user@logger$  sudo service se-logger start

7. Tot slot

Zoals je waarschijnlijk wel hebt kunnen merken is het niet zo eenvoudig om een SolarEdge omvormer te loggen. Voel je vrij om in dit topic om hulp te vragen. Er zullen vast delen van deze startpost zijn die duidelijker moeten. Zeker voor mensen zonder ervaring met Linux zal het pittig zijn, maar samen kunnen we vast wel een mooi overzicht van leesvoer maken om de in de startpost gebruikte Linuxdingen toe te lichten. Wat dat betreft is dit topic net zo "under construction" als het project zelf!

Met dank aan Tweaker Aegle voor het meetesten van deze software en GitHub-gebruikers jbuehl en Whizkidzz voor hun onmisbare werk om het SolarEdge protocol te ontcijferen.

Jerrythafast wijzigde deze reactie 10-08-2019 09:56 (200%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


Acties:
  • +1Henk 'm!
  • Pinned

  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09

Je eigen monitoring website

@andrerij heeft op basis van het solaredge-logger project een monitoring website gebouwd. Hij heeft zijn project gedeeld in deze post, inclusief instructies voor hoe je het voor je eigen SolarEdge systeem kunt installeren.




Heb jij ook een monitoring website gebouwd die je hier wilt delen? Post 'm gerust in dit topic!

Jerrythafast wijzigde deze reactie 11-03-2018 08:24 (113%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


Acties:
  • 0Henk 'm!
  • Pinned

  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
In deze post zal ik vragen uit dit topic die regelmatig terugkomen proberen te verzamelen, zodat de antwoorden in het vervolg gemakkelijker terug te vinden zijn.


Veelgestelde vragen

De waarde voor 'e_day' in de database klopt niet
Dat klopt, dit is een bugje in de firmware van SolarEdge. Je kunt de correcte waarde zelf berekenen door alle 'de_day' waardes van die dag tot op dat moment bij elkaar op te tellen. De monitoring website van SolarEdge lijkt het ook op die manier te doen.

Het stoppen/herstarten van se-logger gaat niet goed; het oude .pcap bestand blijft groeien
In het bestand '/etc/systemd/system/se-logger.service' kun je proberen de 'KillMode=' regel aan te passen naar 'KillMode=control-group'. Dit is in ieder geval nodig op Raspbian; als je een ander OS draait op jouw logger kan het misschien ook helpen. In dat geval wordt het gewaardeerd als je even een bericht in dit topic plaatst met welk OS je draait en of het probleem hiermee is opgelost of niet O-)

Ik kan de encryptiesleutel niet uitlezen met get-key-by-rs232.py
Krijg je de foutmelding "TypeError: ord() expected string of length 1, but int found"? Dan draai je het script met de verkeerde Python-versie: je moet het runnen met Python 2, niet Python 3.

Mijn database heeft er even uit gelegen en nu mis ik data in de database
Je kunt de stappen in sectie 6.3 in de openingspost volgen om ervoor te zorgen dat alle data die in .pcap bestanden ligt opgeslagen in de database wordt geplaatst. Dus zolang je van de bewuste tijdspanne nog wel de .pcap bestanden hebt, kun je altijd de database weer compleet maken. Vanwege de gebruikte encryptie is het soms nodig om het .pcap bestand van de dag ervoor ook mee te nemen (de benodigde encryptiesleutel kan in dat bestand staan). Ook vanwege de encryptie kan het nodig zijn om de omvormer pas na een kwartier weer met de netwerkkabel te verbinden (hij zal dan een nieuwe sleutel beginnen gebruiken die se-logger gelijk oppikt).
Als je de PVOutput upload gebruikt, kijk dan ook even naar het volgende...

Er mist data op PVOutput die wel in mijn database staat
Heb je (al dan niet per ongeluk) data van PVOutput verwijderd, of is er door een andere oorzaak een gat in de gegevens ontstaan, dan kun je het PVOutput upload script een stukje terug in de tijd zetten om deze data opnieuw te uploaden (mits het wel in je database staat natuurlijk). Log hiervoor in op de database en draai de volgende SQL-query (waarbij je het tijdstip liefst iets vóór het gat in de data zet, bijvoorbeeld het begin van de betreffende dag):

MySQL:
1
UPDATE live_update SET pvo_last_live = UNIX_TIMESTAMP("2019-04-29 04:00:00");


Hierna gaat het upload script vanzelf verder vanaf het aangegeven tijdstip.

Jerrythafast wijzigde deze reactie 01-05-2019 10:22 (177%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
JeroenTheStig schreef op maandag 26 september 2016 @ 22:15:
Complimenten voor de TS! Ik zal binnenkort kijken of ik met bovenstaande omschrijving de key kan achterhalen. Dit kan ook een leuk subproject worden van mijn domoticaproject, wat zich momenteel nog in de orienterende fase bevindt :)

Ik heb vorig jaar overigens nog wat geprutst met de destijds onversleutelde data, echter was op dat moment het protocol nog niet helemaal ontcijferd. Ik begrijp dat dit inmiddels geheel onder controle is?
De werking van het protocol is inmiddels volledig ontcijferd. Er zitten wel nog wat vraagtekens in de data zelf, en niet van alle commando's is exact bekend wat ze nou doen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ocaj schreef op maandag 26 september 2016 @ 23:19:
@Jerrythafast: Mooie openingspost, uitleg ziet er prima uit!


[...]


Zelf heb ik er voor gekozen om mijn omvormers niet aan de solaredge-portal te koppelen, maar voor een volledige stand-alone oplossing te gaan. Voor mij was dat geen nadeel, maar een feature :)

Ik heb mijn omvormers (2 stuks) via RS485 aangesloten die middels een RS485-USB converter aan een Raspberry Pi ("logger") hangen. Daarop heb ik de scripts van jbuehl draaien.
De (json)-output die daaruit komt schrijf ik ook in een database.

Mochten mensen over een dergelijke opstelling vragen hebben dan wil ik die met alle plezier in dit topic beantwoorden.
Hier hoopte ik al een beetje op >:)
quote:
Om gelijk wat toe te lichten: Je geeft als voordeel aan dat de uitleesfrequentie omhoog kan bij serieel uitlezen. Mogelijk kan dat via RS232, maar via RS485 heb je daar niet veel over te zeggen. RS485 werkt volgens een bus-principe waarop er 1 apparaat zich als "Master" gedraagt en de rest is "Slave". Op RS485 mag maar 1 apparaat tegelijk communiceren, dat wordt geregeld door de Master.

Je configureert dan alle omvormers als Slave en de logger gedraagt zich als Master. De Master geeft bij toerbeurt elke omvormer de kans om wat te zeggen, maar heel vaak zegt de omvormer alleen terug dat hij niks te melden heeft. De omvormer zegt pas wat terug als hij zelf weer nieuwe data heeft.

Omvormer-data komt precies elke 5 minuten.
Optimizer-data komt op minder vaste tijdstippen. Ik heb er nog geen patroon in kunnen ontdekken, maar soms komt die vaker, soms ook minder vaak dan 5 minuten. Ik vermoed (heb het nog niet naast elkaar bekeken) dat zodra je de data op het telemetry-schermpje van de omvormer langs ziet komen, dat de omvormer hem vervolgens ook via RS485 ontsluit. Ook op het telemtry-schermpje zie je sommige optimizers zich vaker melden dan andere, mogelijk afhankelijk van de schommelingen in de productie (varieert grofweg tussen de 80 en 140 entries per optimizer per dag).
Vaker dan eens per 5 minuten kan wel degelijk. Als de servers van SolarEdge niet meekijken kun je ongestraft aan ongedocumenteerde instellingen rotzooien. Zoals MERCURY_PARAM_TELEM_AVG_TIME_SEC. Dit is (vermoedelijk, dit is nog niet getest) een parameter van de optimizers, dus hiermee zou je de monitoring op paneelniveau kunnen opschroeven naar eens per x seconden.
quote:
Omdat de omvormer - net als bij ethernet - zelf bijhoudt welke data al gerapporteerd zijn aan de portal kan hij maar naar 1 apparaat loggen, dus OF ethernet, OF RS485. Je kunt dat instellen in het menu van de omvormer.
Als hij op beide zou kunnen loggen zou hij ook per data moeten bijhouden wat er al gerapporteerd is, dat is blijkbaar te ingewikkeld.

Overigens blijft de omvormer dezelfde data rapporteren totdat hij een bevestiging ontvangen heeft dat het bericht goed aangekomen is. Dat is zowel over ethernet als over RS485 zo. Wel fijn dus dat er op applicatie-niveau een acknowledge is ingebouwd, zodat de kans dat je data kwijt raakt erg klein is.
Het protocol is inderdaad heerlijk robuust, als ik aan mijn logger ga prutsen trek ik gewoon de Ethernet kabel eruit wetende dat de omvormer de data wel zal bewaren totdat er weer verbinding is.
quote:
De omvormer heeft een geheugen van max. 30 dagen, alhoewel ik over de eerste maand veel minder optimizer-data heb dan over latere dagen, dus mogelijk dat de omvormer nog detail-data van meer dan een paar dagen oud weggooit of samenvoegt om ruimte te besparen. Inmiddels lopen mijn scripts 24/7 (nou ja, eigenlijk van 5:00-22:00), dus als het eenmaal draait, dan is de opslagcapaciteit van de omvormer geen issue meer.
Interessant! Jammer dat dit niet te testen is zonder dataverlies :9
quote:
Aegle schreef op dinsdag 27 september 2016 @ 08:16:
De RS232 aansluiting geeft realtime data uit. Zodra je de Inverter configuration Tool verbind, zie je de data van het display nagenoeg op hetzelfde moment in de tool verschijnen. Hier wordt de data dus veel frequenter uitgezonden (ong. 1 x per seconde) dan de vijf minuten via de RS485- of Ethernet poort.
Voor grafieken niet zo boeiend. Voor realtime wijzertjes op je web pagina of app zou het wel een mooie feature zijn :) .

Verder weer de complimenten aan Jerry. Niet alleen voor de ontwikkeling, maar ook zijn wijze van uitleggen verdient een dikke thumbs-up _/-\o_ !

EDIT: Via de SE-Portal is het display ook op te roepen. Dit geeft met een vertraging van ongeveer een halve minuut de realtime data van het display weer. via de ethernet poort dus. Zal wel een een of andere GET call zijn. die vanuit de portal wordt aangeroepen. Dit houdt dus in dat je actief data uit de ethernet poort kan trekken...

[afbeelding]

EDIT 2:
Maar laten we ons hier concentreren op de logging zoals door Jerry is beschreven ;)
Klopt! Er bestaat een commando READ_LCD waarmee je exact de tekst op het scherm van de omvormer krijgt. Als je via RS-232 of RS-485 bent verbonden kun je dat commando spammen om absurd realtime metertjes te maken :9~ (Wederom, dit is niet getest. Ik heb zelf mijn omvormer sowieso nooit anders dan via Ethernet verbonden.)

Jerrythafast wijzigde deze reactie 27-09-2016 20:46 (15%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Mocht je de pcap files nog hebben, dan kun je veilig je hele database eruit gooien en opnieuw opbouwen met het commando
python liveupdate.py solaredge-*.pcap


Mijn RPi2 draait ook headless, maar dan dus Ubuntu Server 16.04.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Ik haal deze discussie in het algemene Datalogging topic even hierheen.
quote:
Aegle schreef op zaterdag 15 oktober 2016 @ 23:53:
[...]


Ik heb blijkbaar de server gekilled(?). Liveupdate.log gaf de volgende melding:
code:
1
2
3
4
5
6
7
8
9
10
Reading from -
Traceback (most recent call last):
File "/opt/se-logger/liveupdate.py", line 399, in <module>
telem)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Exception AttributeError: "'NoneType' object has no attribute 'error'" in <generator object g$

Bleek dat mysql was gestopt :? . Nu draait weer. Eens kijken of ik de .pcap kan retrieven. Tezamen met het wegvallen van de SE-portal wordt nog wel wat uitzoekwerk. Er staan nu drie .pcpaps van vandaag...
Vanavond geen tijd gehad. Morgen maar eens verder kijken.
Even de LAN-kabel naar de omvormer eruit trekken. Dan:
user@logger$  sudo service se-logger stop
user@logger$  python /opt/se-logger/liveupdate.py /opt/se-logger/solaredge-20161015??????.pcap
user@logger$  sudo service se-logger start

En dan de kabel er weer in. (De vraagtekens in het tweede commando letterlijk overnemen, hiermee gaat hij gewoon alle drie de pcaps van gisteren opnieuw inlezen. Van alle data die al in de database stond ga je een duplicate key warning krijgen, dat geeft niks.)

Om PVOutput weer compleet te krijgen, op je logger de volgende MySQL query uitvoeren:
SQL:
1
UPDATE live_update SET pvo_last_live = UNIX_TIMESTAMP("2016-10-15");

De PVOutput uploader begint dan gewoon weer bij het begin van gisteren te uploaden.
quote:
Aegle schreef op zaterdag 15 oktober 2016 @ 23:53:
Het zou fraai zijn als we de SE-server zouden kunnen emuleren. Dan werkt het geheel onafhankelijk van SE.
Het emuleren van de SE server zou nog niet eens zo moeilijk moeten zijn, het enige wat die hoeft te doen is data van de omvormer ontvangen en af en toe de juiste tijd door te geven. Dit zijn eigenlijk de enige commando's die de omvormer op eigen initiatief stuurt.

Het lastige is dat je, als je de monitoring portal van SE ook wilt kunnen gebruiken, ook de omvormer moet emuleren. Dus als de 'echte' SE server iets van de omvormer vraagt, moet de logging software daar een antwoord op kunnen geven. Je zou natuurlijk de vraag kunnen doorsturen naar de omvormer en dan het ontvangen antwoord weer doorsturen naar de server, maar als er een keer een firmware update, reset commando, of iets anders 'geks' dat je niet verwacht en waarvan we nu het bestaan nog niet weten voorbij komt is het maar de vraag of de logging software er dan niet uit klapt.

Dat gezegd hebbende, de software van jbuehl op Github heeft wel een optie om als SE server op te treden. Ik weet niet of die ook de monitoring portal nog up to date kan houden. (Zo niet, dan is het eigenlijk veel simpeler op te zetten om RS485 logging te gebruiken. Dat geeft hetzelfde resultaat.)

Jerrythafast wijzigde deze reactie 16-10-2016 09:59 (31%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Haha, dat is inderdaad wel écht last minute! Laat het maar weten als je ergens op vast loopt ;)

De omvormer onthoudt trouwens de telemetriegegevens nog wel een tijdje, dus als je het werkend hebt kun je alsnog vanaf het begin de opbrengst loggen. Hoe lang de gegevens behouden blijven hangt af van hoeveel optimizers je hebt:
quote:
ApC_IcE schreef op woensdag 02 november 2016 @ 09:11:
Gevonden:
SolarEdge inverter is capable of storing data for a period of time that is relative to the number of PowerBoxes used in the layout (per inverter). Estimation to the maximum retention time can be carried out as follows:
Number of Days Stored ≈ 700/Number of modules per inverter
Here are a few examples:
If storage space is used up and connection to the monitoring server was not yet made, the inverter will either cease storing data (inverter CPU version 1.xxx) or overwrite out of date data in favor of recent one (inverter CPU version 2.xxx).
Data not transmitted yet is stored locally and can be viewed with SolarEdge configuration tool by connecting a computer to the inverter. This action does not change or stop data storage.
Number of PowerBoxes
Approximate Retention time
12 modules = 2 months
24 modules = 1 month
50 modules = 2 weeks

Ik neem aan dat ze optimizers bedoelen.

Bron:

http://www.solaredge.com/...ring_and_sending_data.pdf

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ApC_IcE schreef op vrijdag 04 november 2016 @ 09:03:
[...]


Ik dacht al, waarom krijg ik een melding van een quote in een voor mij onbekend topic ;)
_/-\o_
Ik had de informatie in je post hier even nodig :9 :>

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op zondag 06 november 2016 @ 20:16:
Dank voor die info. 700/10=70 dagen, zou goed moeten komen.

Ik heb even zitten dubben of ik de omvormer helemaal los zou houden van de Solar Edge server en de originele firmware erop zou laten. Ik heb met de configuratietool wat zitten rondneuzen in de omvormer, maar de info daar lijkt wat karig. Het lijstje van optimizers is bij mij helemaal leeg, dus valt er ook geen opgeslagen data op te roepen. Toch zijn er 10 aangesloten (wat het display wel rapporteert). Helaas heb ik van de installateurs niet de info (streepjescodes bijv) van de optimizers gekregen, zodat ik ze niet zelf alsnog makkelijk kan invoeren. Hoe was dat bij jullie? Of voeren ze dat als installateur in op de Solar Edge site?

Al met al ben ik dan toch nieuwsgierig naar de Solar Edge monitoring site (misschien dat ik daar meer info vind), dus dan toch maar even aansluiten. Dus ik richt nu even een RPi3 in met jouw methode. Mooi uitgeschreven, ik hoef bijna niet zelf na te denken (met gevaar op luiheid :z ). Even een detail dat ik tegenkwam: je schrijft het commando systemctl (in methode 4.2):

user@logger$  sudo systemctl --now enable se-nat


met de optie ' --now'. Het lijkt erop dat deze extra optie niet bestaat bij de systemctl van Raspbian. Ook heb je in het voorbeeld de service ' se-logger' (eerste regel) genoemd ipv ' se-nat' (maar ik zie nu dat er twee services moeten komen se-nat en se-logger). Ik neem aan dat dezelfde actie dan uitgevoerd kan worden met

user@logger$  sudo systemctl enable se-nat ; sudo systemctl start se-nat


Nu even een extra patchkabeltje vinden om de logger te testen met m'n laptop (wat een heerlijk puzzelklusje op de zondagavond :) ).

Update: het loggen is begonnen! :) De telemetry_optimizers tabel vult zich. Morgen ga ik die eens rustig bekijken. Nogmaals bedankt voor het delen van dit puik stukje werk!
Helemaal goed :) De '--now enable' optie zou inderdaad de service moeten enablen en direct starten.

Nu je data in je database krijgt kun je de serienummers van je optimizers eenvoudig achterhalen met
SQL:
1
SELECT HEX(op_id) FROM telemetry_optimizers GROUP BY op_id;

Dan moet je alleen nog even uitzoeken welke waar ligt :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op maandag 07 november 2016 @ 21:21:
hier:
https://github.com/Whizkidzz/Solaredge

Ik heb inmiddels antwoord op mijn vraag over de optimizers: vanmiddag kreeg ik per mail een pak informatie van mijn installateur inclusief een foto van de QR-codes van de optimizers. Tevens hebben zij de monitoring site bij SE ingericht. Helaas klopt de oriëntatie van mijn dak niet, maar dat valt als consument niet aan te passen.

Ik ben blij het zelf in de hand te kunnen hebben met het data-sniffen. Ik zag de optimizer-ids inderdaad voorbij komen in de database. Hebben jullie al wel eens de optimizers bij elkaar opgeteld en gecheckt of deze in de buurt liggen van het totaal van de omvormer? Ben daar wel benieuwd naar. Netals of de SE-info overeenkomt met de hoogte van pieken en dalen uit onze slimme meter.

De communicatie is inmiddels ge-encrypted. Binnen 24 uur na inpluggen dus. De key kon prima gevonden worden in de pcap-files.
De cumulatieve energie van de panelen bij elkaar opgeteld is iets hoger dan het totaal van de omvormer. Wij zitten hier nu op 99,1% 'efficiency' of hoe je het wilt noemen.

Mooi dat het allemaal volgens verwachting verloopt :Y Jij bent toch een beetje het proefkonijn van dit topic nu, als zijnde de eerste die zonder bemoeienis van mijn kant de boel installeert :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op maandag 07 november 2016 @ 21:55:
:) Haha, mooi. Ik vind het geen probleem proefkonijn te spelen.

Ik heb meteen nog wel een vraag. Gisteravond en vandaag vulde de optimimertabel zich meteen en prima, maar de inverter-tabel blijft tot nog toe leeg. Enig idee of dit normaal is of duidt op een foutje ergens?
Heb je toevallig een 3-fasen omvormer? If not, wat is je CPU version? Ik vermoed dat je een omvormer of versie hebt die net iets meer data meestuurt dan die ik tot nu toe heb gezien. Als dat zo is zou je me kunnen helpen jou te helpen door een PCAP file (liefst een unencrypted exemplaar) toe te sturen. Dan heb ik snel genoeg een nieuwe versie van solaredge-logger paraat die er wat mee kan :)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op dinsdag 08 november 2016 @ 21:00:
[...]


Het is een 1-fasen omvormer. CPU version 3.1818. Ik denk dat dit nog een unencrypted file is:

pcap-file

Ik ben benieuwd wat er nog meer te vinden is. Of verwacht jouw code op dit moment een vast rijtje met gegevens van de inverter en wanneer dit langer is geworden, skipt hij het?
Hij verwacht nu 124 of 174 bytes aan 1-fase-omvormer-data. Als het meer of minder is, of geen 1-fase omvormer, negeert hij het. Dit heb ik zo gedaan om te voorkomen dat er random crap in je database komt.

De PCAP file die je deelde bevat trouwens ook de switch waarbij encryptie werd ingeschakeld. :9 Ik ga even kijken wat jouw omvormer nog meer te vertellen heeft. Hij stuurt inderdaad een paar bytes extra.

Als ik de nieuwe versie klaar heb kun je daarmee trouwens gewoon de PCAP files van de afgelopen dagen opnieuw laten parsen om de data in je database te krijgen ;)


EDIT:
solaredge-logger v0.0.6
Het gedeelte van de data wat ik had ontcijferd en in de database bewaar is hetzelfde bij jouw versie, hij zendt alleen nog wat meer. Simpele fix was dus gewoon om de langere data te accepteren :)

Update instructie: volg paragraaf 6.3 van de OP. Nadat je de service hebt gestopt kun je liveupdate.py van versie 0.0.6 overnemen en daarmee de database aanvullen (vergeet je settings niet aan te passen in het script :9 )

Jerrythafast wijzigde deze reactie 08-11-2016 21:59 (19%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op dinsdag 08 november 2016 @ 22:15:
check. dat was een snelle fix :). Ik druk de pcaps er nog een keer doorheen.

Edit: interessante waarneming bij deze pcap

Reading from solaredge-20161106204009.pcap:
liveupdate.py:399: Warning: Out of range value for column 'temperature' at row 1
  telem)


Verder wat mysterious bytes in latere pcaps, maar ik heb de stekker er ook even uit gehad, denk ik. De invertertabel is nu mooi gevuld. Tijd om te grasduinen. :P

Edit 2: Ik denk dat er nog een bytje verschoven moet worden bij mij, want de temperatuur komt in de tabel uit op 150.000-200.000. Wat is een normale temperatuur van de omvormer? Met een factor 8192 (2^13) kom ik op een range van 20-36 grC.
Ehmm.. de out of range values kan ik verklaren. Jouw omvormer blijkt de minimale 32-bit float waarde te sturen als de temperatuur-data niet beschikbaar is. Python converteert die tussendoor naar 64-bits waarbij hij nog net een klein beetje lager wordt. Is nog een kleine fix voor nodig om deze te weren.

Wat ik niet kan verklaren is dat je temperatuur in de range 150.000-200.000 °C in je database aantreft... zijn alle waardes in die range? In de PCAP file zijn ze inderdaad rond de 20-30 °C. Bijvoorbeeld 2016-11-06 11:00:00 UTC was 26.8468 °C.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op woensdag 09 november 2016 @ 20:16:
Deze melding
code:
1
2
3
4
5
pi@rpi2-solarlogger:/opt/se-logger $ cat liveupdate.log
Reading from -
/opt/se-logger/liveupdate.py:399: Warning: Out of range value for column 'p_reactive' at row 1
  telem)
pi@rpi2-solarlogger:/opt/se-logger $

staat bij mij ook elke dag weer in liveupdate.log. Ik trek me daar verder niks van aan. De database word gewoon gevuld :) .

PS: hoe krijgen jullie hier die geciteerde code zo mooi in een zwart kader...?
Dat zal inderdaad eenzelfde probleem zijn. Ik zal voor de volgende versie eens kijken of ik het heen en weer converteren van 32-bit naar 64-bit float en terug eenvoudig kan verhinderen.

Dit soort zwart-witte vlakken maak je met [cmd]...[/cmd]

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
rense schreef op donderdag 10 november 2016 @ 12:54:
@Jerrythafast Ik heb je code er nog op doorgeplozen, maar wat doet je script met de pcap-files waardoor hun 'modification time' steeds wordt aangepast (ook van de oudere)? Is readonly lezen niet voldoende voor het script?
De modification time wordt door mijn scripts niet aangepast. Op het laagste niveau (se-logger-service.sh) is het PCAP bestand het output argument van het programma 'tee'. Dat programma past de modification time aan als er nieuwe data in wordt geschreven. Daarna zou de modification time niet meer moeten veranderen. Als dit wel het geval is is er een ander programma dat er blijkbaar aan zit te morrelen.
quote:
Yoki1985 schreef op donderdag 10 november 2016 @ 14:34:
Ik heb sinds juni van dit jaar ook een Solaredge opstelling draaien. Deze hangt dus al een paar maanden aan het internet. Als ik het goed begrijp is het niet meer mogelijk om deze uit te lezen (ja via seriële verbinding is het mogelijk, maar ik had graag de upload naar het SE platform behouden)
Het is nog steeds mogelijk hoor. Je zult alleen je omvormer open moeten schroeven en even via USB of RS-232 aan een computer moeten hangen om de encryptie sleutel uit te lezen. Zie paragraaf 6.2: 'De encryptiesleutel achterhalen via RS-232'.

Hiervoor heb je het project van jbuehl dat rense hierboven linkt helemaal niet nodig. Bij solaredge-logger zit een heel simpel scriptje dat je hiervoor kunt gebruiken. Dit werkt zelfs nog op Windows. Je moet in het script even het serienummer van je omvormer en de naam van de seriële poort (COM-poort op Windows) invullen in het SETTINGS gedeelte en dan is het simpelweg:
python get-key-by-rs232.py

Het script roept dan "Your key is: '....'". Die key vul je in in liveupdate.py en klaar is Kees :)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Corn schreef op zaterdag 19 november 2016 @ 23:55:
Goed werk Jerrythafast! Ik heb zojuist de key eruit gepeuterd met Serial over USB en heb de boel geinstalleerd. Ik zie veel van deze voorbij komen:
code:
1
2
3
4
Warning! Got 103 mysterious bytes left! (state=0)
f6 79 72 da a0 4e 03 6a 64 1b 82 5a 63 64 3e 2b 3b 78 3e d3 1b 2b ba dd 66 21 5a 40 a6 5b 16 43 98 46 ad ff 63 27 20 c3 5f 04 60 ea 38 ad 87 52 65 7a 01 03 ae c1 e9 2e 28 fd 84 b4 4a 9d 97 f5 6e e7 83 2e 94 57 1e b7 70 45 c3 35 60 4b c0 82 93 e3 59 5c a8 dd 3b f0 29 a0 67 dc da 8b 83 14 e9 5b 41 72 a4 ed 8a
Warning! Got 22 mysterious bytes left! (state=0)
02 44 0d 8d 58 e8 b2 de 8c 52 4e 46 f8 93 ac a7 ef 3d da 97 27 50

Heb 'm nog niet overdag gechecked, dus optimizer data komt er iig niet voorbij. Is het script op dit moment compatible met 3-fase omvormers? Ik heb een SE5k....
Erm, ik vrees van niet eerlijk gezegd, jij hebt de primeur ;) Ik weet dat de 3-fase omvormers meer data versturen (diverse zaken aan de AC-kant zijn dan immers in drievoud) dus er zal sowieso iets voor moeten worden aangepast. Ik denk dat ik ook even een 3-fase inverter_telemetry database tabel moet bijmaken.

Zou ik van jou een PCAP capture bestandje mogen hebben (die is gemaakt met licht op de panelen) en de sleutel waarmee je omvormer zijn data scramblet? Dan kan ik even kijken wat voor telemetrie we eruit kunnen halen ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Corn schreef op zondag 20 november 2016 @ 11:01:
[...]


Cool! Ondertussen is er optimizer data gelogged, dat lijkt in ieder geval goed te werken.

Misschien interessant voor andere tweakerts die Jerry's systeem gaan gebruiken, ik heb gekozen voor een andere 'aansluitmethode'. Ik heb een ESXi box waar gevirtualiseerd alles in draait, ook m'n router (pfSense). Ik heb ik een VM met se-logger gestart en aangesloten op het VLAN waar ook de SolarEdge inverter op zit. Vervolgens voor dat VLAN promiscuous mode enabled, zodat de se-logger VM deze data rechtstreeks op kan pikken.

[afbeelding]

Omdat er wat meer IoT devices op zitten die ook allemaal hun data uitspuigen op hetzelfde VLAN, heb ik een kleine aanpassing in se-logger-service gemaakt:
code:
1
/usr/bin/stdbuf -i0 -o0 -e0 /usr/sbin/tcpdump -i $INTERFACE -U -w - -n host 10.0.15.8 2>> ${CAPTDIR}tcpdump.log | \

IP van m'n omvormer is 10.0.15.8 in dit geval. (Je zou 't ook mooi configurable kunnen maken met een variabele, maar ik ben onwijs lui.)

Hierdoor wordt alleen de relevante data opgeslagen in de PCAP, en loopt ie niet vol met MQTT-onzin van m'n wifi temperatuur loggers e.d.

Wie weet heeft iemand er wat aan ;)

Ik PM je zo met de pcap en key!
Wauw, gave set-up! Je had ook je FILTER variabele in se-logger-service.sh op '-n host 10.0.15.8.2 tcp' kunnen zetten ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Ik wil het enthousiasme niet temperen, maar toch een kleine disclaimer: solaredge-logger v0.0.7 (welke sinds gisteravond online staat) ondersteunt wel het uitlezen van 3-fase omvormers, maar niet het uploaden van 3-fase omvormerdata naar PVOutput. Hier moet ik nog even aan rommelen.
quote:
Pietjebel10 schreef op maandag 21 november 2016 @ 19:58:
Mijn petje af , ook maar eens de Raspberry in elkaar gesleuteld, loopt als een zonnetje, ben nu even aan het stoeien met de mysql en de gegevens, lukt aardig alleen de timestamp blijft soms moeilijk mee te rekenen maar gaat goed. Werk hier met de SE3000, wanneer het mij aanstaat zal ik het hier publiceren,
Keep up the great work , mijn dank is groot
Voor de timestamps zijn in MySQL UNIX_TIMESTAMP(date) en FROM_UNIXTIME(unix_timestamp) erg handig.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op woensdag 23 november 2016 @ 22:08:
Als voorbereiding op mijn installatie ook maar eens aan de slag gegaan.

Voor de installatie procedure heb ik mogelijk een toevoeging. Ik heb het volgende in se-logger-service.sh toegevoegd
code:
1
2
3
4
5
6
7
#wait for mysql to come alive

while true; do
    response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
    echo "$response" | grep -q "mysqld is alive" && break
    sleep 1
done

Ik had het probleem dat de liveupdate.log een error liet zien ivm het feit dat mysql nog niet klaar was.

Het kan zijn dat er betere oplossingen zijn maar het werkt.

Nu alleen wachten op de omvormer en kijken of de pcap files goed verwerkt worden.

Ik vond je website voorbeeld er al heel aardig uit zien.
Dank voor je aanvulling. Ben er zelf nooit tegenaan gelopen dat solaredge-logger startte vóór mysqld. Als dit inderdaad een issue is kun je het beste de .service file aanpassen zodat de service niet start zonder mysqld.
quote:
Aegle schreef op donderdag 24 november 2016 @ 15:22:
[...]

Bedoel je onderstaande error? Die krijg ik heel af en toe op het moment dat de omvormer ontwaakt. waarom dit op onwillekeurige momenten gebeurd ben ik nog niet achter.
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' in /opt/se-logger/pvo-upload.php:16
Stack trace:
#0 /opt/se-logger/pvo-upload.php(16): PDO->__construct('mysql:host=loca...', 'root', '[your_password]', Array)
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 16
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'solaredge.telemetry_inverter' doesn't exist' in /opt/se-logger/pvo-upload.php:32
Stack trace:
#0 /opt/se-logger/pvo-upload.php(32): PDO->query('SELECT timestam...')
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 32
Dat is dan toch een ander probleem, want die error komt uit pvo-upload.php wat los staat van de se-logger service waar tinka problemen mee ondervond. Deze error kan ik echt niet verklaren, het lijkt wel of je mysql server opeens weg is :? Ik heb hier in 9 maanden tijd trouwens nog nooit een mysql-gerelateerde error in mijn pvo-upload.log gehad. Het enige wat ik daarin kan terugvinden is network outage en PVOutput downtime.
quote:
Corn schreef op donderdag 24 november 2016 @ 19:59:
It verks! Stats:

[afbeelding]

Toegegeven; dit zou ook gewerkt hebben met de standaard API. Maar deze grafiekjes zijn geproduceerd zonder tussenkomst van de portal!
Gaaaf! :9~

Jerrythafast wijzigde deze reactie 24-11-2016 22:28 (6%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Hmm, ik denk dat ik liveupdate.py wat robuuster moet maken wat betreft de database connectie. Schijnbaar gaat dat bij jullie toch niet altijd goed :s

Ter informatie, ik draai MySQL Server 5.7.16 en MySQLdb versie 1.3.7. De MySQL server draait bij mij op dezelfde RPi die ook solaredge-logger draait.

jerry@logger:~$ mysqld --version
mysqld  Ver 5.7.16-0ubuntu0.16.04.1 for Linux on armv7l ((Ubuntu))
jerry@logger:~$ python -c "from MySQLdb import __version__; print __version__"
1.3.7

Jerrythafast wijzigde deze reactie 02-12-2016 12:20 (9%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Quinie schreef op vrijdag 2 december 2016 @ 12:43:
sla het script op als se-nat.sh...
test nat.sh
zou moeten zijn test se-nat.sh
Fixed, dankjewel :)
quote:
activeer de service...
sudo systemctl --no-wall enable se-logger (denk ik)
Hmm, mijn systemctl heeft geen --no-wall optie, het was echt --now. Is dat zo speciaal dat ik die heb? :?

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Quinie schreef op vrijdag 2 december 2016 @ 15:24:
Hier in ieder geval niet.
http://www.ebugg-i.com/te...temctl-linux-command.html

op andere sites zie ik hem wel voorbij komen. Mijn PI kent het niet.
Maar ik begrijp een enable en start voldoet ook ?

ps. zat nog een foutje in de zin sudo systemctl se-nat = se-logger (denk ik)
Jep, bij Ubuntu 16.04 heb ik een --now optie, welke enable en start in één commando mogelijk maakt. Ik heb het nu in de OP aangepast naar twee losse commando's.

De systemctl regel moest wel se-nat zijn, maar de NAT service file moest natuurlijk niet se-logger.service maar se-nat.service heten. Dat heb ik wel even gefixt in de tekst.
quote:
Aegle schreef op vrijdag 2 december 2016 @ 17:04:
[...]


Dit zijn de versies die op mijn RPi2 draaien. Ook hier draait de logging software op dezelfde RPi als de database server. De RPi is dedicated voor de logging. Ik heb als OS Debian Jessie Lite geinstalleerd.
mysql  Ver 14.14 Distrib 5.5.52, for debian-linux-gnu (armv7l) using readline 6.3
mysqld  Ver 5.5.52-0+deb8u1 for debian-linux-gnu on armv7l ((Raspbian))
root@rpi2-solarlogger:/opt/se-logger# python -c "from MySQLdb import __version__; print __version__"
1.2.3
root@rpi2-solarlogger:/opt/se-logger#

Ik krijg er geen vinger achter onder welke omstandigheden de fout zich voor doet. Het is willekeurig. Soms een paar dagen achter elkaar, soms weer een week niet.
Het is ook iets van pakweg sinds een maand of twee. Daarvoor nergens last van...

Ik gebruik
code:
1
service se-logger stop

en
code:
1
service se-logger start

om de logging te stoppen en te starten.
Je start/stop code is prima. Jouw versies zijn wel wat ouder, dat maakt het voor mij erg makkelijk om daar de oorzaak in te zoeken >:) Als je mysql-server en python-mysqldb met apt niet geupdatet krijgt kun je eventueel python-mysqldb removen en via pip de nieuwste installeren:
user@logger$  pip install mysqlclient


Ik zal dit weekend even kijken wat er voor nodig is om hem wat minder gevoelig voor database failures te maken.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Quinie schreef op zaterdag 3 december 2016 @ 12:42:
Ik denk bijna alles werkend te hebben alleen.. nu crashed hij op de pcap files.
het format zou niet goed zijn. na 4 keer doet hij een shutdown. Iemand een idee ?

Ondertussen van raspberry leek naar beginner gegaan ;)
DHCP kwam ik met de handleiding ook niet helemaal uit maar google heeft geholpen.
Almost there! Het format is verkeerd... dan ben ik even benieuwd hoe jouw PCAP file eruit ziet. Ik neem aan dat je "ERROR! PCAP format not supported! Can only read little-endian PCAP files with microsecond precision!" krijgt? Eventueel zou je het betreffende bestand even door dit commando kunnen halen:
python -c 'import sys;f=open(sys.argv[1],"r");print(" ".join("%02X" % ord(x) for x in f.read(24)));f.close()' /opt/se-logger/solaredge-20161203??????.pcap

Dat geeft de header (eerste 24 bytes) van het PCAP bestand, wellicht is daar al aan te zien wat er loos is. Geeft bij mij:
code:
1
D4 C3 B2 A1 02 00 04 00 00 00 00 00 00 00 00 00 00 00 04 00 01 00 00 00

Jerrythafast wijzigde deze reactie 03-12-2016 12:53 (5%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Mooi dat het is gelukt :Y Ik had al een hele troubleshooting post gemaakt, maar je was me dus voor :9

Jerrythafast wijzigde deze reactie 03-12-2016 21:17 (90%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Volgens mij zijn de meeste van die dingen plug-and-play. Je krijgt er dan een eth1 interface bij.

Kleine disclaimer, ik zeg dit dus zonder ervaring. Zelf heb ik geen Pi3 maar een Pi2, geen Raspbian maar Ubuntu en geen USB LAN adapter maar een USB WiFi stick uit het vorige decennium. Voor mijn WiFi stick moest ik alleen nog even linux-firmware-nonfree installeren, want dat ding had blijkbaar een propriëtaire driver nodig.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op vrijdag 9 december 2016 @ 21:34:
[...]


Ik heb het geheel draaien (pi 3) met een bridge br0 op eth0, eth1 en wlan0. Ik weet nog niet of mijn omvormer via eth1 of wlan0 wordt aangesloten.

Ik had behoorlijk wat problemen met met het ip adres. Zie ook https://www.raspberrypi.o...ewtopic.php?f=28&t=111709. Voor mijn gevoel lopen er wat dingen door elkaar heen met definities in /etc/network/interfaces en een dhcpd configuratie. Uiteindelijk maar gekozen voor dhcp met in /etc/network/interfaces manual en ignore voor eth0, eth1 en wlan0 in de dhcpd config file. Het idee is dan lijkt me dat alleen br0 een ip adres krijgt.

Nu draait het goed. Het enige is dat ik in eerste instantie twee ip adressen krijg. Na enige tijd blijft daar 1 van over. Waarschijnlijk heel verklaarbaar maar 8)7
Als je je netwerkinterfaces bridget en elders in je netwerk al een DHCP server hebt draaien, heb je geen DHCP nodig op je Pi. De omvormer kan dan gewoon een IP-adres krijgen van die andere DHCP-server. (Het is niet de bedoeling dat je sectie 4.1 én sectie 4.2 doet. Daar wordt je netwerkconfiguratie inderdaad een aardige puinhoop van...)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Haha, juist. Die extra c staat natuurlijk voor Client :Y) Klein maar cruciaal verschilletje :9

Jerrythafast wijzigde deze reactie 09-12-2016 22:49 (3%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Quinie schreef op zaterdag 10 december 2016 @ 17:48:
Ondertussen draait het meeste hier alleen het uploaden naar pvoutput werkt nog niet.
De log word niet aangemaakt. Cron job lijkt wel te lopen iedere 2 minuten.

Ideeen ?
quote:
Jerrythafast schreef op maandag 21 november 2016 @ 20:06:
Ik wil het enthousiasme niet temperen, maar toch een kleine disclaimer: solaredge-logger v0.0.7 (welke sinds gisteravond online staat) ondersteunt wel het uitlezen van 3-fase omvormers, maar niet het uploaden van 3-fase omvormerdata naar PVOutput. Hier moet ik nog even aan rommelen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op zondag 11 december 2016 @ 16:34:
Hopelijk kom ik van onderstaande melding af als ik m'n good old versie update naar versie 0.0.7. De melding komt steeds vaker voor tijdens het wakker worden van de inverter. Het zorgt er voor dat er niets meer wordt gelogd. Ik moet de logger service handmatig stoppen en weer starten. De rest van de dag blijft het draaien als een zonnetje.

Om database ellende te voorkomen wil ik mijn huidige database blijven gebruiken. Dus zonder de nieuwe 3-fase inverter tabel.
Als ik liveupdate.py goed lees (ik ben geen programmeur...), dan schrijft ie alleen naar de 3-fase inverter tabel wanneer er 3-fase data aanwezig is. Klopt mijn zienswijze? Of sla ik de plank helemaal mis? Mijn enige doel is om van onderstaande foutmelding af te komen:

Reading from -
Traceback (most recent call last):
  File "/opt/se-logger/liveupdate.py", line 399, in <module>
    telem)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Exception AttributeError: "'NoneType' object has no attribute 'error'" in <generator object get_data_from_pcap at 0x7650d1c0> ignored



[...]
Er zal inderdaad geen "table does not exist" crash/foutmelding komen zolang je geen 3-fase omvormer aansluit, dus je hoeft je database in jouw geval niet aan te passen. Dat gezegd hebbende: het kan geen kwaad om het CREATE TABLE statement van de 3-fasentabel uit te voeren, je huidige tabellen blijven immers onaangeroerd.

Maar net zoals Quinie hierboven verwacht ik niet dat je met een nieuwe versie van se-logger opeens geen last meer hebt van het wegvallen van de MySQL server. Immers zit dat ergens in de onderliggende lagen. Ik ben er nog niet aan toe gekomen liveupdate.py aan te passen om hier clean mee om te kunnen gaan.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Dat, of er is een timeout in MySQL ingesteld die verbindingen waar de hele nacht niks op gebeurt eruit gooit. De crash gebeurt schijnbaar bij de eerste query in de ochtend.

Ik ben er intussen even aan aan het rommelen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op zondag 11 december 2016 @ 19:39:
Als het gebeurd is het eenmalig in de ochtend bij het ontwaken van de omvormer. Wat mij bevreemd is dat het niet elke dag gebeurd. Wel heb ik de indruk dat het steeds frequenter voorkomt. Eerst was het een keer in de twee, drie weken. De laatste weken toch wel een paar keer per week en de afgelopen week op één dag na elke dag...

Morgen maar eens zien wat er in de errorlog van mysql staat. die heb ik nu ingeschakeld.
Die ene dag was misschien dinsdag (6 december)? Ik weet nu bijna zeker dat het de MySQL wait_timeout setting is die jou parten speelt. Die staat standaard op 8 uur. De crontab regels die bij solaredge-logger worden gegeven zorgen ervoor dat de service om half 1 's nachts wordt herstart. Dus dat betekent dat je MySQL verbinding door de server wordt verbroken om half 9 's ochtends. Als de omvormer pas daarna wakker wordt heb je een crash.

Waarom overkomt mij dit dan niet? Ik heb mijn Pi op UTC tijd laten staan. Bij mij wordt de service dus om 00:30 UTC == 01:30 CET herstart. Ik zou dit probleem pas krijgen als de omvormer om half 10 pas wakker wordt :9 Zelfs op de recorddag van gisteren was hij om 9:18 CET wakker (het zou nog een uur duren voordat er daadwerkelijk energie uit kwam...)

EDIT: Ik heb v0.0.8 ter testen aan Aegle voorgelegd...

Jerrythafast wijzigde deze reactie 11-12-2016 21:10 (15%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Gelukkig, ik zag vanmorgen dat de mijne was gecrasht door een klein foutje. Heb v0.0.8 opnieuw geupload voor je ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
De getallen die uit de optimizers komen moet je x2 doen. Die dingen meten nou eenmaal niet preciezer dan op 2 graden celsius nauwkeurig...

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Vanmorgen was dan zeker nog met v0.0.7? In v0.0.8 moet dat nu echt opgelost zijn... :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op dinsdag 13 december 2016 @ 08:05:
Nadat ik gistermorgen de service opnieuw had moeten starten, heb ik, om precies te zijn om 08:46 LT, de service weer gestopt en liveupdate.py vervangen. tot nu toe zijn alle foutmeldingen uitgebleven, maar de zon moet nog op komen...

EDIT: Om 09:23 verschijnt de volgend melding in liveupdate.log:
Reading from -
Warning: Connection to database failed: (2006, 'MySQL server has gone away'); retrying...


Het vreemde is dat mysql wel werkt. PCAP's worden gevuld en PVoutput wordt ook ge-update... :?
Hmm, misschien is de waarschuwing niet duidelijk. Wat hier gebeurt is de gebruikelijke time-out van de verbinding (wel gek dat die gebeurt terwijl je de service herstart hebt?). Het feit dat je een warning krijgt in plaats van een dikke crash geeft aan dat liveupdate.py deze gebeurtenis heeft herkend en opnieuw verbindt ("retrying..."). Het feit dat je daarna niet alsnog een dikke crash krijgt betekent dus dat het nu prima werkt :)
quote:
Quinie schreef op dinsdag 13 december 2016 @ 11:01:
@Jerry: ondertussen bezig met ombouw naar influxdb. belang bij de code als het klaar is ? daarna wil ik even kijken naar het uploaden van 3 phase.
Graag, als de verschillen tussen MySQL en influxdb niet zo groot zijn kunnen we het misschien samenvoegen in een nieuwe versie van liveupdate.py. :)

Ik heb zondag ook een beginnetje om pvo-upload.php aan te passen voor 3-fase omvormers. Het voornaamste probleem waar ik tegenaan loop is dat de "de_day" kolom (hoeveelheid geproduceerde energie in de laatste 5 minuten) bij jouw 3-fase omvormer afgeronde data bevat. Ik denk dat ik de uptime van de omvormer aan de tabel moet gaan toevoegen zodat ik de "e_day" kolom (geproduceerde energie sinds de laatste keer dat de omvormer opstartte) kan gebruiken i.p.v. de "de_day" kolom. Ik heb de uptime van de omvormer hierbij dan wel nodig omdat de "e_day" kolom midden op de dag op 0 kan springen als je je omvormer even uit zet en dat vindt PVOutput niet leuk...

Houd er dus rekening mee dat in ieder geval de 3-fase tabel mogelijk aangepast gaat worden in de volgende versie. Als je de nieuwe kolom toevoegt met alleen een ALTER TABLE query wordt voor alles wat er nu al in staat een uptime van 0 ingevuld. Zolang je alle pcap files bewaart heb je een mooier alternatief: dan kun je met een simpel "python liveupdate.py solaredge-*.pcap" commando de hele database opnieuw vullen, inclusief de nieuwe kolom.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op woensdag 14 december 2016 @ 12:17:
Hier logt zowel de logging software, de SE-portal alswel PVoutput. Als de portal niet meer werkt, zou de rest ook niet meer werken.
OT: Wordt het niet eens tijd om een mooie naam te verzinnen voor de logging software..? :+
De naam "solaredge-logger" is zeker te simpel? :9 Als je een fancy naam weet zal ik hem in overweging nemen :p

De update naar v0.0.8 heeft bij jou het probleem dus adequaat aangepakt. De verbinding met de MySQL server valt dus inderdaad weg doordat hij de hele nacht (lees: meer dan 8 uur achtereen) niet wordt gebruikt, maar na een reconnect gaat hij nu vrolijk verder met loggen :)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Domokoen schreef op donderdag 15 december 2016 @ 10:18:
Het nadeel van SolarEdge-logger is dat je dan de handelsnaam van SolarEdge gebruikt - die kunnen daar tegen optreden...
Dat is inderdaad wel een risico, al lijkt het me niet waarschijnlijk dat het ze iets aantrekt dat een eenvoudig scriptje dat hun omvormers uitleest een verwijzing naar de naam van de betreffende omvormers bevat. Ik gebruik in ieder geval geen logo's enzo, en houd het verder lower case om het er niet te dik op te leggen. :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tsjoender schreef op vrijdag 16 december 2016 @ 09:15:
Is SoEdMon anders iets voor de naam? Of SoEdLog? Of SEdLog/SEdMon?
Ik wil hem wel graag lowercase houden conform de conventies (je wilt niet weten hoe vaak ik al "ImportError: No module named mysqldb" heb gehad :X) en dan lijkt me soedmon/soedlog/sedmon/sedlog mij ook niet heel knap eerlijk gezegd :9 Als ik die lijn zou volgen zou ik kiezen voor selog (of misschien toch selogger?). Oftewel, de huidige naam maar dan afgekort.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op vrijdag 16 december 2016 @ 17:48:
Werkt de logger met alle omvormers van SolarEdge? Ook met de nieuwe HD Wave?
Heb ik nog niet kunnen testen. Volgens mij is het aantal HD Waves in Nederland nog op je vingers te tellen. Zodra iemand met een HD Wave omvormer achter de solaredge-logger zich in dit topic meldt weten we het ;) Ik verwacht dat het wel gaat werken maar die verwachting is verder totaal nergens op gebaseerd. :p

Jerrythafast wijzigde deze reactie 16-12-2016 23:53 (10%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Heb hier ooit wel gehad dat de pcap file waar op dat moment naar werd geschreven corrupt is geraakt (eindigt met een half packet). Voor de rest doet se-logger alleen schrijfacties naar log files en de MySQL database. De logs leest hij niet, dus dat zou hem niet kunnen tegenhouden. Dus als het al iets met corruptie is, dan is het je database...
sudo service se-logger stop
sudo service se-logger start

En als dat niet werkt:
cat /opt/se-logger/liveupdate.log
cat /opt/se-logger/tcpdump.log

En dan de output even hier posten O-)

Jerrythafast wijzigde deze reactie 18-12-2016 18:13 (44%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Typisch, ik zou je niet kunnen vertellen wat dan het probleem is geweest :s

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tsjoender schreef op donderdag 22 december 2016 @ 19:09:
Allereerst grote complimenten voor het maken van deze logger en de zeer uitgebreide topic start!

Sinds dinsdag zijn wij de trotse bezitters van twee SE3000H omvormers. Bij de installatie wilden ze deze meteen aan het internet hangen om dingen te checken en toen had ik nog niet de tijd gehad (genomen eigenlijk) om de managed switch voor te bereiden en een mirror port te configureren. Na een uur of 6 online geweest te zijn (korter waarschijnlijk) heb ik die mirror port alsnog geconfigureerd en tcpdump aangezet om pcap's te genereren. Van een omvormer heb ik nu een key, maar ik vroeg me af of de tweede key nu mogelijk genegeerd wordt omdat het script welke de pcap's afspeurt op keys er meteen mee stopt bij het vinden van een key. Voor de zekerheid heb ik tcpdump in een nieuwe file laten beginnen, dus als die uitwisseling later alsnog komt dan haal ik de key daar wel uit.

Mijn programmeer kennis is erg basaal en daarom zie ik zo niet wat ik in het find-key-in-pcap.py script aan zou moeten passen om door te blijven zoeken na het vinden van een key. Iemand een tip? Dan weet ik zeker dat ik de tweede key niet mis als ze kort na elkaar uitgewisseld zijn.

EDIT: Regel 89 aanpassen en daar de sys.exit(0) vervangen met state = 0 lijkt de hele file te parsen tot het eind.

Als iemand weet hoe ik na kan gaan welke key bij welke omvormer hoort, dan is dat ook wel handig, al is er met twee een 50/50 kans dat ik meteen de juiste match maak, dus als ik eerst verkeerd gok is dat nog wel te overzien.

Verder vroeg ik me af hoe ik de logger zelf het beste kan configureren. Ik wil van twee omvormers data uitlezen, maar de pcap bevat de data welke van beide omvormers komt doorelkaar. Zou dat moeten kunnen werken?
Voor alles is een eerste keer... Je bent zelf nét te laat om de eerste te zijn met een HD Wave omvormer (bedankt tjanssen, het werkt dus :) de optimizers gaan morgen bij daglicht vanzelf meedoen). Maar je bent wel de eerste met twee omvormers die dit logging project wil gaan gebruiken. Dat wordt voor mij weer programmeren met kerst ;w ;)

Even voor de duidelijkheid, hoe zijn je omvormers aangesloten?
Optie 1: Beide omvormers hebben een ethernetkabel waarmee ze aan je managed switch hangen. De logger kan het verkeer van beide afluisteren (het verkeer van beide komt 'door elkaar' in één pcap file te staan).
Optie 2: De twee omvormers zijn met elkaar verbonden via een RS485-verbinding en slechts één van beide heeft een ethernetkabel (master-slave configuratie). De omvormer met de ethernetkabel uploadt de data van beide omvormers en de logger hoeft dus alleen die omvormer af te luisteren.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tsjoender schreef op donderdag 22 december 2016 @ 19:58:
[...]


Voordat je je familie uit gaat leggen dat je deze kerst niet komt, moet ik bekennen dat ik nog niet precies weet hoe ik jouw project in ga zetten. Uiteindelijk wil ik alleen realtime weten hoeveel Watt er geproduceerd wordt en hoeveel Wh er al geproduceerd is. Zodoende kan ik het werkelijke stroomverbruik berekenen door die gegevens met de gegevens van de slimme meter te combineren en mooie staatjes te maken voor dag/week/maand/jaaropbrengst en -verbruik. Upload naar pvoutput zal dan vast ook komen. Via de portal van SolarEdge kan ik dan wel de optimiser data bekijken (en ook weer staatjes voor opbengst). Ik begreep dat de data bij de SolarEdge portal altijd iets "verouderd" is en de slimme meter nagenoeg realtime, dus dat het niet eerlijk rekenen is als ik die gegevens van de portal haal voor dit doel.

Qua opstelling heb ik nu de situatie van optie 1. Ik had me niet gerealiseerd dat optie 2 ook een mogelijkheid is. Dat zou ik eigenlijk ook wel prima vinden om het zo aan te sluiten als dat het meeluisteren eenvoudiger maakt.
Optie 2 is wel iets minder storingsgevoelig voor solaredge-logger. Bij optie 1 bestaat er een hele kleine kans dat de twee omvormers tegelijk 'praten' en er een bericht van de ene omvormer midden in het bericht van de andere omvormer terecht komt. (Voorwaarde hiervoor is wel dat het bericht van die andere omvormer zo lang is dat het over meerdere TCP segments wordt verdeeld). In dit geval zul je met de huidige versie wat data in je database kunnen missen. Maar het lijkt me niet nodig om de set-up hiervoor om te bouwen.

De data die je met solaredge-logger krijgt is exact de data die naar de SolarEdge portal wordt gestuurd. Deze data is dus ook niet 100% live, over het algemeen krijg je elke 5 minuten de actuele data van elk onderdeel in het systeem (omvormer, optimizer).

Er is wel een hypothetische mogelijkheid dat je je omvormers rechtstreeks via RS485 uitleest en hierbij de frequentie van de telemetrie kunt verhogen; er lijkt een commando te bestaan waarmee je die interval van 5 minuten op elk gewenst aantal seconden kunt instellen... Je mist dan alleen wel de SolarEdge portal.
quote:
tjanssen schreef op donderdag 22 december 2016 @ 20:28:
Ik neem aan dat de logger niet afhankelijk is van het ip adres van de omvormer? Wat gebeurt er als deze tijdens het loggen anders wordt?
De logger is inderdaad niet afhankelijk van het IP-adres van de omvormer. Het IP-adres wordt zelfs volledig genegeerd. In feite wordt al het opgevangen TCP verkeer dat afkomstig is van SolarEdge netwerkkaarten (dit is te zien aan het MAC adres) geanalyseerd en samengevoegd tot één datastroom waarin SolarEdge datapakketjes worden opgespoord en verwerkt.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ocaj schreef op donderdag 22 december 2016 @ 22:29:
[...]


Ik verwacht eigenlijk dat dat "vanzelf" goed gaat. In de pakketjes die de omvormer(s) opsturen zit nl. ook het "inverter-id", oftewel het serienummer van de omvormer. De tool van Jerrythafast logt in principe alle velden in de database, en daar zit ook het inverter-id bij.

Wel moet je dus iets slimmere queries maken om de data er per omvormer weer uit te halen. Geen rocket-science als je wat sql kent.

Ik heb iets vergelijkbaars in mijn eigen oplossing (op basis van de scripts van jbuehl), waar ik ook 2 omvormers heb. Daar heb ik in mijn database nog een extra vertaaltabel voor gemaakt waar ik niet alleen de serienummers map naar herkenbare namen, maar ook alle optimizers in heb zitten met een mapping op welke omvormer ze zitten aangesloten. En daarnaast ook de positie op het dak, zodat ik niet al die serienummers hoef te interpreteren, maar in queries gewoon een logische naam zie staan als paneel "O-5", voor de 5e op Oost etc. ipv een serienummer

In de pakketjes van de omvormers zit weliswaar ook een optimizer-id, maar geen inverter-id. Die staan dus door elkaar heen. Dat is niet erg, als je een beetje handig bent met mysql queries om het eruit te halen zoals je het wil hebben.

Kortom: Ik vermoed dat Jerrythafast niet met Kerst hoeft door te werken. Ook met 2 omvormers komt alles gewoon in de database terecht.
Je weet dat je nu tegen mij praat in de 3e persoon he? :>

Er zijn twee onderdeeltjes van mijn monitoring tool die niet lekker werken met meerdere omvormers en dat zijn find-key-in-pcap.py en pvo-upload.php. Daar doelde ik dus op ;) Voor het eerste heeft hij intussen een oplossing gevonden (al is het nog niet direct duidelijk welke omvormer bij welke sleutel hoort). Het tweede is triviaal op te lossen door het een en ander te dupliceren.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op vrijdag 23 december 2016 @ 10:10:
Tabellen worden nu inderdaad gevuld. Ik zie verder nu ook twee tcpdump processen draaien. Het proces van gisteren lijkt niet gekilled te zijn. Met als gevolg dat er nu ook 2 pcap bestanden blijven groeien...
Lijkt erop dat je service niet goed stopt. Er was eerder ook iemand die dit meldde maar ik kan het even niet meer terugvinden.

Zou je dit willen proberen/testen?
- even de kabel van de omvormer eruit kunnen trekken (zodat je geen data mist)
- sudo service se-logger stop (misschien een paar keer herhalen? geen idee of dat uitmaakt :9)
- daarna eventuele overgebleven tcpdump processen handmatig killen
- sudo service se-logger start
- sudo service se-logger stop
- sudo service se-logger start
- Draaien er nu twee tcpdump processen? Dan is er toch wat loos -O- In dat geval zou je in het .service bestand de KillMode eens kunnen proberen veranderen naar control-group en dan bovenstaande nog eens proberen.
quote:
tsjoender schreef op vrijdag 23 december 2016 @ 10:25:
Het lijkt er overigens op (als ik de handleiding bekijk) dat de HD Wave omvormers geen RS232 aansluiting meer hebben. Plan B om de keys te achterhalen, lijkt hier dan niet mogelijk. Ik heb de tweede key nog niet binnen, dus spannend of die nog volgt of dat ik die gemist heb... In mijn geval zou ik dan nog met een master /slave opstelling kunnen werken toch en de omvormer waarvoor ik de key wel heb kunnen onderscheppen de upload van de data laten verzorgen? Een factory reset zou ook nog een optie zijn natuurlijk al was die optie niet getest en ik weet niet of de installateur dan nog moeilijk gaat doen.
Hmm, misschien heeft hij nog wel een USB-poort aan de binnenkant zitten? Of ze zeggen er gewoon niks over in de handleiding omdat het voor 99,999% van de mensen toch niet interessant is.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op vrijdag 23 december 2016 @ 13:35:
[...]


Er draaien dan inderdaad 2 processen. De KillMode veranderen does the job. Wel vreemd, heb de logger ook een paar nachten laten draaien zonder omvormer eraan, toen werkte alles prima... :?

Is het misschien een mogelijkheid om een optie toe te voegen welke de hele interface waar de omvormer aanhangt down te gooien in geval het tcpdump proces niet meer draait? Dan mis je nooit gegevens. :)
Dat zou inderdaad een handige optie zijn, ik weet alleen niet precies hoe het moet. Er moet dan iets van een system-wide instelling zijn die zegt: als proces X niet bestaat, mag interface Y niet gebruikt worden. Als iemand weet of dit mogelijk is laat ik me graag voorlichten over hoe dit moet ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op vrijdag 23 december 2016 @ 21:58:
Iemand enig idee waarom ik

root@es-logger:/opt/se-logger# /usr/bin/php pvo-upload.php
cURL error, exiting: The requested URL returned error: 400 Bad Request
root@es-logger:/opt/se-logger#

zou kunnen krijgen?

Als ik een echo van de data (die naar pvouput gaat) krijg ik een hele reeks aan waarden. Het lijkt me dat dan de toegang tot de mysql kant ok is. PVoutput id en api key triple checked.
Heb je aan PVOutput gedoneerd? If not: verander LIMIT 100 in LIMIT 30 in pvo-upload.php.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op vrijdag 23 december 2016 @ 22:14:
Ja, het is wel het tweede systeem onder mijn account. Maar zelfs als ik de LIMIT op 10 zet komt er dezelfde fout.
Zet anders RETURNTRANSFER eens op false, als je 'm dan runt zou je HTTP blaat op je terminal moeten krijgen. Misschien staat daar een meer verhelderende foutmelding in.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op vrijdag 23 december 2016 @ 22:24:
Nope, geen verschil.

root@es-logger:/opt/se-logger# nano pvo-upload.php

...
$c = curl_init("http://pvoutput.org/service/r2/addbatchstatus.jsp");
curl_setopt_array($c, [
CURLOPT_RETURNTRANSFER => false,
CURLOPT_FAILONERROR => true,
...

root@es-logger:/opt/se-logger# /usr/bin/php pvo-upload.php
cURL error, exiting: The requested URL returned error: 400 Bad Request
root@es-logger:/opt/se-logger#
Ah stom, dat had ik kunnen verwachten 8)7 Behalve RETURNTRANSFER op false, moet je ook FAILONERROR even op false zetten. En even de $db query aan het einde weg //commenten. Dan zou je wél duidelijkere output moeten krijgen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op zaterdag 24 december 2016 @ 00:06:
ah

root@es-logger:/opt/se-logger# /usr/bin/php pvo-upload.php
Bad request 400: Date is older than 90 days [20160821]root@es-logger:/opt/se-logger#

Weet je hoe ik de database kan schoonmaken en opnieuw vullen vanuit de pcap files?

>aanvulling

Ok database gedelete en opnieuw gemaakt. De eerste pcap file heeft blijkbaar een datum die PVoutput niet kan waarderen. Ik heb nu alles behalve deze eerste file verwerkt.

Het lijkt nu te werken. Morgen controleren of het ook online werkt. :)
Mooi! :) Nu willen we natuurlijk wel een PVOutput linkje om het resultaat te aanschouwen O-)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tsjoender schreef op zaterdag 24 december 2016 @ 14:08:
Vandaag de kap van de SE3000H gehad en er is inderdaad een micro-USB aansluiting net naast de ethernet aansluiting. Als ik daar een laptop aankoppel, dan wordt er een serial-USB device aangemaakt (FTDI). Het lukte me alleen niet om de key op te vragen met het get-key-by-rs232-verbose.py script. Bij het invullen van het serienummer worden alleen Hex waarden geaccepteerd en bij mij is het serienummer niet volledig Hex. Als ik de niet Hex letters weglaat werkt het ook niet. Moet de omvormer ook ingesteld worden op RS232 communicatie voordat ik de key opvraag? Waren de serienummers van de voorgaande omvormers helemaal in Hex of klopt het dat je alleen het tweede blok invult (die is wel volledig Hex bij mij).
Het serienummer van je omvormer is iets dat lijkt op "7F10269C-A9". Mogelijk staat er op de sticker nog een stukje voor, dit kun je weglaten. De twee tekens en het streepje aan het einde kun je ook weglaten. In het script zet je dan 0x7F10269C.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tsjoender schreef op zaterdag 24 december 2016 @ 16:37:
[...]

Okee gelukt! Die com poort stond wel goed, maar blijkbaar moet je dus alles voor de eerste 7 in het serienummer vergeten (twee letters en vijf cijfers in mijn geval). De instruktie in de topicstart had het over de eerste acht tekens gebruiken en daarmee kwam ik er niet helemaal uit, maar nu blijkt dat op de SE3000H dus ook prima met RS232 als plan B de key achterhaald kan worden. Top!
Super! De reden dat in de TS "de eerste 8 tekens" staat is omdat behalve op de grote sticker aan de zijkant van de omvormer eigenlijk nergens die andere letters en cijfers erbij staan. Niet op de barcode sticker, niet op het LCD, niet in de monitoring portal... zelfs in de data in mijn PCAP bestanden heb ik dat eerste stukje niet terug kunnen vinden :9 Tezamen met het "0x7f10..." voorbeeld dat in het script staat hoopte ik maar dat het duidelijk was :Y)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Als je data per 5 minuten wilt uploaden moet je de Live Loader hebben. De CSV loader is alleen voor gegevens aan het einde van de betreffende dag.

Je kunt ook deze query runnen:
SQL:
1
UPDATE live_update SET pvo_last_live = UNIX_TIMESTAMP("2016-12-23");

Dan zou het upload script alle data van vrijdag tot en met nu weer opnieuw moeten gaan uploaden.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Aegle maakt onbedoeld een hele goede opmerking: Hoe staat het met de tijdzone-instelling op PVOutput en op je logger? Als die niet overeenkomen gaat het natuurlijk niet werken. Als je nu aan je kerstdiner gaat zitten, heb je in ieder geval een andere tijdzone dan wij :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Klopt... Tjanssen zei ook "Zo worden nu de laatste twee regels van 24/12 op 23/12 gezet." wat mij toch doet vermoeden dat er iets geks met de tijd aan de hand is.

Aan de andere kant, PVOutput ligt er nu helemaal uit... dus misschien is er toch iets aan hun kant dat rammelt.

Jerrythafast wijzigde deze reactie 26-12-2016 13:32 (26%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op dinsdag 27 december 2016 @ 12:30:
Geeft ook gewoon +01:00. Het gaat van kwaad tot erger, nu worden de gegevens van 25/12 en 26/12 ook niet meer geaccepteerd. Heb nu de LIMIT 30 eens op 1 gezet, kijken of dat verschil gaat maken.

Edit: de LIMIT 1 maakt ook niet uit.
Tijdzone is dus goed. Had je de data verwijderd door op de daily lijst op de vinkjes en dan de prullenbak te klikken of ben je naar de afzonderlijke intraday pagina's gegaan en heb je daar op de prullenbak gedrukt?

Indien het eerste: probeer het tweede eens O-) Je kunt nog naar de intraday pagina's door in de URL jouw id, sid en de datum (dt) in te vullen:
code:
1
http://pvoutput.org/intraday.jsp?id=48021&sid=43748&dt=20161227

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Yoki1985 schreef op dinsdag 27 december 2016 @ 14:10:
[...]


Ik ben dit nu aan het proberen maar als ik het python script uitvoer dan krijg ik de volgende error boodschap:


\Downloads\solaredge-logger-v0.0.8\get-encryption-key>Python get-key-by-rs232.py
Traceback (most recent call last):
  File "get-key-by-rs232.py", line 75, in <module>
    getKeyPart(connection, i+1, inverter_id)) + "'")
  File "get-key-by-rs232.py", line 75, in <genexpr>
    getKeyPart(connection, i+1, inverter_id)) + "'")
  File "get-key-by-rs232.py", line 68, in getKeyPart
    struct.pack("<H", 0x238 + seq))))
  File "get-key-by-rs232.py", line 60, in calcCrc
    crc = crcTable[(crc ^ ord(d)) & 0xff] ^ (crc >> 8)
TypeError: ord() expected string of length 1, but int found


Enig idee wat ik misdoe?

Edit:

Dit zijn mijn com instellingen van de solaredge
[afbeelding]

Edit 2:

Ik heb ook volgende tutorial gevolgd want windows herkende niet standaard de solaredge:
http://www.usb-drivers.org/ft232r-usb-uart-driver.html
I see, weer zo'n nasty verschil tussen Python2 en Python3. Het script verwacht dat je op Python2 draait.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op dinsdag 27 december 2016 @ 19:18:
[...]


Dit heeft zeker geholpen! Middels een directe link waren ook de dagen te benaderen die niet in het lijstje van outputs stonden. Hier stond allemaal rare (verschoven) data in. Na op deze manier echt alles verwijderd te hebben heeft de import wel gewerkt! :)

Sturen jullie inverters trouwens midden in de nacht ook data? Heb ongeveer 1 keer per nacht een mode 2 bericht. Tijdstip hiervan lijkt willekeurig te zijn. Heb het vermoeden dat het hier ergens fout gegaan is.
Hier is dat alleen 2x voorgekomen doordat ik de omvormer 's avonds laat een reset had gegeven (powercycle). Normaal gesproken blijft hij stil in de nacht.
quote:
tsjoender schreef op dinsdag 27 december 2016 @ 19:52:
Vandaag geprobeerd om de verzamelde pcap data uit te lezen en in MySQL op te slaan. Dankzij de goede uitleg in de topicstart had ik dat snel voorelkaar (eerst voor een omvormer). Nu leek het mij handig als meteen na het updaten van de data in MySQL ook een http call gedaan wordt naar mijn Domoticz instance vanuit liveupdate.py. Hier blijkt alleen dat mijn programmeer skills tekort schieten, dus graag wat hulp.

Ik heb al uitgevonden hoe ik met urllib2 een http call kan doen naar Domoticz toe en daar zie ik dan een device bijgewerkt worden. Maar voor mij werkt dit alleen als ik steeds eenzelfde URL gebruik. Als ik variabelen wil gebruiken in de URL dan krijg ik allemaal foutmeldingen over de verkeerde syntax, verkeerde type (string, list, tuple etc). Ik begrijp dat de waarden welke naar MySQL geschreven worden een tuple is, maar hoe kan ik daar een aantal waarden uit destileren? Dat wordt me niet duidelijk. Het eerste deel van de URL is altijd gelijk en het laatste deel bevat de waarden welke variabel zijn. Ik zie voorbeelden dat ik zo'n URL dan samen kan stellen:
code:
1
2
3
        url_data = <lijstje variabelen met puntcomma gescheiden>
        url = "http://<hostname>:8080/json.htm?type=command&param=udevice&idx=123&nvalue=0&svalue=" + url_data
        urllib2.urlopen(url)

Maar ik krijg het maar niet voorelkaar om uit die lijst met waarden een paar specifieke te pakken en als string te presenteren met de naam url_data. Wie kan mij op weg helpen? Het gaat voor nu specifiek om p_active en e_total waarmee de uiteindelijke totale URL er zo ongeveer uit zou komen te zien:
code:
1
http://<hostname>:8080/json.htm?type=command&param=udevice&idx=123&nvalue=0&svalue=123.456;2345


Python:
1
url = "http://<hostname>:8080/json.htm?type=command&param=udevice&idx=123&nvalue=0&svalue=%(p_active)s;%(e_total)s" % telem

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op dinsdag 27 december 2016 @ 20:31:
[...]


Kun je hier niet beter een apart script van maken? Mocht je in de toekomst liveupdate.py moeten / willen updaten, dan moet je naar alle delta's tussen jouw aangepaste versie en de nieuwe versie gaan zoeken. Het beste lijkt me een aparte cronjob hiervoor aanmaken, of desnoods vanuit liveupdate.py een ander script aanroepen. In dit laatst genoemde script kun je dan je eigen code stoppen.
Inderdaad, dat is wel een goed punt. Het kan ook in (of in de plaats van) pvo_upload.php bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
//REPLACE THIS (1 line):
while($row = $q->fetch()){

//WITH THIS (3 lines):
$lastrow = false;
while($row = $q->fetch()){
  $lastrow = $row;

//ADD TO END OF SCRIPT (1 line):
file_get_contents(sprintf("http://<hostname>:8080/json.htm?type=command&param=udevice&idx=123&nvalue=0&svalue=%s;%s", $lastrow["p_active"], $lastrow["se_day"]));

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tinka schreef op donderdag 5 januari 2017 @ 18:05:
@Jerrythafast, had jij nog plannen om je export to web pagina te delen?
(voor dat ik als totale leek zelf aan de slag ga.)
Ik zou je kunnen sturen wat ik op http://jerweb.nl/pv/ heb draaien, maar wel met een dikke disclaimer dat het echt work in progress is. Zitten ook een aantal dingen hardcoded in (o.a. dagtarget, panelen). Stuur even een DM als je ermee wilt klooien.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Yoki1985 schreef op maandag 9 januari 2017 @ 10:21:
@Jerrythafast: Ik heb jouw SeLogger draaien bij mij nu. Ik krijg data te zien in mijn mysql-database.
Echter als ik de query in het php bestand uitvoer dan krijg ik 0 rijen terug, hierdoor wordt er dus ook niets gestuurd naar pvoutput.

Ik heb het probleem kunnen traceren tot het volgende stuk:
MySQL:
1
SELECT UNIX_TIMESTAMP(FROM_UNIXTIME(pvo_last_live, "%Y%m%d")) FROM live_update

deze retourneerd "NULL". Dit komt omdat pvo_last_live altijd op 0 blijft staan volgens mij.
[afbeelding]

Enig idee wat er mis is?
Thanks! Is jouw tijdzone toevallig ingesteld op iets ten westen van GMT?

Here's the fix:
MySQL:
1
SELECT IFNULL(UNIX_TIMESTAMP(FROM_UNIXTIME(pvo_last_live, "%Y%m%d")), 0) FROM live_update

Wat betreft de logging pagina, ik overweeg om hem op GitHub te gooien. Dan kunnen we er met zijn allen aan rommelen ;) Het enige nare is dat mijn panelen en maandtarget er hardcoded in staan, maar daar valt wel een tijdelijke oplossing voor te bedenken in de vorm van een kleine config file.

Jerrythafast wijzigde deze reactie 09-01-2017 21:06 (14%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
arnnold schreef op donderdag 12 januari 2017 @ 21:23:
Beste mensen,
Ik heb een Solaredge installatie van 18 panelen in één string. Mijn dak ligt ongunstig voor de beste opbrengst. West gericht.
Vraag aan jullie:
Als ik de huidige string ombouw naar 2 strings van 9 panelen. Zal dit een rendement verbetering geven?
Een en ander hangt af van het type omvormer (met name 1 of 3 fasen) en het type panelen/optimizers (bijvoorbeeld Solar Frontier panelen met P405 optimizers of kristallijn silicium panelen met P300/P350 optimizers) dat je gebruikt. Meer info nodig dus ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Yoki1985 schreef op donderdag 12 januari 2017 @ 22:36:
[...]


Jerry,

Wat is het verschil tussen deze optimizers?
Daar hebben we de specsheet voor.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
arnnold schreef op zaterdag 14 januari 2017 @ 20:34:
[...]

Hallo Jerrythafast, sorry voor de late reactie. Mijn systeem ziet er als volgt uit.
Omvormer SolarEdge SE 3500 -3phase - op 1phase aangesloten

15 panelen Suntech STP270S-20/Web mono black

3 panelen Suntech STP290S-20/Wem mono black

18 SolarEdge P300 power optimizer (1x 60-cells)


18 panelen aangesloten in één string

Vermogen 4,92 kWp
Hé, dat is nieuw... ik kan geen informatie vinden over een 3-fase versie van de SE3500 en ik ben ook niet bekend met het op één fase aansluiten van een 3-fase SE omvormer.

Anyway, met 18 P300's in één string vermoed ik dat jouw omvormer een stringspanning van 750 Volt wil hebben. Dit kun je even checken: als hij staat te produceren kun je de DC spanning uitlezen op het scherm, normaliter is die ongeveer 350 Volt voor 1-fase en 750 Volt voor 3-fase systemen. Als die inderdaad 750 Volt is zou ik je P300's zeker in serie in één string laten zitten anders heb je niet genoeg spanning op je string staan en dan doet-ie het niet.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
arnnold schreef op zondag 15 januari 2017 @ 21:45:
Je hebt het bij het rechte eind hoor. Ik zit ernaast. Het is een één fase. Ik las in het boekje "depending on 1 phase or 3 phase" de juiste aansluiting kiezen. Hij geeft dus 350 DC. En geldt ook voor deze configuratie dat één string de meeste opbrengst geeft?. Of zeg jij splitsen in twee strings. Het is maar een idee van mij. Ik lig op het westen en als door een aanpassing er meer binnen te halen is zou het leuk zijn.
[...]
Met 2x9 optimizers parallel zou je op een 1-fase omvormer prima resultaten kunnen krijgen als je panelen niet al te lage spanning afgeven en je geen last hebt van ongelijkmatige schaduw binnen één string van 9 panelen. Of je er een hogere opbrengst uit krijgt durf ik niet te voorspellen, maar het gaat zeker werken. Alleen een testje kan uitwijzen of dit ook efficiënter werkt of niet. 18 panelen is behoorlijk lang voor 350 V, dus je optimizers zullen nu vooral de spanning omlaag moeten brengen. Met 9 panelen in serie zullen ze de spanning waarschijnlijk juist iets omhoog moeten regelen om op 350 V uit te komen. Ik gok dat je met 2x10 of 2x11 nog wat beter af zou zijn maar dat moet maar net passen dan natuurlijk.

Let wel, als je last hebt van ongelijkmatige schaduw op je panelen (dus één of een paar tegelijk in de schaduw) heeft SolarEdge juist baat bij een lange string. De beschaduwde panelen kunnen dan makkelijker door de andere optimizers worden gecompenseerd. Dan zou ik ze zeker gewoon in één string laten zitten, no matter what.

Jerrythafast wijzigde deze reactie 15-01-2017 22:14 (4%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ocaj schreef op zondag 15 januari 2017 @ 22:34:
Kun je op een Solaredge 2 strings parallel aansluiten? Gaat dan de hele data-communicatie over de DC-kabel met de optimizers niet de mist in?
De string komt op 350V uit, maar ik heb altijd het idee dat de omvormer de optimizers vertelt hoe ze dat moeten doen. De optimizers communiceren toch niet onderling? En als je 2 strings parallel aansluit zie ik niet in hoe de omvormer de optimizers nog aan moet sturen.
Ik ben het met je eens dat ik het knap vind dat die dingen blijkbaar weten hoe ze zijn aangesloten, maar ik had er speciaal de installatiegids even op nageslagen. Als je zoekt naar 'parallel' vind je:
quote:
Connecting Power Optimizers in Strings
You can construct parallel strings of unequal length, that is, the number of power optimizers in each string does not have to be the same. The minimum and maximum string lengths are specified in the power optimizer datasheets. Refer to the SolarEdge Site Designer for string length verification.

Connecting the Strings to the Inverter
Connect the string to the DC input pairs. If required, connect additional strings in parallel using an external combiner box/branch cables before connecting to the inverter.
NOTE: SolarEdge’s fixed input voltage architecture enables the parallel strings to be of different lengths. Therefore, they do not need to have the same number of power optimizers, as long as the length of each string is within the permitted range.
Wat de omvormers met 2 string-aansluitingen doen weet ik niet zeker, maar ik verwacht dat die ze gewoon intern parallel zetten en beide strings dus 350 V of 750 V zullen worden. Het bespaart je dan vooral een extern stukje Y-kabel waar een hoge stroom doorheen gaat lopen.

Jerrythafast wijzigde deze reactie 16-01-2017 21:26 (7%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ocaj schreef op maandag 16 januari 2017 @ 23:41:
Ok, weer wat geleerd. Het leek me niet logisch, maar als er bij het ontwerp rekening mee is gehouden dan zou het moeten kunnen. Detectie van de topologie hoe het aangesloten is, is op zich niet zo heel spannend. Je kunt elke optimizer aan de omvormer laten vertellen welke zijn directe buren zijn, of welke optimizers hij op welke aansluiting ziet. Daarmee moet je er als omvormer wel uit kunnen komen.

Maar voor de zekerheid wel dus altijd de site designer raadplegen?
(ik heb twee korte strings van 8 optimizers op 2 losse omvormers, dus daar valt weinig eer aan te behalen :-)
Nouja, als je het op één oriëntatie hebt liggen en wel wat onregelmatige schaduw erop hebt kun je dus misschien met een enkele string op één omvormer een hogere efficiency halen :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Drenthe schreef op woensdag 25 januari 2017 @ 19:51:
Recentelijk ook gestart met het lokaal monitoren van mijn SolarEdge PV systeem met deze software. Allereerst mijn complimenten voor het behaalde resultaat. De conversie van versleutelde SolarEdge data werkt perfect en de overige software is behoorlijk transparant.

Mijn hardware is een RasPi 3 met een extra Trendnet 1G USB/Ethernet converter. Maak via deze weg geen gebruik van directe PVoutput upload maar gebruik de SE-logger als interface naar Domoticz.

Ben echter tegen een kleine tekortkoming aangelopen:
Via de cronjob wordt iedere nacht een extra tcpdump process opgestart. De oude processen worden echter niet goed afgesloten en bliiven actief in de achtergrond draaien). Hierdoor blijven de pcap files constant groeien en zal de SE-logger na verloop van tijd vast lopen door gebrek aan geheugen (memory leak) of CPU capaciteit. Dit probleem is ook nog aanwezig in versie 8 van de software.

Is er al iemand die dit probleem heeft opgelost?
Probeer in se-logger.service eens KillMode=control-group. Er was hier eerder iemand met hetzelfde probleem die het daarmee wist op te lossen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Yoki1985 schreef op vrijdag 27 januari 2017 @ 11:48:
Ik heb de software nu ook een 2 tal weken draaien en krijg nu de volgende foutboodschap. Heeft hier nog iemand last van?
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (1129, "Host '192.168.0.11' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"); retrying...
Warning: Could not connect to database: (1129, "Host '192.168.0.11' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"); retrying...
Warning: Could not connect to database: (1129, "Host '192.168.0.11' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"); retrying...
Warning: Could not connect to database: (1129, "Host '192.168.0.11' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"); retrying...
Traceback (most recent call last):
  File "/opt/se-logger/liveupdate.py", line 477, in <module>
    db = DBManager(db_user, db_pass, db_name, db_host)
  File "/opt/se-logger/liveupdate.py", line 356, in __init__
    self.conn = MySQLdb.connect(user=user, passwd=passwd, db=db, host=host)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1129, "Host '192.168.0.11' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'")

Mogelijk is dit hetzelfde probleem als de persoon boven je, namelijk dat de service bij herstarten niet wordt gestopt en er dus elke dag een extra verbinding met de MySQL server bij komt.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Misschien moeten we elders op GoT eens op zoek naar iemand die een betrouwbare manier weet om tcpdump output files betrouwbaar te roteren met behoud van de pipe naar liveupdate. Met betrouwbaar bedoel ik dan dat de output files niet corrupt/truncated kunnen raken en de kans zo klein mogelijk blijft dat er data langs de logger komt zonder gelogd te worden in een pcap file.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
NL1PSR schreef op zaterdag 28 januari 2017 @ 12:19:
Sinds 26 januari ben ik in het bezit van een solaredge wave HD. Deze is gekoppeld aan een RPI middels wifi en de eth0 gaat vervolgens het netwerk op. Echter tot op heden zie ik niets in de database terug. Ook het script om de key uit te lezen geeft geen gevonden key terug tot op heden. Wat kan hier de oorzaal van zijn? De pcap files worden wel gewoon gevuld zo te zien.

tcpdump.log // tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 b$

se-logger.log // Reading from -
Gefeliciteerd met je nieuwe systeem :)

Eerst even een kleine check:
1. Wordt er wel data op de website van SolarEdge zichtbaar? Oftewel, heeft de omvormer wel contact kunnen leggen met het internet?
2. Worden de pcap files wel goed gevuld? Je zou een paar honderd kB op een dag moeten krijgen.

Als de pcap files wel gevuld worden, wordt in ieder geval de data wel bewaard dus dat is mooi. Als er niks in de database terecht is gekomen en het find-key-in-pcap script ook geen key kan vinden is mijn conclusie dat de omvormer voordat het eerste capture bestand werd gemaakt al is begonnen met het versleutelen van de communicatie (misschien af-fabriek al :?). In dat geval zul je je omvormer met een USB-kabel aan een computer moeten hangen en het get-key-by-rs232 script moeten gebruiken. Dat script vraagt (vrij letterlijk) aan de omvormer wat zijn key is. Die computer mag de Pi zijn, maar dat hoeft niet. Het kan zelfs op Windows.

Als je de key hebt weten te bemachtigen kun je met een simpel commando liveupdate.py alle pcap files die je nu al hebt laten ontcijferen. Dus de data van deze dagen is niet verloren.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
NL1PSR schreef op zaterdag 28 januari 2017 @ 19:30:
[...]


De leverancier heeft gister (27-01-2017) de installatie aangemeld op de site van Solaredge en deze is dan ook vanaf gister daar te zien incl. data. Tevens heb ik zojuist doormiddel van wireshark de pcap files geopend en daar staat zeker data in. Ben dus bang dat hij vanaf fabriek versleuteld is geweest de doos was namelijk zeker weten gesloten en niet eerder geopend. Enige wat ik wel weet is de man had een soort sd chip bij zich welke zorgde voor een update vertelde hij. Dat zou normaal via internet lopen. Dat is vermoedelijk de oorzaak.

Wat voor aansluiting connector RS232 zit er op de omvormer weten jullie dit toevallig? Dan ga ik hem binnen kort even met de RS232 uitlezen.
Er zit een mini-B of micro-B USB-aansluiting in (ik weet niet welke van beide, dat kan iemand anders misschien wel vertellen :?). Wanneer je hem daarmee aansluit verschijnt hij als een serieel modem op je computer.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
NL1PSR schreef op zondag 29 januari 2017 @ 11:04:
[...]


Is er nog een methode om snel te zien of de pcap files encrypted data bevatten? Voordat ik de omvormer open schroef en aan Usb koppel.
Als je de data in Wireshark bekijkt (hex dump van de TCP payload) zou je het volgende patroon moeten zien:
code:
1
2
BARKER----- SIZE- ISIZE SEQ-- SENDER----- RECEIVER--- CMD-- DATA
12 34 56 79 xx xx xx xx xx xx xx xx xx xx xx xx xx xx 3d 00 ...

Elk bericht begint met een 4-byte 'barker'. Die 4 bytes zijn altijd 12 34 56 79. Daarna volgen 14 bytes waarin ook het serienummer van je omvormer voorkomt en daarna staat het commando-nummer (2 bytes). De encrypted data is te herkennen aan het gebruik van commando's 3d 00 en 03 05. Als het niet encrypted is zie je hier diverse andere commando's voorbijkomen, voornamelijk 00 50 (telemetrie data) en 80 00 (acknowledgements).

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
NL1PSR schreef op zondag 29 januari 2017 @ 22:43:
[...]


Nou zojuist heb ik de key uitgelezen middels de serial poort. Dit ging perfect overigens. Echter nu heb ik de liveupdate.py aangepast met de juiste key. En daarna de zaak proberen in te lezen. Er treed geen error op in de logging maar helaas ook geen gegevens in de database.

python /opt/se-logger/liveupdate.py /opt/se-logger/*.pcap
Reading from /opt/se-logger/solaredge-20170124223217.pcap
Reading from /opt/se-logger/solaredge-20170124223630.pcap
Reading from /opt/se-logger/solaredge-20170124225910.pcap
Reading from /opt/se-logger/solaredge-20170124225912.pcap
Reading from /opt/se-logger/solaredge-20170125233001.pcap
Reading from /opt/se-logger/solaredge-20170126084241.pcap
Reading from /opt/se-logger/solaredge-20170126084609.pcap
Reading from /opt/se-logger/solaredge-20170126084655.pcap
Reading from /opt/se-logger/solaredge-20170126233001.pcap
Reading from /opt/se-logger/solaredge-20170127233002.pcap
Reading from /opt/se-logger/solaredge-20170128112457.pcap
Reading from /opt/se-logger/solaredge-20170128233001.pcap
Reading from /opt/se-logger/solaredge-20170129201715.pcap
Reading from /opt/se-logger/solaredge-20170129213851.pcap
Reading from /opt/se-logger/solaredge-20170129214622.pcap
End of file. Shutting down.
Helemaal niks in de database? -O- Zou je een pcap (of een paar, mag ook) willen doorsturen of ergens te download zetten? Stuur eventueel even een persoonlijk bericht. Dan zou ik d'r even in kunnen turen om te zien of er iets bijzonders is aan jouw omvormer.

Ik neem trouwens aan dat je se-logger versie 0.0.8 hebt. (Het versienummer staat in de readme, ik moet het nog eens in de code zelf zetten...)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
tjanssen schreef op woensdag 1 februari 2017 @ 17:03:
@Jerrythafast: zijn er plannen om ondersteuning in te bouwen voor PostgreSQL?
Nope, dat laat ik dan aan jou over ;) Ik draai immers slechts MySQL op mijn Pi.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Domokoen schreef op donderdag 2 februari 2017 @ 14:02:
Bij deze mijn situatie: ik kan de netwerkcommunicatie van de omvormer niet afvangen, omdat deze via Wifi verbindt met mijn router. Tot het moment dat de encryptie werd geactiveerd (ruim een jaar geleden) had ik dit opgelost door een DNS entry in mijn router te maken die verwees naar een lokale server voor "prod.solaredge.com". Deze draaide dan een proxy op poort 22222 die naar de "echte" IP van prod.solaredge.com forwardde. Dit werkte tot het moment dat de encryptie werd geactiveerd. Ik heb wel de key kunnen afvangen in mijn proxy :) . Maar het lukt nu niet meer om de communicatie te proxyen.
In de pcap bestanden die jullie opvangen, kunnen jullie zien waarnaar de omvormer connecties opzet? Is dit nog steeds alleen "prod.solaredge.com" op poort 22222 met het TCP protocol? Of is er nu iets bijgekomen dat ik nu niet proxy?
editAntwoord op mijn eigen vraag: de inverter switcht soms ook naar poort 22221, deze moet ook bijgehouden worden. O-)
En voordat je hier weer tegenaan loopt: hij wisselt ook wel eens naar poort 80. Protocol blijft hetzelfde, het is dus geen HTTP verkeer.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@tjanssen, ik kan bevestigen dat je 'm kunt pingen als hij in night mode staat. Als je ernaartoe loopt en op het knopje drukt gaat het licht ook gewoon aan en kun je door de menu's bladeren. Het is alleen de communicatiemodule die dan aan staat. Hoeveel sluipverbruik dat heeft weet ik eerlijk gezegd ook niet.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op woensdag 1 maart 2017 @ 22:52:
Indertijd logde ik mijn SE3000 omvormer met S0 kWh-meter met 1000 pulsen per kWh die ook terug registreerde. De meter was elektrisch gekoppeld aan een Youless die logde naar PVoutput.
Dit had tot gevolg dat tijdens de "slaap tijden" het verbruik van de omvormer ook werd gemeten. Zie link hieronder naar PVoutput van 18 januari 2015. Hier zie je dat de omvormer zelf best nog wel wat verbruikt:

http://pvoutput.org/intra...1142&dt=20150119&gs=0&m=0.

De nauwkeurigheid van de meter in combinatie met de Youless zal niet al te best zijn, maar het geeft misschien wel een indruk.

sinds ruim een jaar is de meter vervangen door een eenrichtings meter van Finder. Dat geeft een wat nauwkeuriger meting van alleen de opbrengst :) .
20 Wh om 8:30, dus dat is ongeveer 2,35 Watt gemiddeld tussen middernacht en 8:30 's ochtends.

ocaj komt een stuk lager uit, zeker niet meer dan 1 Watt. Kan aan twee dingen liggen: versie van de omvormer/firmware, of meetnauwkeurigheid.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Klinkt alsof er inderdaad een verstoring is geweest bij de SolarEdge monitoring server. Heb het zelf niet gemerkt (te drukke dag gehad om te kijken), maar het lijkt nu in ieder geval allemaal door gekomen te zijn.

@Yoki1985, dat de pcap groter werd kan ik nog verklaren doordat de omvormer telkens wel probeerde om contact te leggen met de server. Die pcap staat waarschijnlijk vol met mislukt verkeer :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
EarlAlnot schreef op woensdag 29 maart 2017 @ 12:52:
Na een jaar zoeken naar de meest betrouwbare boom in het oerwoud van zonnepaneelaanbieders is 2 weken het systeem geïnstalleerd, bestaande uit 15x Winaico WSP 300WP M6 PERC panelen met SE P300 optimizers op het dak gekomen icm met een SE3000H omvormer. Systeem staat op 240 graden en heeft last van schaduwval in de namiddag (schoorsteen en slagschaduw blok naast mijn huis).

Al langer klungel ik met Arduino's en arduino-achtige stuur- en monitoringssystemen om mijn dataverslaving te stillen en had al de benodigde DSR120's aangeschaft. Raspberry Pi's/Linux leek me een stap te ver/breed of niet van toepassing voor de projecten die ik nu draai. Twintig jaar geleden wel eens mee begonnen (op de PC).

Na het lezen van dit mooie topic en brede gebruikersplatform toch erg enthousiast geworden. Dit in combinatie met de wat teleurstellende SE monitoring omgeving kon ik toch de drang naar meer en vooral beter inzichtelijke data uit die omvormer niet weerstaan en heb een Raspberry Pi 3 Model B 1G gekocht. Deze komt morgen binnen.

Geluk bij een ongeluk is dat de omvormer te krap bemeten was (AC kant) en deze wordt volgende week door de installateur vervangen. De installateur kwam er zelf mee, en hij wordt netjes omgeruild voor een SE3680H. Dus als het systeem dan draait zal die encryptiesleutel niet zo'n probleem zijn.

Verder snap ik niet al die data in PVOutput, maar dat is een ander topic.

Waarom dit schrijven? Wel een introductie (zag geen ander topic waar je je systeem kon introduceren) en alvast de hoop op wat assistentie bij de eerste schreden op het linux gebied mocht dat nodig zijn.

Waarom zo'n lange post? Het is mijn eerste post bij Tweakers, dus moet er nog even inkomen.
Welkom Earl! En gefeliciteerd met je aankoop ;) Ik denk dat in het algemeen de 'place to be' om je systeem voor te stellen het Elektriciteit opwekken met zonnepanelen (PV) Deel 5 topic is. Al stellen velen daar eerst hun kale dak voor met de vraag "wat moet ik hierop leggen" :9

Leuk dat je gelijk het SolarEdge monitoring topic hebt gevonden. Als je specifiek ergens hulp bij nodig hebt horen we het wel ;)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


Acties:
  • +1Henk 'm!

  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@EarlAlnot wanneer je de encryptiesleutel niet hebt zal encrypted verkeer inderdaad zorgen voor 'mystery bytes' meldingen in liveupdate.log. Veel daarvan zouden berichten van 22 bytes moeten zijn.

Wat betreft de monitoring website: mijn eigen implementatie gebruikt Vega (versie 2.6) voor de grafieken. Ik ben tegen wat problemen aan gelopen om dit verder uit te bouwen (bugjes in Vega). Ik ben hem nu aan het porten naar Vega 3.0. Afhankelijk van of ik daar geen problemen meer mee heb en de performance ook wat beter is zal ik die versie op GitHub gooien. Anders denk ik erover om opnieuw te beginnen met Highcharts, iedereen schijnt dat tegenwoordig te gebruiken en dat heeft vast een goede reden :9

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
ocaj schreef op zaterdag 8 april 2017 @ 00:03:
( Overigens vermoed ik dat de omvormer en optimizers wel vaker communiceren, want hij stuurt heel nauwkeurig op de DC-spanning, dat is nagenoeg altijd tussen de 1,5 en 1,52 x de AC-spanning, ook als de AC een beetje schommelt)
Dat vermoed ik inderdaad ook... dat "Module Communication" lampje is echt een dikke leugen volgens mij, dat licht alleen even op bij telemetriedata :z

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
De SD-kaart van de RPi is inderdaad de zwakste schakel in het geheel...

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
EarlAlnot schreef op dinsdag 11 april 2017 @ 22:05:
Na drie dagen had ik met een test account echter hetzelfde. Ook als ik via de prompt het php script draait. Zag dat er wel heel veel data in 1x verstuurd werd. Zag in de PVOutput help dat de batching alleen 30 statussen per keer accepteert. Heb limit aangepast van 100 naar 30 in php bestand. Als ik nu in de prompt het php script draai, gaat het goed en worden er (logischerwijs) 30 regels per keer toegevoegd. Paar keer herhaald en alles staat er nu in. PVo_last_live krijgt nu ook de timestamp.
Ai, dat is inderdaad een goede dat wat duidelijker gedocumenteerd moet worden. Ik ga dit even duidelijk in de startpost van het topic zetten. Het limiet wordt van 30 naar 100 verhoogd wanneer je een donatie aan PVOutput doet. Niet-donateurs moeten daar dus 30 invullen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@3ssen Mogelijk moet je bij Raspbian de packages php5-cli, php5-mysql en php5-cli hebben. Maar installeren van PHP is nog niet per se heel erg belangrijk nu, dus het geeft niet als dat nog niet lukt.

Dat MySQL bij jou niet wil installeren is wel vreemd. Heb je wel "apt-get update" gedraaid voordat je probeerde te installeren? Mogelijk probeert hij verouderde download URLs te gebruiken.

Het hoeft trouwens niet per se helemaal te werken vandaag. Het liefst heb je de MySQL server en de solaredge-logger service aan de gang, maar als dat niet lukt heb je twee opties:
1. Simpele oplossing als je er nog niet klaar voor bent: Omvormer even niet aan het internet hangen... (of anders eruit trekken zodra de installateur is vertrokken :9 )
2. Moeilijke oplossing als hij per se aan internet moet: Zorg dat in ieder geval de netwerk instellingen op je switch goed zijn en je dus de poort van de omvormer kunt afluisteren op de Pi. Sectie 4.1 en 4.2 kun je bij port mirroring inderdaad skippen dus dat scheelt een boel werk. Met dit commando (dat in de achtergrond blijft draaien) kun je dan in ieder geval het TCP netwerkverkeer dat je Pi ziet bewaren:
jij@jepi$  tcpdump -i eth0 -U -w capture.pcap tcp 2>> tcpdump.log &
jij@jepi$  disown
Enige dat je dan niet moet doen is je Pi rebooten want dan stopt het commando natuurlijk weer ;) Binnen nu en 48 uur heeft je omvormer zijn encryptiesleutel wel prijsgegeven. Die moet dan in dit bestand terecht zijn gekomen.

Jerrythafast wijzigde deze reactie 14-04-2017 14:28 (21%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Als het goed is wel, linux ondersteunt al sinds jaar en dag IPv6. Het lange wachten was op de providers om het aan te zetten. SolarEdge heeft trouwens nog geen IPv6-adressen voor hun domeinnamen (AAAA DNS entries) dus de omvormer zal nog steeds alles via IPv4 laten lopen.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@andrerij Hmmmmm dat is gek. Ik vermoed dat je een nieuwe firmware versie in je omvormer hebt die net iets meer (of andere) informatie verzendt. Je zou even kunnen checken of er in liveupdate.log foutmeldingen worden gegeven (waarschijnlijk niet). If not, dan ga ik je vragen of je een capture file (.pcap) naar me zou willen sturen. Dan kan ik kijken wat er anders is aan jouw omvormer-data en kan ik de software bijwerken zodat het hiermee overweg kan.

@jacovn Als je een managed switch hebt ben je met een Pi en wat toebehoren al klaar inderdaad. Je kunt de switch zo instellen dat data van de omvormer naar de Pi wordt gespiegeld. Logging software op de Pi en gaan met die banaan framboos!

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@jacovn Standaard wordt de MySQL database inderdaad op het SD-kaartje opgeslagen. Dat is hier nu een jaar lang goed gegaan, maar het SD kaartje is wel de zwakke plek in het geheel. Ik vang het nu op door regelmatig de .pcap files te kopiëren naar externe opslag, maar een betere oplossing is waarschijnlijk om een USB harddisk aan te sluiten en MySQL (of de hele Linux-installatie) daarop te zetten.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


Acties:
  • +1Henk 'm!

  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Ik heb zojuist versie 0.0.9 van solaredge-logger online gezet. Drie fixes hierin:
- Af en toe kreeg je in liveupdate.py de melding 'Data loss: 0 bytes'. Dat sloeg natuurlijk nergens op.
- Het issue dat Yoki1985 had met pvo-upload.php vanwege de tijdzone op het westelijk halfrond is opgelost.
- Deze versie werkt ook met de firmware van de 3-fasenomvormer van andrerij.

Ik ben de afgelopen dagen ook weer bezig geweest met de monitoring website. Ik hoop deze maand een wat meer toekomstgerichte versie te hebben die op GitHub kan zodat we er samen aan verder kunnen klussen. Ik denk erover om in navolging van @ocaj ook de historische data apart te verzamelen (in aparte database tabellen of in losse bestandjes, daar twijfel ik nog over). Dan hoef je geen 'moeilijke' queries op de database te doen om de data van een bepaalde dag eruit te vissen. Of erger: de totalen van elke dag.

Jerrythafast wijzigde deze reactie 17-04-2017 22:44 (21%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
andrerij schreef op dinsdag 18 april 2017 @ 20:00:
@jacovn de query kan er als volgt uitzien:
PHP:
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
<?php
$d1 = '2017-04-17 20:30:00';
$mysqli = new mysqli('localhost', 'USER', 'PASSWORD', 'solaredge');
$b = strptime($d1, '%Y-%m-%d');
$today_timestamp = mktime(0,0,0,$b['tm_mon']+1, $b['tm_mday'], $b['tm_year']+1900) - 3600*(1+date("I",mktime(0,0,0,$b['tm_mon']+1, $b['tm_mday'], $b['tm_year']+1900)));
$tomorrow_timestamp = mktime(0,0,0,$b['tm_mon']+1,  $b['tm_mday']+1, $b['tm_year']+1900) -3600*(1+date("I",mktime(0,0,0,$b['tm_mon']+1, $b['tm_mday']+1, $b['tm_year']+1900)));
$query = sprintf("SELECT
            Max(`e_day`) AS `solaredge`
            FROM telemetry_inverter_3phase
            WHERE `timestamp` > %s AND `timestamp` <= %s", $today_timestamp, $tomorrow_timestamp);
$result = $mysqli->query($query);
$row = mysqli_fetch_assoc($result);
echo $query . '<BR>';
echo number_format($row['solaredge']/1000, 3, ',', '.') .  '&nbspkWh<BR><BR>' ;
$query = sprintf("SELECT
            Max(`e_day`) AS `solaredge`,
            `timestamp` AS `datum`
            FROM telemetry_inverter_3phase
            WHERE `timestamp` > %s AND `timestamp` <= %s
            GROUP BY (`timestamp`) DIV 300
            ORDER BY (`timestamp`) DIV 300 ASC", $today_timestamp, $tomorrow_timestamp);
$result = $mysqli->query($query);
echo $query . '<BR>';
while ($row = mysqli_fetch_assoc($result)) {
    echo date("Y-m-d H:i",$row['datum']+ 3600*(1+date("I",$row['datum'])))  . '&nbsp&nbsp' . number_format($row['solaredge']/1000, 3, ',', '.') . '&nbspkWh<BR>';
}
?>
 

Als eerste wordt de database geopend.
Daarna wordt de locale datum omgezet naar UTC waarbij rekening gehouden wordt met de zomer- en wintertijd (...... - 3600*(1+date("I", ......). $today_timestamp is om 0:00:00 uur op de gekozen dag en $tomorrow_timestamp is de volgende dag om 0:00:00 uur.
Vervolgens wordt de query voor de maximale productiewaarde van de betreffende dag opgehaald.
De tweede query geeft de productiewaarde per 5 minuten over de gekozen dag.
Klein tipje met datums, tijden en unix timestamps. PHP doet al die conversies vanzelf voor je ;)
PHP:
1
2
3
4
5
6
7
8
//Unix timestamp van middernacht:
$t_midnight_today = (new DateTime("today 00:00:00"))->getTimestamp();

//Unix timestamp van middernacht morgen:
$t_midnight_tomorrow = (new DateTime("tomorrow 00:00:00"))->getTimestamp();

//Unix timestamp omzetten naar datum+tijd in de lokale tijdzone:
$datetimestring = date("Y-m-d H:i", $timestamp);

De queries zijn in principe correct, maar SolarEdge maakt het ons niet gemakkelijk: de e_day waarde begint weer bij 0 te tellen als halverwege de dag de omvormer wordt gereset, dus dan krijg je een te lage waarde voor de betreffende dag als je MAX(e_day) doet. De oplossing (als je het in een MySQL query wilt oplossen) is een gruwelijk ingewikkelde query. Ziehier een voorbeeld om van elke dag in april de minimum- en maximumtemperatuur (t_min/t_max in °C), de maximum 5-minutenoutput (de_max in Wh), maximum vermogen (p_max in W) en totaal energie (e_day in Wh) te krijgen:
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT date, MIN(temperature) t_min, MAX(temperature) t_max, MAX(de_day) de_max, MAX(p_active) p_max, MAX(se_day) e_day
FROM (
  SELECT
    IF(temperature = 0, NULL, temperature) temperature, de_day, p_active,
    @curdate := FROM_UNIXTIME(timestamp, "%Y%m%d") date,
    @prevsum := IF(@prevdate = @curdate, @prevsum + de_day, de_day) se_day,
    @prevdate := @curdate date2
  FROM telemetry_inverter
  JOIN (SELECT @prevsum := 0, @curdate := NULL, @prevdate := NULL) vars
  WHERE timestamp BETWEEN UNIX_TIMESTAMP("2017-04-01") AND UNIX_TIMESTAMP("2017-05-01")
  ORDER BY timestamp
) x
GROUP BY date;

Ik overweeg sterk om een tabel aan de database toe te voegen waar resultaat van bovenstaande query in staat. Het alternatief zou zijn om gewoon alle 5-minutendata op te vragen en in bijvoorbeeld PHP te verwerken. Dat bespaart opslag, maar kost wel wat meer bandbreedte tussen de MySQL server en PHP. En bij elke query moet die hele verwerking weer worden gedaan.

Het probleem met weer beginnen bij 0 is trouwens nog driedubbel zo erg bij de optimizers. Die resetten namelijk hun tellers als ze net effe te weinig licht op hun paneel krijgen om wakker te blijven.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Ai, dat is niet zo mooi -O- Al lijkt het erop dat je er wel zo een terminal op zou kunnen solderen :+

Ik zie wel nog RS-485 aanduidingen op het PCB. Ik zou even de handleiding erbij moeten zoeken om te kijken hoe de installateur RS-485 zou moeten aansluiten op deze omvormer. Het moet toch sowieso kunnen zonder al te veel gerommel.....

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Ik vrees het wel inderdaad (hoewel er meer spul in de wereld is dat op RS-485 werkt, dus misschien gaat er wel een wondere wereld voor je open als je daar spullen voor in huis hebt :9).

Laatste optie die ik kan bedenken (die is nog nooit geprobeerd, dus niet zeker of het werkt) is de omvormer terug te zetten naar fabrieksinstellingen. Dit is een optie in het installateursmenu en zal hoogstwaarschijnlijk tot gevolg hebben dat je lifetime opbrengstteller weer bij 0 begint te tellen. De hoop is dat de omvormer daarmee ook weer naar niet-encrypted communicatie terugschakelt. Dat is immers hoe hij af-fabriek wordt geleverd.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
Er staat me iets van bij dat hij via de RS-485 verbinding geen sleutel wilde prijsgeven, maar proberen kan sowieso geen kwaad (mits je niks sloopt natuurlijk :9). Als factory default niet werkt is dit de enige hoop.

Hiervoor moet je het onderdeel waar BAGBAG op staat er even uit halen en aders van een seriële kabel in de linker BAG gaatjes steken en de linker switch op foto 4 omhoog zetten. Zie pagina 45 en verder van de handleiding.

Jerrythafast wijzigde deze reactie 21-04-2017 12:16 (6%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Aegle schreef op zaterdag 22 april 2017 @ 17:28:
Ik ben al even aan het pielen geweest, maar krijg het niet voor elkaar om een query te maken om te bepalen welk van de panelen het best presteren sinds ik gestart ben met de logging volgens de methode "Jerry" ;) .

Moet toch niet zo heel moeilijk zijn? Men neme de MAX per paneel over een bepaalde tijd reeks. Helaas krijg kan ik er geen chocola van maken. Mijn SQL skills blijven achter bij mijn eigen verwachting... 8)7 .
Is inderdaad ook weer geen gemakkelijke. Hier een query om per paneel de totale opbrengst in Wh te berekenen:
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT HEX(op_id) optimizer, SUM(de_day*0.25) energy
FROM (
  SELECT
  op_id,
  IF(op_id = @prevop AND uptime > @prevup, e_day - @prevval, e_day) de_day,
  @prevval := e_day,
  @prevup := uptime,
  @prevop := op_id
  FROM telemetry_optimizers
  JOIN (SELECT @prevval := 0, @prevup := 0, @prevop := 0) vars
  ORDER BY op_id, timestamp
) x 
GROUP BY op_id;

Strategie die ik toepas: bereken eerst (inner query) de verschillen in opgewekte energie tussen opeenvolgende datapunten van elk paneel (e_day - @prevval). Hierbij zijn twee valkuilen te omzeilen: de overgang naar de volgende optimizer (op_id = @prevop) en een herstart van dezelfde optimizer (uptime > @prevup). Vervolgens (outer query) tel ik alle aldus berekende verschillen behorend bij dezelfde optimizer bij elkaar op.

Het is ook geen snelle query geworden...
+-----------+-----------+
| optimizer | energy    |
+-----------+-----------+
| 1043xxxx  | 270896.5  |
| 1052xxxx  | 331992.5  |
| 1061xxxx  | 290062.5  |
| 1063xxxx  | 330801.5  |
| 1065xxxx  | 343457.75 |
| 1065xxxx  | 324668.75 |
| 1065xxxx  | 321871.5  |
| 1065xxxx  | 328013    |
| 1065xxxx  | 342041.5  |
| 1065xxxx  | 324238    |
| 1066xxxx  | 338860    |
| 10BCxxxx  |   1416.75 |
+-----------+-----------+
12 rows in set (16.90 sec)

Mogelijk is de query nog niet helemaal goed, want ik kan hem maar één keer uitvoeren. Daarna moet ik opnieuw verbinden voordat hij hem weer slikt.

Hier is gisteren een brakke optimizer verangen. Onderste regel is de nieuwe optimizer, vandaar de lage score daarvoor. Gaat om deze mafkees. Het betreffende paneel had altijd, elke dag, steevast de laagste opbrengst. Vandaag gaat het erom spannen of hij de hoogste opbrengst haalt of 2e wordt. Een optimizer-wissel kan dus een behoorlijk verschil in opbrengst geven! De oude optimizer van dat paneel is trouwens de bovenste regel.

Jerrythafast wijzigde deze reactie 22-04-2017 19:04 (1%)
Reden: Handmatig kommaatjes uitgelijnd

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Raldnor schreef op maandag 24 april 2017 @ 22:59:
Super script! Bedankt voor de heldere uitleg!

Na het installeren had ik problemen met de database gevuld krijgen, en dat bleek te liggen aan een controle op het adres van de inverter.
In de code van liveupdate.py staat deze regel:
code:
1
if etherhdr[6:9] == "\x00\x27\x02":  # Inverter speaking.

Op basis van de headers in mijn pcap heb ik die regel toen veranderd naar:
code:
1
if etherhdr[6:9] == "\x00\x40\x9d":  # Inverter speaking.

Hierna kreeg ik wel keurig data in de database.
Kan het zijn dat er verschillende types communicatiemodules zijn?
Die drie bytes komen mij bekend voor! Heb jij toevallig een SolarEdge WiFi module in je omvormer zitten? If so, dan ben je de tweede die ik tref met deze 3 bytes als begin van het MAC-adres en zal ik deze inderdaad maar 's officieel gaan laten herkennen als SolarEdge-related netwerk spul.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
andrerij schreef op dinsdag 25 april 2017 @ 10:53:
[...]

@Jerrythafast ik heb de query aangepast voor de energy per dag en ziet er als volgt uit:
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT HEX(op_id) optimizer, FORMAT(SUM(de_day*0.25),2,'pt_BR') energy
FROM (
  SELECT
  op_id,
  IF(op_id = @prevop AND uptime > @prevup, e_day - @prevval, e_day) de_day,
  @prevval := e_day,
  @prevup := uptime,
  @prevop := op_id
  FROM telemetry_optimizers
  JOIN (SELECT @prevval := 0, @prevup := 0, @prevop := 0) vars
  WHERE `timestamp` > 1492992000 AND `timestamp` < 1493078400
  ORDER BY op_id, timestamp 
) x 
GROUP BY op_id;

De gekregen waarden wijken echter af van de waarden die op de monitorwebsite van Solaredge staan.
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
op_id        website     query       verschil
               Wh          Wh         Wh
2020xxxx     840,00      830,50      9,50 
2020xxxx     832,00      825,00      7,00 
2020xxxx     852,00      844,75      7,25 
2020xxxx     838,75      838,75      -   
2020xxxx     823,75      815,25      8,50 
2020xxxx     831,50      826,50      5,00 
2020xxxx     864,50      857,50      7,00 
2020xxxx     832,50      832,50      -   
2020xxxx     823,50      823,50      -   
2020xxxx     804,25      804,25      -   
2020xxxx     886,00      877,00      9,00 
2020xxxx     823,25      823,25      -   
2020xxxx     840,50      834,25      6,25 
2020xxxx     865,00      865,00      -   
2020xxxx     804,25      799,75      4,50 
2020xxxx     847,00      842,50      4,50 
2020xxxx     872,25      859,75      12,50 
2020xxxx     824,50      824,50      -   
2020xxxx     851,75      842,75      9,00 
2020xxxx     884,50      873,25      11,25 
2021xxxx     890,75      885,75      5,00 
2021xxxx     877,00      877,00      -   
2021xxxx     874,50      874,50      -   
2021xxxx     876,00      871,75      4,25

Waardoor ontstaan deze verschillen. Ik heb mijn database gecontroleerd en de gekregen waarden staan in mijn database en ik kan niet de waarden van de monitorwebsite uit de database halen.
Je query lijkt te kloppen, bij mij komt de uitkomst van de query exact overeen met wat op de website staat. Ik zou niet kunnen verklaren waarom het bij jou niet uitkomt.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
@Raldnor, jouw 'hack' was 50% van mijn definitieve fix. Ik ga er zoiets van maken:
Python:
1
if etherhdr[6:9] in ("\x00\x27\x02", "\x00\x40\x9d"):  # Inverter speaking.

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)


  • Jerrythafast
  • Registratie: september 2012
  • Laatst online: 16-09 11:09
quote:
Raldnor schreef op donderdag 27 april 2017 @ 14:49:
[...]

Top :). Is dat andere mac adres soms van de vaste netwerkaansluiting?
You guessed it right!
quote:
Ik ben in php een frontend aan het bouwen en kwam iedere nacht een vreemde temperatuurwaarde tegen. Deze wordt verstuurd door de inverter wanneer het al lang donker is en geeft een temperatuurwaarde van -3.40282e38. Is het mogelijk om deze in het script te negeren (bijv. alle temperatuurwaardes onder de -20)? Grafieken worden een beetje messed up hierdoor. Ik kan dat ook wel in het frontend afvangen, maar vanuit het script lijkt me handiger.
Allereerst, de juiste waarde is -3.4028234e+38. Er is omtrent deze waarde al wat logica ingebakken in liveupdate.py. Als je er iets anders van wilt maken (geen idee wat dan :?) kun je dat heel gemakkelijk in regel 60 pluggen:
Python:
1
REROUND = lambda x: JouwMagischeWaardeHier if x == -3.4028234663852886e+38 else x

Misschien zou je het datamodel van de database tabel kunnen aanpassen en hier een None/NULL waarde in kunnen gooien. De frontend zal er dan wel nog steeds iets mee moeten, dus of je hier veel mee op schiet is de vraag. Om die reden heb ik er voor gekozen om gewoon deze sentinel waarde over te nemen.

Jerrythafast wijzigde deze reactie 27-04-2017 15:48 (5%)

2925 Wp op SE3000 live op PVOutput en Jerweb.nl || Nu ook De Triangel 3020 Wp (live logging in aanbouw)

Pagina: 1 2 3


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Games

'14 '15 '16 '17 2018

Tweakers vormt samen met Tweakers Elect, Hardware Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True