Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

Aegle schreef op vrijdag 13 oktober 2017 @ 23:46:
vanmorgen is de RPi met de logging software gecrasht :( . Blijkt dat de USB-drive, waarop ik de pcap-files wegschreef, het heeft begeven. Door onduidelijke oorzaak is hierdoor de koppeling met het LAN verbroken. Vanaf het werk adres repareren ging wat lastig 8) .

vanavond de USB verwijderd en in fstab de USB uitgecomment. Hij draait weer, maar helaas mis ik nu het grootste deel van de dag.

Gebruik ik expres een externe drive als 1e back-up om de SD-kaart te ontlasten, begeeft de USB drive het!
gelukkig heb ik alle data ook gekopieerd in de cloud.

Toch eens nadenken over een wat duurzamere oplossing...
Als je je key eenmaal hebt, dan hoef je je pcap files, nadat ze zijn verwerkt in de db, niet echt meer te bewaren. Dus kan je eigenlijk het volgende doen:

/opt/se-logger/se-logger-service.sh
code:
1
2
3
...
CAPTDIR=/tmp/
...


/etc/fstab:
code:
1
2
3
...
tmpfs           /tmp       tmpfs defaults,noatime,nosuid,size=100m 0 0
...


Overleven ze een reboot niet, maar worden ze in ieder geval niet meer naar disk geschreven.

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Aegle
  • Registratie: November 2013
  • Laatst online: 13-05 21:05
@MDKlapwijk: klopt, maar ik bewaar alle .pcap files om de database te restoren. Mocht om wat voor reden ook de database corrupt raken, dan kun je met
python /opt/se-logger/liveupdate.py /opt/se-logger/*.pcap

de database weer bouwen met behulp van de pcap's. Eventueel gemiste dagen kun je op deze manier weer aanvullen door de pcap van die dag(en) te selecteren.

Maar voorlopig draait ie weer... :) .

33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput


Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 08:31
Sinds 13:50 krijg ik geen waardes meer binnen. Als ik het liveupdate script laat lopen dan eindigt dit op het volgende

code:
1
2
3
4
5
6
7
Warning! Got 519 mysterious bytes left! (state=0)
8a de 7f 4c 74 a0 7f 5f 0a 62 02 58 20 37 c3 27 c3 7c 35 67 26 ff 6b 2b b6 8c b2 ea 7d 12 4c 35 c3 be 94 67 b1 b3 35 6c d0 10 2a 01 bc fd 30 fb 45 10 4e 32 10 1f 15 35 26 fb 59 a6 0d a7 83 89 36 b9 b8 b4 42 6a aa 7d cf 87 b8 22 7b e9 62 db 99 79 ef 80 7f 09 3c 21 46 dc 17 d9 39 2b 02 86 06 71 78 77 53 12 b4 f7 30 1c 6b b0 f0 52 47 4b 6e 64 98 a9 ad 8e 8d e6 0d 93 31 11 eb c6 25 4e ad e0 a8 97 8e 31 ac 8f 9e 23 4b a6 32 b8 21 16 f2 e3 c2 03 6d 4e 4f f4 13 6f 92 a0 04 42 04 5e bf 09 16 7c 87 73 df 59 f9 3a cd 96 a0 f7 86 7c f9 22 63 e1 62 57 3d 6a 4e f7 ab 05 57 80 80 34 4b 84 4d e0 79 5d 8d 0d c6 e6 01 d3 11 d5 dc 9b 63 6d 23 57 c6 b3 bc 2f ea 7a e8 ec 0f 91 de 23 d1 c2 be 66 f0 cc 6a 42 fa 53 ac 06 81 f9 e8 66 63 b1 bd a2 73 ea be a7 bc 08 bf 78 48 4b d5 b3 42 e6 17 54 1d 28 ec 65 59 1b 70 b3 e4 a8 97 e6 08 e8 34 04 f2 bf ef cc dd 7d dc 11 f3 70 dc d8 67 5a aa 58 a2 1c f7 1a 8f 23 36 e0 61 f5 8d 5b 26 22 72 b2 08 ce 71 f9 8b cc 98 96 10 58 b0 49 ae fa ff c3 f1 91 d5 4a 03 0b 9b d1 f4 a1 f7 97 b2 0c ad 92 7a c1 86 46 db 84 ff 9f 7f 46 91 14 47 8f f3 6d 28 6d 97 7c 69 b8 73 f1 7f fe 21 19 bd 94 5c cb 73 41 a5 de ec 6a 18 93 15 e9 39 33 07 c8 44 88 f7 ab 00 c7 80 5b 8e e8 7b 3a ca 9b 15 68 9a db 00 03 a7 4c 49 4e e2 29 96 55 96 a7 7a ac 08 13 ad 6e 1f 8b cc ba 53 0a a8 c1 e2 a3 b0 9d f9 f3 16 a0 4a df e8 bc 33 fa b2 12 6f cf 97 36 03 6b ad 31 9c d9 ed e4 85 36 3e 99 ba 52 33 00 77 ce 9d 0d 59 86 3f 2c 12 b0 85 d1 d1 de d4 3b 78 b6 f3 4b 39 aa 6c 57 b1 f0 78 68 ff 5d a5 82 f0 82 9b 3a b9 06 df 3c e0 84 f9 80 69 1d 2b 9f e5 bf 81 f2 4a
Warning! Got 519 mysterious bytes left! (state=0)
31 21 03 68 b2 53 bf d1 ba b1 10 04 a1 2e b7 9e 67 08 9d e8 98 e6 c2 51 07 59 e6 5c 47 aa cd fe 35 08 a8 d1 f5 e3 de bf 22 06 0d c8 81 3e 53 9c 90 f4 0b 3e 51 86 60 4d 72 0d 1f 0a ad 8b db 34 29 27 2a 42 96 c1 b5 4f c3 d6 1a 9a 3f 7b c1 82 2c e0 8c f9 87 dd 1f b5 d3 c3 55 33 69 3f df 3e e8 02 4b ef 4f 64 79 e5 78 94 b2 7f 4d 0f da ca 14 ee ee 6d 72 c4 6a 80 92 8c b4 a9 28 fa 5b 12 12 22 c4 e2 f2 62 56 bd d3 be ca 61 33 3a a2 4a 3b 8f 4a 83 0a 40 79 d7 0f 40 82 5c 00 dc c3 ba e4 ef e9 c4 34 b1 cc 69 e7 6d ba a5 ea 1c 79 b8 40 5a 34 ce 90 c4 b5 8e ee c3 92 67 a5 82 72 6e 16 6e 9f 09 68 59 f2 8e 92 6a c5 c4 9e 3f 40 ed bb ea 41 bf f7 e5 3c 4c 34 22 53 1e d6 16 29 e7 93 1a c7 2e 6a 0c 8b 7c 13 47 2c ce 0c 7c 5b ee 07 fd ce 87 9e f0 98 38 4c 19 d3 0e 93 23 3e e7 20 b3 39 1d b1 ad 41 67 23 e4 2c 29 eb ec a6 b8 09 2c 37 80 28 10 8a 88 d0 4c d4 93 4f c0 bb 96 4d b7 fa 10 0e af 96 91 2f 6f ce b1 a3 9a 2c 0e 3f 31 16 21 11 59 3c c5 76 0e b5 86 6d 5f 94 34 a7 89 19 98 78 19 c8 a0 5c f6 31 1d ba e8 3b 3d fa 99 51 6d f4 80 3a 2f 1a 76 e5 ea 30 a7 1e 15 01 30 e1 a6 40 67 36 3d 79 5e c4 24 16 3b e9 7c 5a 99 29 44 47 22 53 b4 0f 0b a4 b2 2f c3 70 f5 c6 cc 25 54 f3 75 7e 41 9d 6f 7f 39 1c 14 f8 c1 d5 e8 59 a3 79 c1 66 0c a2 ea 0f 13 c0 5f 67 f4 c4 b2 6b 92 dd 05 9a d0 96 73 8b 2d 4f e6 68 ce 2f 70 1c ba 92 bb 93 bd a9 5d 87 ec 87 a2 2b fd 2a 86 36 83 d9 4f a3 c2 b6 f9 05 99 78 a6 d9 41 ed e9 4e 16 2a 9b 59 d4 8a ce 17 4c 29 24 d2 ee 25 c8 3a ce 6c 63 7f 64 c3 f5 57 1d 34 69 c1 d3 00 54 bb b7 e0 23 12 22 94 b3 8e f6 38 ce 93 b4 c1 04 6b ec fa e4 7a
Warning! Got 519 mysterious bytes left! (state=0)
95 dc 4f 87 e2 15 78 64 c4 69 41 1c af dc 32 2f 3d 16 f9 a5 39 b2 45 ce 9e b6 5b bb 1b 01 5e 29 b7 3a 32 63 77 4e c5 1a 00 3f ff 92 1b ee 25 cb f7 53 20 3d fb 97 85 28 08 2a 3d 00 e7 7f 28 f3 6c 87 d5 44 5d 18 1d 47 e5 a9 44 5a 1c fa 48 b6 b9 4b 69 e8 1f 73 ca 6d 9a d1 35 f6 72 5c cc 9a e5 24 c1 17 2a 51 87 c0 7d 84 a2 89 8c bf 1c ea 7e a8 0b 32 60 4d 43 e2 b6 3b 9c 3b d9 36 e4 fc e8 3b 3f 22 7b ff 56 24 e7 38 60 ef f3 04 8f 95 a4 5d 14 04 a0 ce 0a 5e 4b 4c 1e d2 22 63 ec a7 be 2f 4a 73 97 18 89 3b 5f 01 d4 a9 d2 55 5d 90 d1 6c a7 13 ed 59 2f 2f 89 50 ac e4 8b a9 4d 7b 93 17 34 58 d7 bb b6 44 ae 2d c7 2a 50 1d 33 c1 43 3e ff 91 48 4d 39 de d0 82 1d 21 cf 39 9d ee b6 e9 f6 40 a2 83 46 06 e1 88 72 ec 1f e1 31 26 0c 3a 39 0a 77 6b e2 97 67 2e a3 20 e9 61 7a f2 69 16 de b2 6c db ab 54 43 63 74 fc 7a 44 b2 4b 7e d1 36 ec 79 8f f3 dd c6 4d 1c f8 2d f6 45 ec 4b 5c 5b fb 38 6b 60 73 7a 51 11 98 4c ce a9 9e 36 90 17 8e 73 aa 55 0a e8 59 29 70 e3 e4 ee 06 4e de df c0 9a 71 41 06 2c b3 68 98 fb 9c 81 bb 7b e9 43 bf cd ec 5c 4f fb 6d c8 9b 19 89 ca d3 11 15 a1 24 76 e2 4e 7a 42 3d 2d 5a 62 08 3e bc 43 49 7a 69 22 6e 62 90 51 d4 cd 4c d6 6b 8d b1 26 ea 17 95 2c 87 6a c7 b0 31 d9 d2 e6 02 96 4d 3d 5b 20 c9 a8 1f 1f 13 83 f8 ea 3d 06 07 35 99 b1 a6 b2 22 1a a6 07 6a b6 f1 ef 7d 1a d7 ef f8 94 0c 6f 7a fc 1c 1f 96 c9 50 dd 40 7e 44 a0 33 5c 53 54 dd 5f 89 85 fb ee 36 24 b9 13 45 9d b6 e2 ac ab dc c2 fe 5c 84 bd ca b7 a8 15 e8 df 3f 98 87 69 68 48 1f 45 e3 1c bc 9e aa 12 70 f4 37 60 ad e8 37 b6 b3 72 9d 89 ed 05 06 58 cb d6 71 82 8d 92 9a ec 55 b3
End of file. Shutting down.


Is er iets mis met mijn script of is er iets veranderd bij SolarEdge?

Ps: in het dashboard van solaredge zelf zie ik wel actuele data dus die connectie is wel in orde.

Update:

Geen idee wat er mis was maar blijkbaar werkt het weer, maar ik mis wel data :|
https://pvoutput.org/intraday.jsp?id=50548&sid=45988

Acties:
  • 0 Henk 'm!
@Yoki1985, lijkt erop dat je eerst al iets van data hebt gemist (de 519 mysterious bytes left meldingen lijken mij te komen doordat decryptie niet meer werkte, dat kan gebeuren als je een tijdelijke sleutel hebt gemist) en dat daarna tcpdump ermee is gekapt ('End of file'). Je zou kunnen proberen `python liveupdate.py solaredge-2017101*.pcap' te draaien om de data van de laatste dagen nog eens in te lezen, al verwacht ik niet dat je daarmee de missende data kunt terughalen. En maybe even een reboot om met een schone lei te beginnen na deze hiccup.

Acties:
  • +1 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 08:31
@Jerrythafast merci voor je reply maar bovenstaande heb ik al allemaal geprobeerd dus ik vrees dat die data dan weg is

Acties:
  • 0 Henk 'm!
@Yoki1985 dan vrees ik het ook inderdaad... -O-

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Yoki1985, heb je ook gekeken of er in die pcaps niet een nieuwe encryptie sleutel zit? Geen idee of die af en toe vervangen wordt?

Anders misschien eens met wireshark in de pcap file kijken naar het moment dat ie stopt...

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Aegle, dat snap ik, maar om te voorkomen dat je RPi niet meer start, zou je het eerst naar mem kunnen laten schrijven en daarna met een cron naar een externe disk.

Dan kan je nl, de usb drive tijdens boot unmounted laten en pas in rc.local (=eigenlijk pre-systemd) mounten. Start het systeem iig op als er problemen met/op de externe drive zijn.

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Ten eerste dank voor de uitleg en dit topic.
Ik ben redelijk noob (weinig/geen linux en mysql kennis), maar ben volgens mij een aardig end op weg. Ik heb inmiddels een RPI3 draaien als Wifi bridge. Ik kreeg het niet voor elkaar met de startpost uitleg op mijn RPI3 (Debian Stretch), dus heb deze tutorial gevolgd: https://www.raspberrypi.org/forums/viewtopic.php?t=132674

Als ik nu een laptop aansluit via de ethernet poort heb ik werkend internet
code:
1
user@logger$  sudo tcpdump -c 25 -i eth0 tcp

geeft ook netjes output.

Na wat gerommel met de database (gedoe met root password in Debian Stretch) ben ik nu bij stap 8 van de logger software instellen.

Hier staat echter:
(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.
Maar gezien ik niet 4.2 heb gevolgd, maar een andere methode heb ik het hele se-nat script niet gebruikt. Dus kan ik dit ook niet aanpassen, gezien se-nat.service niet bestaat.

Mijn vraag is kan dit kwaad? En gaat het zo werken?

Ik krijg volgende week maandag mijn panelen en omvormer, en wilde het hiervoor allemaal voorbereid hebben (blijkt toch een grotere uitdaging te zijn, dan ik dacht. Maar ik geef nog niet op ;)

Ik hoor graag of iemand mij hiermee verder kan helpen, volgens mij ben ik er bijna :)

Acties:
  • 0 Henk 'm!
KiefDelicious schreef op zondag 22 oktober 2017 @ 13:36:
Ten eerste dank voor de uitleg en dit topic.
Ik ben redelijk noob (weinig/geen linux en mysql kennis), maar ben volgens mij een aardig end op weg. Ik heb inmiddels een RPI3 draaien als Wifi bridge.
Dit is wel een leuk project om linux kennis mee op te doen. Als je je Pi hebt draaien kun je hem straks nog veel meer leuke dingen laten doen. Stel jezelf een doel en probeer het voor elkaar te krijgen; al doende leert men ;) Ik heb enorm veel geleerd van dit project in ieder geval!
Ik kreeg het niet voor elkaar met de startpost uitleg op mijn RPI3 (Debian Stretch), dus heb deze tutorial gevolgd: https://www.raspberrypi.org/forums/viewtopic.php?t=132674
Als je suggesties hebt over hoe de uitleg in de startpost verbeterd kan worden hoor ik ze graag :)
Maar gezien ik niet 4.2 heb gevolgd, maar een andere methode heb ik het hele se-nat script niet gebruikt. Dus kan ik dit ook niet aanpassen, gezien se-nat.service niet bestaat.

Mijn vraag is kan dit kwaad? En gaat het zo werken?
Je hebt inderdaad 4.2 niet gevolgd, dus ook geen se-nat script en se-nat service. In plaats daarvan heb jij het bestand "/etc/iptables.ipv4.nat" gemaakt en het script "/lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat". Die doen samen hetzelfde. Misschien is het wel een teken van onervarenheid van mijn kant dat ik daar een service voor nodig had :X

In jouw geval zal de NAT worden ingesteld zodra de DHCP-server opstart. Eventueel zou je je Pi kunnen instellen dat de DHCP-server pas start nadat de se-logger.service is gestart. Dan moet je "After=se-logger.service" toevoegen aan het service bestand van jouw DHCP server. Met "systemctl list-unit-files | grep dhcp" kom je erachter hoe dat service bestand heet en met "systemctl status naam-van-service" kom je erachter waar dat bestand staat.

Deze stap overslaan kan op zich ook, het enige risico dat je loopt is dat de omvormer misschien eerder online is dan dat de se-logger service is opgestart. Dan zou je het begin van de communicatie kunnen missen. Telkens als de omvormer online komt zendt hij eerst een tijdelijke encryptiesleutel (ik noem het een '0503 key'). Die zul je dan missen, waardoor je de data van die dag niet kunt ontsleutelen.
Ik krijg volgende week maandag mijn panelen en omvormer, en wilde het hiervoor allemaal voorbereid hebben (blijkt toch een grotere uitdaging te zijn, dan ik dacht. Maar ik geef nog niet op ;)

Ik hoor graag of iemand mij hiermee verder kan helpen, volgens mij ben ik er bijna :)
Je bent er inderdaad bijna!

[ Voor 9% gewijzigd door Jerrythafast op 22-10-2017 18:25 ]


Acties:
  • 0 Henk 'm!

  • Thedr
  • Registratie: Mei 2006
  • Laatst online: 14-05 17:13
Vandaag zijn bij mij zonnepanelen en een SolarEdge systeem geplaatst. Via een KPN wifiversterer waarop port mirroring aan staat probeer ik nu via een RasPi de boel te loggen. Hoe snel/hoe vaak stuurt de omvormer data en hoe kan ik zien dat eea werkt zoals het zou moeten?

Ik krijg nu het volgende:
code:
1
2
3
4
5
6
pi@raspberrypi:/opt/se-logger $ cat tcpdump.log 
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
pi@raspberrypi:/opt/se-logger $ cat /opt/se-logger/liveupdate.log 
Reading from -
pi@raspberrypi:/opt/se-logger $ cat /opt/se-logger/pvo-upload.log 
pi@raspberrypi:/opt/se-logger $


Op de omvormer zijn alle verbindingschecks OK.

[ Voor 3% gewijzigd door Thedr op 23-10-2017 16:34 ]


Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

als het goed is moet je zulke files op je log locatie zien verschijnen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@domoticz-01:/opt/se-logger# l
total 28140
drwxr-xr-x 2 root root   4096 Oct 23 07:13 .
drwxr-xr-x 7 root root   4096 Sep 19 22:49 ..
-rw-r--r-- 1 root root    480 Oct 23 07:16 liveupdate.log
-rw-r--r-- 1 root root  21965 Sep 20 13:18 liveupdate.py
-rw-r--r-- 1 root root   2272 Apr 17  2017 pvo-upload-3phase.php
-rw-r--r-- 1 root root  15728 Oct 17 18:44 pvo-upload.log
-rw-r--r-- 1 root root   2173 Sep 20 13:45 pvo-upload.php
-rw-r--r-- 1 root root    645 Sep 19 23:12 se-logger-service.sh
-rw-r--r-- 1 root root   1364 Sep 19 23:42 solaredge-20170919212645.pcap
-rw-r--r-- 1 root root      0 Sep 19 23:43 solaredge-20170919214338.pcap
-rw-r--r-- 1 root root      0 Sep 19 23:43 solaredge-20170919214339.pcap
-rw-r--r-- 1 root root      0 Sep 19 23:43 solaredge-20170919214340.pcap
-rw-r--r-- 1 root root  11510 Sep 20 00:10 solaredge-20170919214601.pcap
-rw-r--r-- 1 root root   6930 Sep 20 00:29 solaredge-20170919221254.pcap
-rw-r--r-- 1 root root  98008 Sep 20 03:59 solaredge-20170919223002.pcap
-rw-r--r-- 1 root root 603940 Sep 20 13:18 solaredge-20170920020020.pcap
-rw-r--r-- 1 root root 384416 Sep 21 00:29 solaredge-20170920112007.pcap
-rw-r--r-- 1 root root  96064 Sep 21 03:59 solaredge-20170920223001.pcap
-rw-r--r-- 1 root root 817576 Sep 22 00:29 solaredge-20170921020021.pcap
-rw-r--r-- 1 root root 100876 Sep 22 03:59 solaredge-20170921223001.pcap
-rw-r--r-- 1 root root 727472 Sep 23 00:29 solaredge-20170922020021.pcap
-rw-r--r-- 1 root root  96792 Sep 23 03:59 solaredge-20170922223001.pcap
-rw-r--r-- 1 root root 708953 Sep 24 00:29 solaredge-20170923020024.pcap
-rw-r--r-- 1 root root  97508 Sep 24 03:59 solaredge-20170923223001.pcap
-rw-r--r-- 1 root root 723676 Sep 25 00:29 solaredge-20170924020022.pcap
-rw-r--r-- 1 root root 105988 Sep 25 03:59 solaredge-20170924223001.pcap
-rw-r--r-- 1 root root 882509 Sep 26 00:29 solaredge-20170925020022.pcap
-rw-r--r-- 1 root root 103512 Sep 26 03:59 solaredge-20170925223002.pcap
....

De pcap files zijn waar het om gaat, je kan deze ook in wireshark bekijken als je wil.

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Thedr
  • Registratie: Mei 2006
  • Laatst online: 14-05 17:13
Jup, die files staan er ook.
Kan overigens goed zijn dat ik gewoon even geduldig af moet wachten... heb ook nog geen link/registratienummer voor het webportal van SolarEdge. Goede kans dat er nog niet (veel) verstuurd wordt :)

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op zondag 22 oktober 2017 @ 18:20:
Dit is wel een leuk project om linux kennis mee op te doen. Als je je Pi hebt draaien kun je hem straks nog veel meer leuke dingen laten doen. Stel jezelf een doel en probeer het voor elkaar te krijgen; al doende leert men ;) Ik heb enorm veel geleerd van dit project in ieder geval!
Dit is mijn 2e PI, in huis ;) Ik kom ook al een aardig end met verschillende tutorials en google.
Als je suggesties hebt over hoe de uitleg in de startpost verbeterd kan worden hoor ik ze graag :)
Naja, die link die ik aangaf heeft mij geholpen, met name omdat jouw methode niet blijkt te werken op Rasbian Stretch (of het ligt aan mij). Dus misschien dat noteren.
In jouw geval zal de NAT worden ingesteld zodra de DHCP-server opstart. Eventueel zou je je Pi kunnen instellen dat de DHCP-server pas start nadat de se-logger.service is gestart. Dan moet je "After=se-logger.service" toevoegen aan het service bestand van jouw DHCP server. Met "systemctl list-unit-files | grep dhcp" kom je erachter hoe dat service bestand heet en met "systemctl status naam-van-service" kom je erachter waar dat bestand staat.
Ik ben er achter, je hebt mij op weg geholpen. De "dnsmasq.service" in /lib/systemd/system zorgt voor het uitdelen van de IPadressen aan eth0 (als ik die disable krijgt eth0 geen IP). Dus heb ik hier "After=se-logger.service" aan toegevoegd.
code:
1
After=network.target se-logger.service
Deze stap overslaan kan op zich ook, het enige risico dat je loopt is dat de omvormer misschien eerder online is dan dat de se-logger service is opgestart. Dan zou je het begin van de communicatie kunnen missen. Telkens als de omvormer online komt zendt hij eerst een tijdelijke encryptiesleutel (ik noem het een '0503 key'). Die zul je dan missen, waardoor je de data van die dag niet kunt ontsleutelen.
Duidelijk, ik heb het toegevoegd, maar geen idee hoe te testen, als ik de logger service uitzet en de pi reboot, zie ik geen verschil
code:
1
2
sudo systemctl stop se-logger
sudo systemctl disable se-logger


De "dnsmasq.service" is gewoon opgestart dus geen idee of het werkt.

(voor de rest heb ik het geheel werkend denk ik, ik zie de pcap files netjes groeien)

Acties:
  • 0 Henk 'm!
KiefDelicious schreef op maandag 23 oktober 2017 @ 18:40:
Duidelijk, ik heb het toegevoegd, maar geen idee hoe te testen, als ik de logger service uitzet en de pi reboot, zie ik geen verschil
code:
1
2
sudo systemctl stop se-logger
sudo systemctl disable se-logger


De "dnsmasq.service" is gewoon opgestart dus geen idee of het werkt.

(voor de rest heb ik het geheel werkend denk ik, ik zie de pcap files netjes groeien)
Misschien is hier een systemctl deamon-reload voor nodig om de wijziging te activeren.

Acties:
  • +1 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op maandag 23 oktober 2017 @ 19:12:
[...]

Misschien is hier een systemctl deamon-reload voor nodig om de wijziging te activeren.
Zou mooi zijn, maar had ik al geprobeerd ;)

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Thedr Als de pcaps ook inhoud hebben, dan zou je het script om de private key uit de pcap files te halen eens kunnen draaien, misschien is die wel al opgevangen en is de communicatie nu al encrypted.

Dit was bij mij ook het geval, ik heb geen records unencrypted voorbij zien komen en pas na de key in het import script te hebben opgenomen is het gaan werken....

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
@Jerrythafast Zonnepanelen zijn vandaag geplaatst, de pcap files groeien ;). Alleen ik zie niks, maar dan ook niks gebeuren in PVOutput. Tips hoe ik kan achterhalen wat er mis gaat?

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

KiefDelicious schreef op maandag 30 oktober 2017 @ 15:34:
@Jerrythafast Zonnepanelen zijn vandaag geplaatst, de pcap files groeien ;). Alleen ik zie niks, maar dan ook niks gebeuren in PVOutput. Tips hoe ik kan achterhalen wat er mis gaat?
En in je database gebeurd ook niets?

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
MDKlapwijk schreef op maandag 30 oktober 2017 @ 16:30:
[...]


En in je database gebeurd ook niets?
Nee, gebeurt niks (voor zover ik het kan zien, heb niet zoveel ervaring met mysql)

EDIT:
Ik zie toch wat in de database, dus lijkt erop dat er toch iets binnenkomt (ik heb bijv 14 ID's in de optimizer tabel, wat mijn 14 optimizers zouden moeten zijn). Dus lijkt erop dat het alleen niet bij PVOUtput aankomt

[ Voor 46% gewijzigd door KiefDelicious op 30-10-2017 17:31 ]


Acties:
  • 0 Henk 'm!
Staat er wat in je pvo-upload.log bestand?

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op maandag 30 oktober 2017 @ 20:20:
Staat er wat in je pvo-upload.log bestand?
nee die is helemaal leeg

Acties:
  • +1 Henk 'm!

  • zonnigekarel
  • Registratie: Oktober 2017
  • Laatst online: 06-02 16:07
Jerrythafast schreef op dinsdag 25 april 2017 @ 19:58:
[...]

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.
Allereest: Wat een geweldig project, kudo's voor iedereen die er een bijdrage aan geleverd heeft en met name Jerrythafast. Het duurde even voordat ik e.e.a. aan de praat het, en dat kwam omdat ik een SE3000 met wifi heb. Ik kan bevestigen dat het MAC adres van de wifi interface begint met 00:40:9d, en dat dus inliveupdate.py de regel met etherhdr[6:9] aangepast moet worden.

Acties:
  • 0 Henk 'm!

  • jacovn
  • Registratie: Augustus 2001
  • Laatst online: 14-05 20:16
Is het handig om een pidrive aan te sluiten om de database op te slaan ?
http://www.pi-parts.nl/pidrive-western-digital-raspberry-pi

Iets met een ssd zou beter zijn. Of een nas unit met een kleine ssd die weinig energie nodig heeft.

8x330 NO12.5°, 8x330 ZW12.5°, 8x350 ZW60°, 8x325 NO10°, SE8K, P500. 6x410 ZW10° Enphase


Acties:
  • 0 Henk 'm!
Heb je deze niet toevallig gemist?
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.)
Als je dat al had gedaan, dan ben ik nieuwsgierig naar wat er gebeurt als je dit commando runt:
/usr/bin/php /opt/se-logger/pvo-upload.php

Als dat geen output geeft (dus ook geen error) ben ik benieuwd naar wat deze queries je geven:
MySQL:
1
2
3
SELECT pvo_last_live FROM live_update;
SELECT COUNT(*) FROM telemetry_inverter;
SELECT MAX(timestamp) FROM telemetry_inverter;

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op dinsdag 31 oktober 2017 @ 23:34:
[...]

Heb je deze niet toevallig gemist?

[...]

Als je dat al had gedaan, dan ben ik nieuwsgierig naar wat er gebeurt als je dit commando runt:
/usr/bin/php /opt/se-logger/pvo-upload.php

Als dat geen output geeft (dus ook geen error) ben ik benieuwd naar wat deze queries je geven:
MySQL:
1
2
3
SELECT pvo_last_live FROM live_update;
SELECT COUNT(*) FROM telemetry_inverter;
SELECT MAX(timestamp) FROM telemetry_inverter;
Cronjob staat ingesteld.

/usr/bin/php /opt/se-logger/pvo-upload.php

geeft geen output.

Hierbij de output van de queries.
MySQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
MariaDB [solaredge]> SELECT pvo_last_live FROM live_update;
+---------------+
| pvo_last_live |
+---------------+
|             0 |
+---------------+
1 row in set (0.00 sec)

MariaDB [solaredge]> SELECT COUNT(*) FROM telemetry_inverter;
+----------+
| COUNT(*) |
+----------+
|      162 |
+----------+
1 row in set (0.00 sec)

MariaDB [solaredge]> SELECT MAX(timestamp) FROM telemetry_inverter;
+----------------+
| MAX(timestamp) |
+----------------+
|     1509472796 |
+----------------+
1 row in set (0.00 sec)


Dank voor je hulp ;)

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

Je kan ook nog even de volgende queries uitvoeren:
code:
1
2
select from_unixtime(a.timestamp), a.* from telemetry_inverter a order by timestamp desc limit 5;
select op_id, count(*) as reports, from_unixtime(max(timestamp)), from_unixtime(min(timestamp)), uptime from telemetry_optimizers group by op_id order by op_id, timestamp asc;


Geeft bij mij het volgende resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
+----------------------------+----------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
| from_unixtime(a.timestamp) | inv_id   | timestamp  | temperature | e_day   | de_day | v_ac    | i_ac    | frequency | v_dc    | e_total | i_rcd      | mode | p_active | p_apparent | p_reactive |
+----------------------------+----------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
| 2017-11-01 16:19:39        | 19305624 | 1509549579 |     40.2854 | 7839.11 |     11 | 236.719 | 1.07575 |   49.9981 | 377.405 |  530863 | 0.00220945 |    4 |  111.224 |    254.734 |     229.17 |
| 2017-11-01 16:14:39        | 19305624 | 1509549279 |     40.3348 | 7829.06 |     12 | 237.342 | 1.08324 |    50.006 | 378.448 |  530852 | 0.00225545 |    4 |   131.11 |    257.141 |    221.205 |
| 2017-11-01 16:09:39        | 19305624 | 1509548979 |      40.346 | 7817.06 |     15 | 236.782 | 1.02086 |   49.9968 | 377.168 |  530840 | 0.00244319 |    4 |   155.15 |    241.768 |    185.419 |
| 2017-11-01 16:04:39        | 19305624 | 1509548679 |     40.4394 | 7802.72 |     17 | 237.774 |  1.1201 |   50.0256 |  378.82 |  530825 | 0.00246534 |    4 |  184.431 |     266.49 |    192.359 |
| 2017-11-01 15:59:39        | 19305624 | 1509548379 |     40.4524 |  7785.7 |     21 | 237.915 | 1.25293 |   49.9843 | 379.215 |  530808 |  0.0025679 |    4 |  224.564 |    298.199 |    196.197 |
+----------------------------+------------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
+-----------+---------+-------------------------------+-------------------------------+--------+
| op_id     | reports | from_unixtime(max(timestamp)) | from_unixtime(min(timestamp)) | uptime |
+-----------+---------+-------------------------------+-------------------------------+--------+
| 280740220 |    4761 | 2017-11-01 16:21:24           | 2017-09-20 07:45:52           |    171 |
| 280740262 |    4764 | 2017-11-01 16:16:01           | 2017-09-20 07:46:29           |    113 |
| 280741313 |    4825 | 2017-11-01 16:21:09           | 2017-09-20 07:43:37           |    215 |
| 280741445 |    4820 | 2017-11-01 16:14:10           | 2017-09-20 07:47:53           |    376 |
| 280742075 |    4868 | 2017-11-01 16:14:47           | 2017-09-20 07:47:51           |    461 |
| 280742169 |    4778 | 2017-11-01 16:19:28           | 2017-09-20 07:43:55           |    226 |
| 280763213 |    4774 | 2017-11-01 16:21:42           | 2017-09-20 07:43:54           |    110 |
| 280763355 |    4758 | 2017-11-01 16:14:37           | 2017-09-20 07:44:29           |    266 |
| 280763366 |    4798 | 2017-11-01 16:19:08           | 2017-09-20 07:44:00           |    237 |
| 280763500 |    4764 | 2017-11-01 16:20:10           | 2017-09-20 07:45:22           |     75 |
| 280763538 |    5019 | 2017-11-01 16:20:58           | 2017-09-20 07:45:40           |    331 |
| 280764437 |    4798 | 2017-11-01 16:17:28           | 2017-09-20 07:45:01           |     37 |
| 280764442 |    4807 | 2017-11-01 16:15:15           | 2017-09-20 07:51:32           |    496 |
| 280764896 |    4786 | 2017-11-01 16:18:19           | 2017-09-20 07:46:26           |    174 |
| 280765221 |    4789 | 2017-11-01 16:18:23           | 2017-09-20 07:45:11           |    150 |
| 280765313 |    4801 | 2017-11-01 16:19:45           | 2017-09-20 07:49:21           |    376 |
| 280765603 |    5049 | 2017-11-01 16:20:37           | 2017-09-20 07:40:32           |     22 |
| 540879577 |    4232 | 2017-11-01 16:06:18           | 2017-09-20 08:04:14           |    197 |
+-----------+---------+-------------------------------+-------------------------------+--------+


Als je zoiets ziet, dan wordt de se wel goed uitgelezen, maar dus nog niet goed opgepakt door pvo-upload. Misschien een config foutje in het script?

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Ai, zie dit topic bijna te laat.
Morgen komt m'n SolarEdge SE8k binnen als vervanging van de SE5k. Ergerde mij al behoorlijk aan de afrondingsverschillen op PVOutput en lees hier dat er alternatieven mogelijk zijn.

Situatie is nu als volgt.
SE5k momenteel middels wifi verbonden met de ExperiaBox v10
Er ligt ook een UTP kabel vanaf de SE5k naar de ExperiaBox maar die heb ik momenteel niet in gebruik.

Ik heb verder een Synology NAS en een Raspberry met Domoticz erop.
Daarnaast nog een switch (TP-Link TL-SG1008D, zonder port mirroring voor zover ik kan nagaan) aan de Experiabox om het thuisnetwerk te voeden.

Ik kan in de logger voorzien met de NAS of de Raspberry.
Zit alleen even met de verbinding. De Raspberry is nu middels UTP op de switch aangesloten, ik heb er ook nog een USB-Wifi dongle voor beschikbaar. Wat is nu wijsheid? Denk dat ik op de optie met de Raspberry icm de USB-Wifidongle uitkom. Iemand hier ervaring mee? Draai daar nu Domoticz op en heb geen idee of ik dit naast elkaar kan draaien?


Denk dat ik eruit ben hoe ik het moet doen, dank voor de OP. De Raspberry via ethernet aan de router en de omvormer via wifi aan de Raspberry. Nu nog even uitzoeken hoe ik een hotspot op de Raspberry PI Model B installeer :) Moet goedkomen, erg benieuwd.

[ Voor 11% gewijzigd door Niek_ op 01-11-2017 18:29 ]


Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
MDKlapwijk schreef op woensdag 1 november 2017 @ 16:24:
Je kan ook nog even de volgende queries uitvoeren:
code:
1
2
select from_unixtime(a.timestamp), a.* from telemetry_inverter a order by timestamp desc limit 5;
select op_id, count(*) as reports, from_unixtime(max(timestamp)), from_unixtime(min(timestamp)), uptime from telemetry_optimizers group by op_id order by op_id, timestamp asc;


Geeft bij mij het volgende resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
+----------------------------+----------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
| from_unixtime(a.timestamp) | inv_id   | timestamp  | temperature | e_day   | de_day | v_ac    | i_ac    | frequency | v_dc    | e_total | i_rcd      | mode | p_active | p_apparent | p_reactive |
+----------------------------+----------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
| 2017-11-01 16:19:39        | 19305624 | 1509549579 |     40.2854 | 7839.11 |     11 | 236.719 | 1.07575 |   49.9981 | 377.405 |  530863 | 0.00220945 |    4 |  111.224 |    254.734 |     229.17 |
| 2017-11-01 16:14:39        | 19305624 | 1509549279 |     40.3348 | 7829.06 |     12 | 237.342 | 1.08324 |    50.006 | 378.448 |  530852 | 0.00225545 |    4 |   131.11 |    257.141 |    221.205 |
| 2017-11-01 16:09:39        | 19305624 | 1509548979 |      40.346 | 7817.06 |     15 | 236.782 | 1.02086 |   49.9968 | 377.168 |  530840 | 0.00244319 |    4 |   155.15 |    241.768 |    185.419 |
| 2017-11-01 16:04:39        | 19305624 | 1509548679 |     40.4394 | 7802.72 |     17 | 237.774 |  1.1201 |   50.0256 |  378.82 |  530825 | 0.00246534 |    4 |  184.431 |     266.49 |    192.359 |
| 2017-11-01 15:59:39        | 19305624 | 1509548379 |     40.4524 |  7785.7 |     21 | 237.915 | 1.25293 |   49.9843 | 379.215 |  530808 |  0.0025679 |    4 |  224.564 |    298.199 |    196.197 |
+----------------------------+------------+------------+-------------+---------+--------+---------+---------+-----------+---------+---------+------------+------+----------+------------+------------+
+-----------+---------+-------------------------------+-------------------------------+--------+
| op_id     | reports | from_unixtime(max(timestamp)) | from_unixtime(min(timestamp)) | uptime |
+-----------+---------+-------------------------------+-------------------------------+--------+
| 280740220 |    4761 | 2017-11-01 16:21:24           | 2017-09-20 07:45:52           |    171 |
| 280740262 |    4764 | 2017-11-01 16:16:01           | 2017-09-20 07:46:29           |    113 |
| 280741313 |    4825 | 2017-11-01 16:21:09           | 2017-09-20 07:43:37           |    215 |
| 280741445 |    4820 | 2017-11-01 16:14:10           | 2017-09-20 07:47:53           |    376 |
| 280742075 |    4868 | 2017-11-01 16:14:47           | 2017-09-20 07:47:51           |    461 |
| 280742169 |    4778 | 2017-11-01 16:19:28           | 2017-09-20 07:43:55           |    226 |
| 280763213 |    4774 | 2017-11-01 16:21:42           | 2017-09-20 07:43:54           |    110 |
| 280763355 |    4758 | 2017-11-01 16:14:37           | 2017-09-20 07:44:29           |    266 |
| 280763366 |    4798 | 2017-11-01 16:19:08           | 2017-09-20 07:44:00           |    237 |
| 280763500 |    4764 | 2017-11-01 16:20:10           | 2017-09-20 07:45:22           |     75 |
| 280763538 |    5019 | 2017-11-01 16:20:58           | 2017-09-20 07:45:40           |    331 |
| 280764437 |    4798 | 2017-11-01 16:17:28           | 2017-09-20 07:45:01           |     37 |
| 280764442 |    4807 | 2017-11-01 16:15:15           | 2017-09-20 07:51:32           |    496 |
| 280764896 |    4786 | 2017-11-01 16:18:19           | 2017-09-20 07:46:26           |    174 |
| 280765221 |    4789 | 2017-11-01 16:18:23           | 2017-09-20 07:45:11           |    150 |
| 280765313 |    4801 | 2017-11-01 16:19:45           | 2017-09-20 07:49:21           |    376 |
| 280765603 |    5049 | 2017-11-01 16:20:37           | 2017-09-20 07:40:32           |     22 |
| 540879577 |    4232 | 2017-11-01 16:06:18           | 2017-09-20 08:04:14           |    197 |
+-----------+---------+-------------------------------+-------------------------------+--------+


Als je zoiets ziet, dan wordt de se wel goed uitgelezen, maar dus nog niet goed opgepakt door pvo-upload. Misschien een config foutje in het script?
Ziet er goed uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
MariaDB [solaredge]> select from_unixtime(a.timestamp), a.* from telemetry_inverter a order by timestamp desc limit 5;
+----------------------------+------------+------------+-------------+---------+--------+---------+------+-----------+---------+---------+--------------+------+----------+------------+------------+
| from_unixtime(a.timestamp) | inv_id     | timestamp  | temperature | e_day   | de_day | v_ac    | i_ac | frequency | v_dc    | e_total | i_rcd        | mode | p_active | p_apparent | p_reactive |
+----------------------------+------------+------------+-------------+---------+--------+---------+------+-----------+---------+---------+--------------+------+----------+------------+------------+
| 2017-11-01 17:14:31        | 1930593706 | 1509552871 |     32.9025 | 3305.35 |      0 | 230.836 |    0 |   49.9783 | 15.8062 |    7884 | 0.0000620062 |    3 |        0 |          0 |          0 |
| 2017-11-01 17:09:31        | 1930593706 | 1509552571 |     33.0779 | 3305.35 |      0 | 228.777 |    0 |   50.0156 | 19.5399 |    7884 | 0.0000771917 |    3 |        0 |          0 |          0 |
| 2017-11-01 17:04:31        | 1930593706 | 1509552271 |     33.2748 | 3305.35 |      0 | 230.143 |    0 |   50.0646 | 19.4768 |    7884 | 0.0000413786 |    3 |        0 |          0 |          0 |
| 2017-11-01 16:59:31        | 1930593706 | 1509551971 |     33.4544 | 3305.35 |      0 | 234.094 |    0 |   50.0328 | 118.284 |    7884 | 0.0000350939 |    3 |        0 |          0 |          0 |
| 2017-11-01 16:54:32        | 1930593706 | 1509551672 |      35.018 | 3305.35 |      0 |     231 |    0 |   49.9437 | 288.776 |    7884 |  0.000125552 |    3 |        0 |          0 |          0 |
+----------------------------+------------+------------+-------------+---------+--------+---------+------+-----------+---------+---------+--------------+------+----------+------------+------------+
5 rows in set (0.00 sec)
MariaDB [solaredge]> select op_id, count(*) as reports, from_unixtime(max(timestamp)), from_unixtime(min(timestamp)), uptime from telemetry_optimizers group by op_id order by op_id, timestamp asc;
+-----------+---------+-------------------------------+-------------------------------+--------+
| op_id     | reports | from_unixtime(max(timestamp)) | from_unixtime(min(timestamp)) | uptime |
+-----------+---------+-------------------------------+-------------------------------+--------+
| 283212500 |     244 | 2017-11-01 16:47:19           | 2017-10-30 12:59:52           |    155 |
| 283214577 |     242 | 2017-11-01 16:45:56           | 2017-10-30 12:57:03           |     22 |
| 283215022 |     244 | 2017-11-01 16:45:22           | 2017-10-30 12:59:42           |    145 |
| 283257424 |     256 | 2017-11-01 16:55:24           | 2017-10-30 12:56:58           |     17 |
| 283257437 |     234 | 2017-11-01 16:33:30           | 2017-10-30 12:57:03           |     22 |
| 283302316 |     234 | 2017-11-01 16:46:54           | 2017-10-30 13:02:03           |    286 |
| 283305460 |     249 | 2017-11-01 16:48:45           | 2017-10-30 12:58:00           |     43 |
| 283346862 |     238 | 2017-11-01 16:40:51           | 2017-10-30 13:01:50           |    272 |
| 283361418 |     241 | 2017-11-01 16:44:01           | 2017-10-30 12:59:11           |    114 |
| 283361478 |     249 | 2017-11-01 16:48:40           | 2017-10-30 12:57:55           |     38 |
| 283365859 |     240 | 2017-11-01 16:36:58           | 2017-10-30 13:01:40           |    262 |
| 283371310 |     243 | 2017-11-01 16:42:51           | 2017-10-30 12:58:01           |     44 |
| 283387443 |     241 | 2017-11-01 16:37:44           | 2017-10-30 13:00:57           |    219 |
| 283388138 |     249 | 2017-11-01 16:46:10           | 2017-10-30 12:58:49           |     92 |
+-----------+---------+-------------------------------+-------------------------------+--------+



(Sleutel inmiddels uitgewisseld, en in gebruik genomen)

Ik kwam erachter dat de DB user niet goed was, dus gebruik nu maar root user zonder pass (standaard instelling)

Misschien was dat ook het probleem met de upload naar PV-output. Maar ik zie nog steeds niks in die log file

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

Vreemd,
- je API settings op PVO en in het script staan goed?
- je kan PVO address bereiken vanaf je systeem?
- je hebt de packages geinstalleerd? (mysql-server python-mysqldb python-crypto php5-cli php5-mysql php5-curl)

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
- je API settings op PVO en in het script staan goed?
Yes, check en dubbelcheck
- je kan PVO address bereiken vanaf je systeem?
Yes ik kan pingen naar pvoutput.org (45.56.66.169)
- je hebt de packages geinstalleerd? (mysql-server python-mysqldb python-crypto php5-cli php5-mysql php5-curl)
Soort van, ik heb php-cli php-mysql php-curl zoals in de startpost staat aangegeven en niet php5-cli php5-mysql php5-curl

kan dat het zijn?

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Bezig met de tutorial op de Raspberry. Bij stap 5 aangekomen waar de loggingsoftware ingesteld wordt. In het 3e deel wordt een MySQL database aangemaakt met de code uit het bestand database.txt. Ik krijg echter een foutmelding op regel 76 die volgens mij naar regel 62 verwijst. Iemand een idee wat hier mis gaat? Of verwijst het wellicht naar regel 61 en moet daar achter NOT NULL nog een komma geplaatst worden?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
mysql> CREATE DATABASE solaredge;
Query OK, 1 row affected (0.02 sec)

mysql> USE solaredge;
Database changed
mysql> 
mysql> CREATE TABLE telemetry_optimizers (
    -> op_id       INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> uptime      SMALLINT UNSIGNED NOT NULL,
    -> v_in        SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> v_out       SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> i_in        SMALLINT UNSIGNED NOT NULL COMMENT '12bit steps of 0.00625 A',
    -> e_day       SMALLINT UNSIGNED NOT NULL COMMENT '16bit steps of 0.25 Wh',
    -> temperature TINYINT           NOT NULL COMMENT '8bit steps of 2 deg C',
    -> PRIMARY KEY (timestamp, op_id),
    -> INDEX       (op_id, timestamp)
    -> );
Query OK, 0 rows affected (0.13 sec)

mysql> 
mysql> CREATE TABLE telemetry_inverter (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac        FLOAT             NOT NULL,
    -> i_ac        FLOAT             NOT NULL,
    -> frequency   FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> p_active    FLOAT             NOT NULL,
    -> p_apparent  FLOAT             NOT NULL,
    -> p_reactive  FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
Query OK, 0 rows affected (0.83 sec)

mysql> 
mysql> CREATE TABLE telemetry_inverter_3phase (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac1       FLOAT             NOT NULL,
    -> v_ac2       FLOAT             NOT NULL,
    -> v_ac3       FLOAT             NOT NULL,
    -> i_ac1       FLOAT             NOT NULL,
    -> i_ac2       FLOAT             NOT NULL,
    -> i_ac3       FLOAT             NOT NULL,
    -> frequency1  FLOAT             NOT NULL,
    -> frequency2  FLOAT             NOT NULL,
    -> frequency3  FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> v_1to2FLOAT             NOT NULL,
    -> v_2to3FLOAT             NOT NULL,
    -> v_3to1FLOAT             NOT NULL,
    -> p_active1   FLOAT             NOT NULL,
    -> p_active2   FLOAT             NOT NULL,
    -> p_active3   FLOAT             NOT NULL,
    -> p_apparent1 FLOAT             NOT NULL,
    -> p_apparent2 FLOAT             NOT NULL,
    -> p_apparent3 FLOAT             NOT NULL,
    -> p_reactive1 FLOAT             NOT NULL,
    -> p_reactive2 FLOAT             NOT NULL,
    -> p_reactive3 FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
v_2to3FLOAT             NOT NULL,
v_3to1FLOAT             NOT NULL,
p_' at line 20
mysql> 
mysql> CREATE TABLE live_update (
    -> pvo_last_live INT UNSIGNED NOT NULL,
    -> last_0503     BINARY(34)   NOT NULL,
    -> last_telemetry INT UNSIGNED NOT NULL
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO live_update (pvo_last_live, last_0503, last_telemetry) VALUES (0, "\0", 0);
Query OK, 1 row affected (0.02 sec)

mysql>

[ Voor 9% gewijzigd door Niek_ op 01-11-2017 19:43 ]


Acties:
  • +1 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Niek_ schreef op woensdag 1 november 2017 @ 19:42:
Bezig met de tutorial op de Raspberry. Bij stap 5 aangekomen waar de loggingsoftware ingesteld wordt. In het 3e deel wordt een MySQL database aangemaakt met de code uit het bestand database.txt. Ik krijg echter een foutmelding op regel 76 die volgens mij naar regel 62 verwijst. Iemand een idee wat hier mis gaat? Of verwijst het wellicht naar regel 61 en moet daar achter NOT NULL nog een komma geplaatst worden?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
mysql> CREATE DATABASE solaredge;
Query OK, 1 row affected (0.02 sec)

mysql> USE solaredge;
Database changed
mysql> 
mysql> CREATE TABLE telemetry_optimizers (
    -> op_id       INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> uptime      SMALLINT UNSIGNED NOT NULL,
    -> v_in        SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> v_out       SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> i_in        SMALLINT UNSIGNED NOT NULL COMMENT '12bit steps of 0.00625 A',
    -> e_day       SMALLINT UNSIGNED NOT NULL COMMENT '16bit steps of 0.25 Wh',
    -> temperature TINYINT           NOT NULL COMMENT '8bit steps of 2 deg C',
    -> PRIMARY KEY (timestamp, op_id),
    -> INDEX       (op_id, timestamp)
    -> );
Query OK, 0 rows affected (0.13 sec)

mysql> 
mysql> CREATE TABLE telemetry_inverter (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac        FLOAT             NOT NULL,
    -> i_ac        FLOAT             NOT NULL,
    -> frequency   FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> p_active    FLOAT             NOT NULL,
    -> p_apparent  FLOAT             NOT NULL,
    -> p_reactive  FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
Query OK, 0 rows affected (0.83 sec)

mysql> 
mysql> CREATE TABLE telemetry_inverter_3phase (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac1       FLOAT             NOT NULL,
    -> v_ac2       FLOAT             NOT NULL,
    -> v_ac3       FLOAT             NOT NULL,
    -> i_ac1       FLOAT             NOT NULL,
    -> i_ac2       FLOAT             NOT NULL,
    -> i_ac3       FLOAT             NOT NULL,
    -> frequency1  FLOAT             NOT NULL,
    -> frequency2  FLOAT             NOT NULL,
    -> frequency3  FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> v_1to2FLOAT             NOT NULL,
    -> v_2to3FLOAT             NOT NULL,
    -> v_3to1FLOAT             NOT NULL,
    -> p_active1   FLOAT             NOT NULL,
    -> p_active2   FLOAT             NOT NULL,
    -> p_active3   FLOAT             NOT NULL,
    -> p_apparent1 FLOAT             NOT NULL,
    -> p_apparent2 FLOAT             NOT NULL,
    -> p_apparent3 FLOAT             NOT NULL,
    -> p_reactive1 FLOAT             NOT NULL,
    -> p_reactive2 FLOAT             NOT NULL,
    -> p_reactive3 FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
v_2to3FLOAT             NOT NULL,
v_3to1FLOAT             NOT NULL,
p_' at line 20
mysql> 
mysql> CREATE TABLE live_update (
    -> pvo_last_live INT UNSIGNED NOT NULL,
    -> last_0503     BINARY(34)   NOT NULL,
    -> last_telemetry INT UNSIGNED NOT NULL
    -> );
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO live_update (pvo_last_live, last_0503, last_telemetry) VALUES (0, "\0", 0);
Query OK, 1 row affected (0.02 sec)

mysql>
Dat had ik ook ;)

regel 62,63,64 staat een tab niet goed tussen v_1to2FLOAT v_2to3FLOAT & v_3to1FLOAT

dat moet zijn:
code:
1
2
3
    v_1to2      FLOAT             NOT NULL,
    v_2to3      FLOAT             NOT NULL,
    v_3to1      FLOAT             NOT NULL,


ten minste dat was het bij mij :)

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
KiefDelicious schreef op woensdag 1 november 2017 @ 19:46:
[...]


Dat had ik ook ;)

regel 62,63,64 staat een tab niet goed tussen v_1to2FLOAT v_2to3FLOAT & v_3to1FLOAT

dat moet zijn:
code:
1
2
3
    v_1to2      FLOAT             NOT NULL,
    v_2to3      FLOAT             NOT NULL,
    v_3to1      FLOAT             NOT NULL,


ten minste dat was het bij mij :)
Ah, kan ik dan de hele code gewoon nog een keer draaien of gaat het dan niet goed omdat het dubbel gaat oid? (je ziet het, niet heel erg veel ervaring met databases... O-) )

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Niek_ schreef op woensdag 1 november 2017 @ 19:54:
[...]

Ah, kan ik dan de hele code gewoon nog een keer draaien of gaat het dan niet goed omdat het dubbel gaat oid? (je ziet het, niet heel erg veel ervaring met databases... O-) )
Uhm, dat weet ik niet :P heb de db weggegooid en opnieuw begonnen voor de zekerheid :P (mijn ervaring is ook beperkt)

Acties:
  • 0 Henk 'm!
Als de CREATE_TABLE is mislukt kun je het gewoon opnieuw proberen. Er is immers niet iets gemaakt dat je kunt verwijderen ;) Bedankt voor het melden van dit foutje!

Ik heb op aangeven van @Niek_ een zinnetje aan de OP toegevoegd: Als je bij het installeren van de php-xx packages de melding krijgt dat ze niet bestaan, kun je het opnieuw proberen met php7-xx (of eventueel php5-xx).

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
@Jerrythafast Ik heb dus php-cli php-mysql php-curl succesvol geïnstalleerd, kan php5-cli php5-mysql php5-curl niet installeren. Heb in mijn/usr/bin/ folder zowel php als php7.0 staan.

Maar als ik
/usr/bin/php /opt/se-logger/pvo-upload.php
of
/usr/bin/php7.0 /opt/se-logger/pvo-upload.php
uitvoer, gebeurt er helemaal niks nada. Ik snap er niks van.

Acties:
  • 0 Henk 'm!
Deze misschien?
/usr/bin/php -d display_errors /opt/se-logger/pvo-upload.php

Bron: http://blog.tatedavies.co...p-cli-script-show-errors/

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
KiefDelicious schreef op woensdag 1 november 2017 @ 19:57:
[...]


Uhm, dat weet ik niet :P heb de db weggegooid en opnieuw begonnen voor de zekerheid :P (mijn ervaring is ook beperkt)
Hoor net uit betrouwbare bron dat ik de tabel moet weggooien ;)
Even opzoeken welk commando dat is.

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op woensdag 1 november 2017 @ 20:45:
Deze misschien?
/usr/bin/php -d display_errors /opt/se-logger/pvo-upload.php

Bron: http://blog.tatedavies.co...p-cli-script-show-errors/
Dankjewel. maar helaas helemaal niks, ik ga wel eens opnieuw beginnen met dit deel. Kijken of ik iets ergens fout doe.

mm, als ik de standaard pvo-upload file neerzet en uitvoer krijg ik netjes deze melding in de pvo-upload.log:
code:
1
2
3
4
5
PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'dbuser'@'localhost' (using password: YES) in /opt/se-logger/pvo-upload.php:14
Stack trace:
#0 /opt/se-logger/pvo-upload.php(14): PDO->__construct('mysql:host=loca...', 'dbuser', 'dbpassword', Array)
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 14


Op het moment dat ik dan mijn gegevens goed invul in de file, en uitvoer krijg ik geen response meer (dus zou je zeggen dat het moet werken, allen zie ik niks in PVoutput.

@Jerrythafast zou deze query helpen, om het een jumpstart te geven ofzo :P
UPDATE live_update SET pvo_last_live = UNIX_TIMESTAMP("2016-10-30");

[ Voor 50% gewijzigd door KiefDelicious op 02-11-2017 00:01 ]


Acties:
  • +1 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 14-05 21:15

xces

To got or not to got..

Hallo allemaal, eergisteren is mijn SolarEdge installatie opgeleverd. Ik kwam dit topic gisterochtend tegen en heb bij thuiskomst de netwerk stekker van mijn SE meteen eruit getrokken. Toen kwam ik erachter dat mijn omvormer nog in night mode stond (midden op de dag) waardoor ik het bedrijf heb gebeld. Bij inspectie gaf de DC lijn 2V aan en hadden ze zelf een foutje gemaakt door de plus en min van een ring verkeerd aan te sluiten -O-.

Gelukkig gaf dit geen schade aan mijn installatie en het is jammer dat ik een dagje zon heb gemist maar het voordeel is dan ook dat er nog niets werd gelogd richting SE, waardoor ik dit topic eens goed kon nalezen.

Gisteren heb ik mijn 2e Raspberry Pi 3 gekocht (P1 slimme meter uitvoering) waar natuurlijk Raspbian Jessie op stond met desktop etc. Deze heb ik direct overschreven met Debian Stretch Lite en hieronder de stappen gedocumenteerd voor diegene die een Raspberry Pi snel willen configureren. Een en ander werkt namelijk anders tegenwoordig dan in de TS staat vandaar de tutorial (die voor mij werkte).

Stappenplan:
  1. Verse install Debian Stretch Lite (September 2017)
  2. Via raspi-config e.e.a. goed zetten zoals keyboard (taal US, en layout "with euro on 5"), WiFi country op NL zetten, SSH aanzetten, timezone op Europe/Amsterdam.
  3. sudo raspi-config afsluiten, maar nog niet rebooten
  4. Eerst je wachtwoord wijzigen met passwd
  5. Vervolgens WiFi configureren, ik heb bewust NIET gekozen voor een vast IP, want dat deelt mijn router thuis uit op basis van MAC adressen
  6. Reboot, je moet nu internet hebben.
  7. sudo apt-get update && sudo apt-get upgrade uitvoeren zodat alles up to date is.
  8. Vervolgens heb ik NTP geinstalleerd, ook al weet ik dat dit deprecated is.
  9. Vervolgens stap 4.2 uitvoeren van de TS, waarbij de opmerking gemaakt moet worden dat wlan0 bij mij geen statisch IP heeft, en de configuratie van eth0 in een file gezet moet worden;
    sudo nano /etc/network/interfaces.d/eth0
    De file /etc/networking bevat alleen de include instructie voor die directory. WiFi gebeurd door wpa_supplicant.conf zoals hierboven bij stap 5 is beschreven.
    De stap om isc-dhcp-server te installeren en te configureren, alsmede het iptables script en service in te stellen blijft hetzelfde.
  10. apt-get install tcpdump, dit staat er standaard niet op in mijn gebruikte image.
  11. Dan kun je, als je Pi inmiddels een WiFi signaal heeft, je computer aan je Pi hangen en vrolijk door internetten.
  12. Op je Pi zou je dan met het volgende tcpdump commando 25 pakketjes verkeer moeten zien:
    sudo tcpdump -c 25 -i eth0 tcp
  13. Als laatste heb ik /tmp en /var/tmp toegevoegd in /etc/fstab, aan de hand van deze guide:
    code:
    1
    2
    
    tmpfs    /tmp    tmpfs    defaults,noatime,nosuid,size=100m    0 0
    tmpfs    /var/tmp    tmpfs    defaults,noatime,nosuid,size=30m    0 0
Ik ga straks verder met stap 5, en zal mijn data opslaan in een MySql database. Verder ga ik daar nog niets mee doen, puur 'harvesten' en zorgen dat SE de data gaat ontvangen. In de toekomst wil ik een detectie bouwen dat wanneer de lus uitvalt (diefstal?) dat mijn home automation systeem getriggerd gaat worden. Hoe, daar ben ik nog niet over uit maar het zal vast met de data mogelijk zijn.

Wat ik wel ga doen is de P1 kabel aansluiten aan mijn slimme meter en dmv MQTT deze data doorsturen naar Domoticz, dat draait (bedraad) op een andere Raspberry Pi en dat bevalt me te prima om dat ook op deze Pi in de meterkast te gaan draaien.

edit:
Na het lezen van dit topic ga ik toch maar de optie gebruiken die hierboven is gegeven om de eth0 en de WiFi te bridgen, want dat vind ik wat cleaner. Ik had nog een backup van de originele dhcpcd.conf staan dus die kon ik vrij makkelijk terugzetten.

Stappenplan:
code:
1
2
3
4
5
6
7
8
9
10
sudo systemctl stop isc-dhcp-server
sudo apt-get remove --auto-remove isc-dhcp-server
sudo apt-get purge --auto-remove isc-dhcp-server
sudo cp /etc/dhcpcd.conf.bak /etc/dhcpcd.conf
sudo rm /etc/dhcpcd.conf.bak
sudo systemctl stop se-nat
sudo rm /etc/systemd/system/se-nat.service
sudo systemctl daemon-reload
sudo rm /opt/scripts/se-nat.sh
sudo reboot


De reboot is belangrijk want dat zet je iptables configuratie weer terug!

Er vanuit gaande dat je WiFi al hebt draaien, komt het dan nog neer op de volgende stappen:
code:
1
2
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install rpi-update dnsmasq -y
sudo rpi-update


Eerst de eth0 configureren via: sudo nano /etc/network/interfaces.d/eth0:
code:
1
2
3
4
5
6
7
iface eth0 inet manual
allow-hotplug eth0  
iface eth0 inet static  
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255


Vervolgens dnsmasq configureren via sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig && sudo nano /etc/dnsmasq.conf:
code:
1
2
3
4
5
6
7
interface=eth0      # Use interface eth0  
listen-address=172.24.1.1 # Explicitly specify the address to listen on  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces.  
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time


IPv4 forwarding aanzetten dmv sudo nano /etc/sysctl.conf, haal het hekje weg voor de volgende regel:
code:
1
net.ipv4.ip_forward=1


IPTables configureren en opslaan:
code:
1
2
3
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo echo 'iptables-restore < /etc/iptables.ipv4.nat' > /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat


Vervolgens gaan we de Pi instellen dat de DHCP-server pas start nadat de se-logger.service is gestart via sudo nano /lib/systemd/system/dnsmasq.service. Voeg "After=se-logger.service" toe, gevolgd door een sudo systemctl daemon-reload en een sudo reboot om te testen.

[ Voor 29% gewijzigd door xces op 02-11-2017 15:05 ]


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 14-05 21:15

xces

To got or not to got..

update: mijn encryptie is schijnbaar al ingegaan; ik heb een P1 kabel proberen aan te sluiten op de RS232 maar ik krijg geen data, wat ik ook probeer.
code:
1
2
3
4
5
6
7
8
9
10
[ 2024.655097] usb 1-1.3: new full-speed USB device number 6 using dwc_otg
[ 2024.812646] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001
[ 2024.812658] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2024.812667] usb 1-1.3: Product: FT232R USB UART
[ 2024.812674] usb 1-1.3: Manufacturer: FTDI
[ 2024.812682] usb 1-1.3: SerialNumber: AI1NS8A5
[ 2024.821003] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[ 2024.821187] usb 1-1.3: Detected FT232RL
[ 2024.822807] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
[ 2106.534711] usb 1-1.3: USB disconnect, device number 6


Ik gok dat het niet lukt omdat dit simpelweg de verkeerde kabel is, ik heb nu een "FT232 5V TTL USB Serial Port Adapter met Kabel" gekocht, in de hoop dat ik morgen wel succes heb..

Acties:
  • 0 Henk 'm!

  • Svrooij86
  • Registratie: September 2013
  • Laatst online: 30-04 22:16
Iets heel anders, volgens mij gaat dit hele Topic over het afluisteren van de verbinding tussen de omvormer en de monitoring portal, toch?

Volgens de handleiding https://www.solaredge.com...-technical-note.pdf#page4 kan je schijnbaar ook modbus over tcp aanzetten en als ik het goed begrijp heb je dan hetzelfde als dat je een seriële kabel zou aansluiten, maar dan op je eigen netwerk.

Is het een idee om dit ook eens te bekijken. Want in dat geval zou je na het activeren van deze optie (staat standaard uit) gewoon alles realtime kunnen uitlezen vanaf een computer in je netwerk, zonder dat je iets aan de portal verbinding hoeft te wijzigen en zonder dat je omvormer open moet

Acties:
  • 0 Henk 'm!
KiefDelicious schreef op woensdag 1 november 2017 @ 21:10:
@Jerrythafast zou deze query helpen, om het een jumpstart te geven ofzo :P
UPDATE live_update SET pvo_last_live = UNIX_TIMESTAMP("2016-10-30");
Gek genoeg zou dat zomaar eens kunnen helpen. Nog beter, probeer deze aanpassing is in pvo-upload.php. Vervang deze regel:
code:
1
  'WHERE timestamp > (SELECT pvo_last_live FROM live_update) ' .
door
code:
1
  'WHERE timestamp > (SELECT IFNULL(UNIX_TIMESTAMP(FROM_UNIXTIME(pvo_last_live, "%Y%m%d")), 0) FROM live_update) ' .

Acties:
  • 0 Henk 'm!
@xces, weet je zeker dat de SolarEdge data wel wordt opgevangen, maar dat het puur de encryptie nog is waar je nu tegenaan loopt? Als je er met het find-key-in-pcap script niks uit krijgt zou dat dan betekenen dat encryptie vrijwel direct na installatie al is begonnen.

@Svrooij86, het nadeel van Modbus is dat het maar beperkte data geeft. Zo kun je bijvoorbeeld niks van de panelen loggen, alleen de omvormer zelf.

Acties:
  • +1 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
@Svrooij86 Zoals Jerrythafast al zegt levert het Sunspec-protocol niet alle data.
De enige manier om via RS485 alle data uit de omvormer te krijgen is door gebruik te maken van het Solaredge-protocol dat ook gebruikt wordt als je meerdere omvormers hebt. Dan wijs je 1 omvormer als master aan (die communiceert dan met de portal) en de rest als slave. Deze setup staat ook in de application note beschreven waar je naar verwijst en is bedoeld om te voorkomen dat je al je omvormers aan het netwerk moet hangen (voor particulieren niet zo'n issue denk ik, maar bedrijfsmatig kun je best een flink aantal omvormers hebben)

Met de scripts van jbuehl kun je een raspberry pi of vergelijkbaar de rol van master over laten nemen. Je omvormer denkt dan dat hij alle data aan een andere solaredge omvormer doorgeeft die het vervolgens naar de portal stuurt.
Onder water gebruikt het solaredge-protocol ook modbus/RS485, alleen kun je daar niks aan instellen. Het draait altijd op 115000 baud en het werkt ook niet over TCP. In die zin zit je dan dus toch vast aan serieel (alhoewel het misschien ook wel werkt met een RS485-TCP converter).

Als je voor een dergelijke oplossing gaat raak je overigens wel de mogelijkheid kwijt van de solaredge-portal en dan heb je dus een echte stand-alone oplossing.
(zie verder mijn toelichting op de eerste pagina over mijn opstelling, mocht je vragen hebben dan laat maar weten)

Acties:
  • 0 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Jerrythafast schreef op donderdag 2 november 2017 @ 21:57:
[...]

Gek genoeg zou dat zomaar eens kunnen helpen. Nog beter, probeer deze aanpassing is in pvo-upload.php. Vervang deze regel:
code:
1
  'WHERE timestamp > (SELECT pvo_last_live FROM live_update) ' .
door
code:
1
  'WHERE timestamp > (SELECT IFNULL(UNIX_TIMESTAMP(FROM_UNIXTIME(pvo_last_live, "%Y%m%d")), 0) FROM live_update) ' .
EDIT:
Ik heb nu het orginele pvo-upload.php (dus zonder jouw laatste aanpassing). En het lijkt erop dat de kickstart heeft geholpen. Voor zo ver ik kan zien loopt het nu ;)

https://pvoutput.org/list.jsp?id=50132&sid=45620

Super bedankt voor de hulp, volgende onderdeel een grafische webpagina weergave naast PVoutput (jij had een mooie start gemaakt toch :P)

[ Voor 35% gewijzigd door KiefDelicious op 03-11-2017 10:10 ]


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Lang verhaal dat duidelijk liet zien dat ik
A: nog niet genoeg kennis had
B: niet wakker genoeg was...

[ Voor 184% gewijzigd door Niek_ op 03-11-2017 16:25 ]


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 14-05 21:15

xces

To got or not to got..

Jerrythafast schreef op donderdag 2 november 2017 @ 22:06:
@xces, weet je zeker dat de SolarEdge data wel wordt opgevangen, maar dat het puur de encryptie nog is waar je nu tegenaan loopt? Als je er met het find-key-in-pcap script niks uit krijgt zou dat dan betekenen dat encryptie vrijwel direct na installatie al is begonnen.
Hoe weet ik dat? d.w.z. ik kan via de pi internetten, dus het routen zou goed moeten zijn..

Acties:
  • +1 Henk 'm!

  • KiefDelicious
  • Registratie: Januari 2009
  • Laatst online: 09:54
Niek_ schreef op vrijdag 3 november 2017 @ 14:19:
Gloeiende, gloeiende... ik doe iets verkeerd, maar wat? Gisteravond een uurtje of 2 aan het klooien geweest en nu net weer een uurtje maar het lukt mij niet om vanaf de Mac de 3 bestanden ('liveupdate.py','pvo-upload.php', and 'se-logger-service.sh') naar de map '/opt/se-logger' te kopiëren. In 1e instantie had ik het pad op de Mac niet goed en kreeg ik de melding dat het bestand of de directory niet bestond. Dat nu (eindelijk ;)) opgelost maar nu krijg ik de melding Permission denied.

Yes, toch gelukt. In plaats van het bestand direct in de juiste map op de Raspberry te plaatsen deze in de hoofdmap van de Raspberry geplaatst. Daar geen permission denied. Nu nog even intern Raspberry verplaatsen :)

Ook bij een interne verplaatsing met het move (mv) commando de melding Permission denied. Nu even uitzoeken hoe ik de schrijfrechten van de map /opt/se-logger kan aanpassen.
We komen er uiteindelijk wel :)

Ook goedemorgen.... met het 'sudo' commando werkt het verplaatsen wel... |:( :) en doooooor met de volgende stap.

Ach ja...natuurlijk lopen we tegen het volgende aan :):
code:
1
2
pi@raspberrypi:/$ sudo systemctl enable se-logger
Failed to execute operation: No such file or directory


Het bestand staat wel in de juiste map voor zover ik kan nagaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pi@raspberrypi:/etc/systemd/system$ ls -l
total 52
-rw-r--r-- 1 root root 1551 Sep 18  2015 autologin@.service
drwxr-xr-x 2 root root 4096 Feb 26  2016 bluetooth.target.wants
lrwxrwxrwx 1 root root   37 Feb 26  2016 dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service
lrwxrwxrwx 1 root root   40 Feb 26  2016 dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service
lrwxrwxrwx 1 root root   34 Feb 26  2016 dhcpcd5 -> /lib/systemd/system/dhcpcd.service
drwxr-xr-x 2 root root 4096 Feb 26  2016 dhcpcd.service.d
drwxr-xr-x 2 root root 4096 Feb 26  2016 getty.target.wants
drwxr-xr-x 2 root root 4096 Feb 26  2016 getty@tty1.service.d
drwxr-xr-x 2 root root 4096 Oct 16  2016 halt.target.wants
drwxr-xr-x 2 root root 4096 Nov  1 18:38 multi-user.target.wants
drwxr-xr-x 2 root root 4096 Oct 16  2016 poweroff.target.wants
drwxr-xr-x 2 root root 4096 Feb 26  2016 rc-local.service.d
drwxr-xr-x 2 root root 4096 Oct 16  2016 reboot.target.wants
-rwxr-xr-x 1 pi   pi    526 Nov  3 14:48 se-logger-service.sh
drwxr-xr-x 2 root root 4096 Feb 26  2016 sockets.target.wants
lrwxrwxrwx 1 root root   31 Feb 26  2016 sshd.service -> /lib/systemd/system/ssh.service
drwxr-xr-x 2 root root 4096 Feb 26  2016 sysinit.target.wants
lrwxrwxrwx 1 root root   35 Feb 26  2016 syslog.service -> /lib/systemd/system/rsyslog.service

Zie alleen wel dat het bestand als enige geen root root heeft staan maar pi pi. Mogelijk dat dit de oorzaak van de foutmelding is? Ik ga ondertussen zoeken naar een oplossing hiervoor, maar mocht iemand de oplossing weten dan hoor ik het natuurlijk graag!
Probeer eens root de eigenaar;groep te maken door in de directory:
sudo chown root:root se-logger-service.sh

En de rechten dan ook
sudo chmod 755 se-logger-service.sh

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Dat moment dat je er bijna bent :)
Lijkt erop dat alles draait.
tcpdump.log bevat 1 regel die er hetzelfde uitziet als het voorbeeld
liveupdate.log ziet er echter niet goed uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); 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: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

Lijkt erop dat de mysql db niet bereikt kan worden.

Als ik onderstaande lees dan zijn de tabellen aanwezig
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
mysql> CREATE DATABASE solaredge;
ERROR 1007 (HY000): Can't create database 'solaredge'; database exists
mysql> USE solaredge;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 
mysql> CREATE TABLE telemetry_optimizers (
    -> op_id       INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> uptime      SMALLINT UNSIGNED NOT NULL,
    -> v_in        SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> v_out       SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> i_in        SMALLINT UNSIGNED NOT NULL COMMENT '12bit steps of 0.00625 A',
    -> e_day       SMALLINT UNSIGNED NOT NULL COMMENT '16bit steps of 0.25 Wh',
    -> temperature TINYINT           NOT NULL COMMENT '8bit steps of 2 deg C',
    -> PRIMARY KEY (timestamp, op_id),
    -> INDEX       (op_id, timestamp)
    -> );
ERROR 1050 (42S01): Table 'telemetry_optimizers' already exists
mysql> 
mysql> CREATE TABLE telemetry_inverter (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac        FLOAT             NOT NULL,
    -> i_ac        FLOAT             NOT NULL,
    -> frequency   FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> p_active    FLOAT             NOT NULL,
    -> p_apparent  FLOAT             NOT NULL,
    -> p_reactive  FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1050 (42S01): Table 'telemetry_inverter' already exists
mysql> 
mysql> CREATE TABLE telemetry_inverter_3phase (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac1       FLOAT             NOT NULL,
    -> v_ac2       FLOAT             NOT NULL,
    -> v_ac3       FLOAT             NOT NULL,
    -> i_ac1       FLOAT             NOT NULL,
    -> i_ac2       FLOAT             NOT NULL,
    -> i_ac3       FLOAT             NOT NULL,
    -> frequency1  FLOAT             NOT NULL,
    -> frequency2  FLOAT             NOT NULL,
    -> frequency3  FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> v_1to2      FLOAT             NOT NULL,
    -> v_2to3      FLOAT             NOT NULL,
    -> v_3to1      FLOAT             NOT NULL,
    -> p_active1   FLOAT             NOT NULL,
    -> p_active2   FLOAT             NOT NULL,
    -> p_active3   FLOAT             NOT NULL,
    -> p_apparent1 FLOAT             NOT NULL,
    -> p_apparent2 FLOAT             NOT NULL,
    -> p_apparent3 FLOAT             NOT NULL,
    -> p_reactive1 FLOAT             NOT NULL,
    -> p_reactive2 FLOAT             NOT NULL,
    -> p_reactive3 FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1050 (42S01): Table 'telemetry_inverter_3phase' already exists
mysql> 
mysql> CREATE TABLE live_update (
    -> pvo_last_live INT UNSIGNED NOT NULL,
    -> last_0503     BINARY(34)   NOT NULL,
    -> last_telemetry INT UNSIGNED NOT NULL
    -> );
ERROR 1050 (42S01): Table 'live_update' already exists
mysql> INSERT INTO live_update (pvo_last_live, last_0503, last_telemetry) VALUES (0, "\0", 0);
Query OK, 1 row affected (0.02 sec)

mysql>

Dan zou het dus in de toegang tot de mysql db moeten zitten.

mysql draait goed:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (armv7l) using readline 6.3

Connection id:      40
Current database:   solaredge
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.57-0+deb8u1 (Raspbian)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:         9 min 5 sec

Threads: 1  Questions: 133  Slow queries: 0  Opens: 53  Flush tables: 1  Open tables: 46  Queries per second avg: 0.244
--------------

mysql>

Als ik de instellingen samenvat die ik in de bestanden moet plaatsen dan krijg ik onderstaande:
Open 'liveupdate.py' en vul de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan.
Open 'pvo-upload.php' en vul ook hierin de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan.
Gebruikersnaam is in mijn geval 'root', het wachtwoord is bekend en goed want ik kan de MySQL database openen.

Is er dan mogelijk toch iets niet in orde met de wijze waarop er verbinding gemaakt wordt met de MySQL db? Gezien de melding: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Zie overigens het bestand solaredge-xxxx.pcap wel groeien op het moment dat ik m'n telefoon met het wifinetwerk verbind en een aantal websites bezoek. Dat werkt dan in ieder geval wel. Nu die MySQL db nog (of interpreteer ik de informatie verkeerd en werkt het gewoon?).

[ Voor 10% gewijzigd door Niek_ op 03-11-2017 16:30 ]


Acties:
  • +1 Henk 'm!
xces schreef op vrijdag 3 november 2017 @ 15:02:
[...]

Hoe weet ik dat? d.w.z. ik kan via de pi internetten, dus het routen zou goed moeten zijn..
In liveupdate.log zou je dan heel veel 'Mysterious bytes' berichten moeten krijgen.
Niek_ schreef op vrijdag 3 november 2017 @ 16:07:
Dat moment dat je er bijna bent :)
Lijkt erop dat alles draait.
tcpdump.log bevat 1 regel die er hetzelfde uitziet als het voorbeeld
liveupdate.log ziet er echter niet goed uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); 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: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

Lijkt erop dat de mysql db niet bereikt kan worden.

Als ik onderstaande lees dan zijn de tabellen aanwezig
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
mysql> CREATE DATABASE solaredge;
ERROR 1007 (HY000): Can't create database 'solaredge'; database exists
mysql> USE solaredge;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 
mysql> CREATE TABLE telemetry_optimizers (
    -> op_id       INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> uptime      SMALLINT UNSIGNED NOT NULL,
    -> v_in        SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> v_out       SMALLINT UNSIGNED NOT NULL COMMENT '10bit steps of 0.125 V',
    -> i_in        SMALLINT UNSIGNED NOT NULL COMMENT '12bit steps of 0.00625 A',
    -> e_day       SMALLINT UNSIGNED NOT NULL COMMENT '16bit steps of 0.25 Wh',
    -> temperature TINYINT           NOT NULL COMMENT '8bit steps of 2 deg C',
    -> PRIMARY KEY (timestamp, op_id),
    -> INDEX       (op_id, timestamp)
    -> );
ERROR 1050 (42S01): Table 'telemetry_optimizers' already exists
mysql> 
mysql> CREATE TABLE telemetry_inverter (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac        FLOAT             NOT NULL,
    -> i_ac        FLOAT             NOT NULL,
    -> frequency   FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> p_active    FLOAT             NOT NULL,
    -> p_apparent  FLOAT             NOT NULL,
    -> p_reactive  FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1050 (42S01): Table 'telemetry_inverter' already exists
mysql> 
mysql> CREATE TABLE telemetry_inverter_3phase (
    -> inv_id      INT      UNSIGNED NOT NULL,
    -> timestamp   INT      UNSIGNED NOT NULL,
    -> temperature FLOAT             NOT NULL,
    -> e_day       FLOAT             NOT NULL,
    -> de_day      FLOAT             NOT NULL,
    -> v_ac1       FLOAT             NOT NULL,
    -> v_ac2       FLOAT             NOT NULL,
    -> v_ac3       FLOAT             NOT NULL,
    -> i_ac1       FLOAT             NOT NULL,
    -> i_ac2       FLOAT             NOT NULL,
    -> i_ac3       FLOAT             NOT NULL,
    -> frequency1  FLOAT             NOT NULL,
    -> frequency2  FLOAT             NOT NULL,
    -> frequency3  FLOAT             NOT NULL,
    -> v_dc        FLOAT             NOT NULL COMMENT 'steps of 0.0625 V',
    -> e_total     INT      UNSIGNED NOT NULL,
    -> i_rcd       FLOAT             NOT NULL,
    -> mode        TINYINT  UNSIGNED NOT NULL COMMENT '1 OFF, 2 SLEEPING, 3 STARTING, 4 MPPT, 5 THROTTLED, 6 SHUTTING_DOWN, 8 STANDBY',
    -> v_1to2      FLOAT             NOT NULL,
    -> v_2to3      FLOAT             NOT NULL,
    -> v_3to1      FLOAT             NOT NULL,
    -> p_active1   FLOAT             NOT NULL,
    -> p_active2   FLOAT             NOT NULL,
    -> p_active3   FLOAT             NOT NULL,
    -> p_apparent1 FLOAT             NOT NULL,
    -> p_apparent2 FLOAT             NOT NULL,
    -> p_apparent3 FLOAT             NOT NULL,
    -> p_reactive1 FLOAT             NOT NULL,
    -> p_reactive2 FLOAT             NOT NULL,
    -> p_reactive3 FLOAT             NOT NULL,
    -> PRIMARY KEY (timestamp, inv_id)
    -> );
ERROR 1050 (42S01): Table 'telemetry_inverter_3phase' already exists
mysql> 
mysql> CREATE TABLE live_update (
    -> pvo_last_live INT UNSIGNED NOT NULL,
    -> last_0503     BINARY(34)   NOT NULL,
    -> last_telemetry INT UNSIGNED NOT NULL
    -> );
ERROR 1050 (42S01): Table 'live_update' already exists
mysql> INSERT INTO live_update (pvo_last_live, last_0503, last_telemetry) VALUES (0, "\0", 0);
Query OK, 1 row affected (0.02 sec)

mysql>

Dan zou het dus in de toegang tot de mysql db moeten zitten.

mysql draait goed:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (armv7l) using readline 6.3

Connection id:      40
Current database:   solaredge
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.57-0+deb8u1 (Raspbian)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:         9 min 5 sec

Threads: 1  Questions: 133  Slow queries: 0  Opens: 53  Flush tables: 1  Open tables: 46  Queries per second avg: 0.244
--------------

mysql>

Als ik de instellingen samenvat die ik in de bestanden moet plaatsen dan krijg ik onderstaande:
Open 'liveupdate.py' en vul de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan.
Open 'pvo-upload.php' en vul ook hierin de gebruikersnaam en het wachtwoord van de MySQL database in in het SETTINGS gedeelte bovenaan.
Gebruikersnaam is in mijn geval 'root', het wachtwoord is bekend en goed want ik kan de MySQL database openen.

Is er dan mogelijk toch iets niet in orde met de wijze waarop er verbinding gemaakt wordt met de MySQL db? Gezien de melding: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Zie overigens het bestand solaredge-xxxx.pcap wel groeien op het moment dat ik m'n telefoon met het wifinetwerk verbind en een aantal websites bezoek. Dat werkt dan in ieder geval wel. Nu die MySQL db nog (of interpreteer ik de informatie verkeerd en werkt het gewoon?).
Zo te zien werkt het inloggen op je MySQL database inderdaad niet vanuit liveupdate.py. Een paar snelle checks:
1. Draait MySQL op dezelfde Pi als waarop je se-logger hebt draaien? Zo niet, dan moet je behalve je username en password natuurlijk ook de hostname van de MySQL server invullen in de scripts ;)
2. Heb je de se-logger service al eens geprobeerd te herstarten nadat je je gegevens in liveupdate.py hebt ingevuld?
3. Werkt pvo-upload.php wel goed, of krijg je daar ook de "Can't connect" error?

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Jerrythafast schreef op vrijdag 3 november 2017 @ 19:42:
[...]
Zo te zien werkt het inloggen op je MySQL database inderdaad niet vanuit liveupdate.py. Een paar snelle checks:
1. Draait MySQL op dezelfde Pi als waarop je se-logger hebt draaien? Zo niet, dan moet je behalve je username en password natuurlijk ook de hostname van de MySQL server invullen in de scripts ;)
2. Heb je de se-logger service al eens geprobeerd te herstarten nadat je je gegevens in liveupdate.py hebt ingevuld?
3. Werkt pvo-upload.php wel goed, of krijg je daar ook de "Can't connect" error?
Blijft toch mooi zo'n forum :)
1: yes, draait op dezelfde Raspberry
2: heb meerdere malen de Raspberry een reboot gegeven, dus de service zal ook opnieuw gestart zijn (aanname)
3: ga ik vanmiddag even checken

Acties:
  • 0 Henk 'm!
Hmm, zou anders ook nog kunnen dat er speciale beveiliging zit op het root account waardoor de service er niet mee mag inloggen. Als je het netjes wilt doen is het sowieso beter een apart MySQL user account te maken dat alleen bij de se-logger database kan. Met die set-up draai ik het hier al ruim anderhalf jaar probleemloos op verschillende versies van Ubuntu en MySQL.

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Niek_ is de sock (/var/run/mysqld/mysqld.sock) wel aanwezig in het filesystem? Anders zou je eens kunnen proberen om localhost of 127.0.0.1 als host op te geven.

(Ow en je draait toch geen enge dingen als se-linux? Anders zou ik daar eerst beginnen)

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@Jerrythafast Ik zal een andere gebruiker aanmaken en de bestanden aanpassen. Kijken of dat werkt.
@MDKlapwijk yes, sock is aanwezig, zie onderstaande. Ik draai Domoticz, is dat wat je bedoeld qua vraag?

Trouwens, kan ik de omvormer nu wel verbinden als de db nog niet in orde is? De data wordt in het pcap-bestand weggeschreven.

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
Last login: Sat Nov  4 13:23:49 on console
macbook-pro:~ metze$ ssh pi@192.168.2.8
pi@192.168.2.8's password: 
______                      _   _          
|  _  \                    | | (_)         
| | | |___  _ __ ___   ___ | |_ _  ___ ____
| | | / _ \| '_ ` _ \ / _ \| __| |/ __|_  /
| |/ / (_) | | | | | | (_) | |_| | (__ / / 
|___/ \___/|_| |_| |_|\___/ \__|_|\___/___|


Saturday,  4 November 2017,  1:33:47 pm CET
Linux 4.9.59+ armv6l GNU/Linux
Uptime.............: 0 days, 00h14m01s
Memory.............: 244200kB (Free) / 444536kB (Total)
Load Averages......: 0.12, 0.22, 0.26 (1, 5, 15 min)
Running Processes..: 99
IP Addresses.......: 192.168.2.8

pi@raspberrypi:~$ cd /var/run/mysqld/
pi@raspberrypi:/var/run/mysqld$ ls -l
total 4
-rw-rw---- 1 mysql mysql 5 Nov  4 13:20 mysqld.pid
srwxrwxrwx 1 mysql mysql 0 Nov  4 13:20 mysqld.sock
pi@raspberrypi:/var/run/mysqld$

[ Voor 5% gewijzigd door Niek_ op 04-11-2017 13:57 ]


Acties:
  • +1 Henk 'm!
@Niek_ Als de data in het pcap bestand wordt opgeslagen, kun je hem inderdaad verbinden. Zo heb ik het de eerste twee maanden laten draaien, van begin februari tot en met eind maart 2016. Ik had van de eerste twee dagen leesbare data, daarna ging de encryptie erop. Pas eind maart lukte het de encryptie te breken. In de tussentijd heb ik gewoon de pcap files laten vullen. Toen de encryptie-puzzel was opgelost kon ik alle vergaarde data alsnog ontsleutelen.

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Niek_, nee niet echt. Ik bedoelde of je niet een distro gebruikt welke selinux standaard aan heeft staan. Dat is nl. vaak een bron van de ellende als dingen het niet doen (net als iptables):
- Wikipedia: Security-Enhanced Linux

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
MDKlapwijk schreef op zondag 5 november 2017 @ 10:10:
@Niek_, nee niet echt. Ik bedoelde of je niet een distro gebruikt welke selinux standaard aan heeft staan. Dat is nl. vaak een bron van de ellende als dingen het niet doen (net als iptables):
- Wikipedia: Security-Enhanced Linux
Denk het niet. Ik heb deze tutorial gevolgd bij de initiële installatie. Slinger zo de laptop weer aan om verder te prutsen. Moet een keertje lukken.

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@Jerrythafast en anderen natuurlijk
Nieuwe MySQL user aangemaakt en de gebruikersnaam in de bestanden liveupdate.py en pvo-upload.php aangepast.
In se-logger.service' in de '/etc/systemd/system' directory de 'KillMode=' regel aangepast naar 'KillMode=control-group'
logbestanden in de map /opt/se-logger verwijderd en de Raspberry een reboot gegeven.
Inhoud bestanden:
liveupdate.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); 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: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

pvo-upload.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row' in /opt/se-logg$
Stack trace:
#0 /opt/se-logger/pvo-upload.php(31): PDO->query('SELECT timestam...')
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 31
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row' in /opt/se-logg$
Stack trace:
#0 /opt/se-logger/pvo-upload.php(31): PDO->query('SELECT timestam...')
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 31
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row' in /opt/se-logg$
Stack trace:
#0 /opt/se-logger/pvo-upload.php(31): PDO->query('SELECT timestam...')
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 31

tcpdump.log
code:
1
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes

Argh.... |:(
Ik heb helaas (nog) te weinig kennis om hier uit te komen. Hopelijk dat iemand die meeleest mij op het juiste spoor kan brengen?
Ik ga ondertussen de MySQL db in z'n geheel verwijderen en opnieuw aanmaken middels het database.txt bestand aangezien de 1242 error mogelijk een foutje in dat deel aanwijst?

Service disabled en gestopt.
MySQL db in z'n geheel verwijderd.
Reboot
MySQL db weer aangemaakt conform info in database.txt
Logbestanden verwijderd
Reboot
service enabled en gestart
Reboot
pvo-upload.log blijft nu leeg
liveupdate.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); retrying...
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); 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: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

Kak.

[ Voor 24% gewijzigd door Niek_ op 05-11-2017 12:22 ]


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 14-05 21:15

xces

To got or not to got..

Ik zie een hoop mysterious bytes dus dan zit het goed. Nu nog de encryptiesleutel achterhalen

Acties:
  • 0 Henk 'm!
@Niek_ Die cardinality error krijg je als je de 'INSERT INTO live_update ...' query meerdere keren hebt uitgevoerd. (In de live_update tabel hoort exact één regel te staan.)

Dat PHP wel in de database kan komen geeft aan dat het probleem hem dus zit in de verbinding van Python naar MySQL. Mogelijk heeft de user waaronder se-logger draait geen toegangsrechten op /var/run/mysqld/mysqld.sock?

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Niek_, zou je nog een keer het volgende kunnen geven:
- settings van liveupdate.py (zonder je encryptie sleutel en db password!)
- ping -c1 localhost
- netstat -lnp
- ps aux | grep liveupdate

Die van mij:
code:
1
2
3
4
5
6
# SETTINGS
inverter_private_key = '<priv>'
db_user = "solaredge"
db_pass = "<pass>"
db_name = "solaredge"
db_host = "localhost"


Kunnen we localhost resolven:
code:
1
2
3
4
5
6
7
root@domoticz-01:~# ping localhost -c1
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.104 ms

--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.104/0.104/0.104/0.000 ms


Luistert mysql op de juiste port (en adres):
code:
1
2
3
4
5
root@domoticz-01:~# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1119/mysqld
...


Met welke rechten draait de liveupdate:
code:
1
2
3
root@domoticz-01:~# ps aux | grep liveupdate
root       738  0.0  0.8  24728  8660 ?        S    04:00   0:01 /usr/bin/python -u /opt/se-logger/liveupdate.py -
root      4423  0.0  0.1   4272  1844 pts/0    S+   08:20   0:00 grep --color=auto liveupdate

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@Jerrythafast
Die cardinality error krijg je als je de 'INSERT INTO live_update ...' query meerdere keren hebt uitgevoerd. (In de live_update tabel hoort exact één regel te staan.
Ik hoop dat ik je goed begrijp, maar dan lijkt het erop dat dit goed staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
mysql> use solaredge;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_solaredge       |
+---------------------------+
| live_update               |
| telemetry_inverter        |
| telemetry_inverter_3phase |
| telemetry_optimizers      |
+---------------------------+
4 rows in set (0.00 sec)

mysql> describe live_update;
+----------------+------------------+------+-----+---------+-------+
| Field          | Type             | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------+-------+
| pvo_last_live  | int(10) unsigned | NO   |     | NULL    |       |
| last_0503      | binary(34)       | NO   |     | NULL    |       |
| last_telemetry | int(10) unsigned | NO   |     | NULL    |       |
+----------------+------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> select * from live_update;
+---------------+------------------------------------+----------------+
| pvo_last_live | last_0503                          | last_telemetry |
+---------------+------------------------------------+----------------+
|             0 |                                    |              0 |
+---------------+------------------------------------+----------------+
1 row in set (0.00 sec)

mysql>


@MDKlapwijk
Jazeker! Zie onderstaande:
Valt mij net op dat in liveupdate.log nu een stuk minder staat:
code:
1
Reading from -

liveupdate.py ziet er hetzelfde uit.
code:
1
2
3
4
5
6
# SETTINGS
inverter_private_key = '<priv>'
db_user = "Niek"
db_pass = "<pass>"
db_name = "solaredge"
db_host = "localhost"

localhost ping ziet er ook hetzelfde uit
code:
1
2
3
4
5
6
7
pi@raspberrypi:/$ ping -c1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.450 ms

--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.450/0.450/0.450/0.000 ms

netstar, hier wijkt de PID af voor zover ik kan zien.
code:
1
2
3
4
5
6
7
8
pi@raspberrypi:/$ sudo netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1546/mysqld     

Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     11819    1546/mysqld         /var/run/mysqld/mysqld.sock

liveupdate wijkt op meerdere punten af
code:
1
2
3
pi@raspberrypi:/$ sudo ps aux | grep liveupdate
root     13930  0.0  2.0  24460  9000 ?        S    00:30   0:00 /usr/bin/python -u /opt/se-logger/liveupdate.py -
pi       23639  0.0  0.4   4264  2024 pts/0    S+   18:10   0:00 grep liveupdate

Acties:
  • +1 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Niek_, de PID is de process id, dus die veranderd met elke herstart van het process. Liveupdate draait ook als root, dus die zou wat rechten betreft goed moeten zijn. Verder ziet alles er normaal uit....

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • +1 Henk 'm!
@Niek_ aan je liveupdate.log te zien is het probleem opgelost?

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@MDKlapwijk @Jerrythafast Dank voor jullie hulp. Werd nu wellicht op het verkeerde been gezet doordat liveupdate.log 'maar' uit 1 regel bestaat. Maar begrijp dat dit correct is. Ik ga de omvormer verbinden en zal dit dan terug moeten zien in de pcap-bestanden. Tegelijk zouden de eerste regels in de db gevuld moeten worden verwacht ik omdat de encryptie nog niet aanstaat (toch?). Ben erg benieuwd :)

Net alles een reboot gegeven en de omvormer verbonden met het wifi-netwerk van de logger. Ik zie het pacp-bestand groeien. So far, so good. Ik dacht, laat ik de logbestanden nog even checken:
liveupdate.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); ret$
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); ret$
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); ret$
Warning: Could not connect to database: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"); ret$
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: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")


pvc-upload.log
code:
1
2
3
4
5
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket$
Stack trace:
#0 /opt/se-logger/pvo-upload.php(15): PDO->__construct('mysql:host=loca...', 'Niek', '<pass>', Array)
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 15


tcpdump.log
code:
1
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes

Tsja.. 8)7
Ik ga weer verder hobbyen.

[ Voor 71% gewijzigd door Niek_ op 07-11-2017 18:01 ]


Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Niek_, mysql is wel gestart na de reboot?

[ Voor 15% gewijzigd door MDKlapwijk op 07-11-2017 20:38 ]

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@MDKlapwijk
Zo te zien wel:
code:
1
2
3
pi@raspberrypi:/opt/se-logger$ mysqladmin -u root -p status
Enter password: 
Uptime: 1013  Threads: 1  Questions: 128  Slow queries: 0  Opens: 53  Flush tables: 1  Open tables: 46  Queries per second avg: 0.126

Begin nu wel op het punt aan te komen dat ik alles eraf ga gooien en opnieuw ga beginnen...bah |:(

Irritante is dat ik het ook gewoon echt niet snap. Volgens mij, met jullie hulp, zo ongeveer alle mogelijkheden wel bekeken. Daarnaast ook vreemd dat het log de ene keer geen fouten had, maar vervolgens weer wel en heb niet scherp wat er gewijzigd is tussendoor.

[ Voor 198% gewijzigd door Niek_ op 07-11-2017 21:35 ]


Acties:
  • 0 Henk 'm!
@Niek_ probeer eens zonder reboot de se-logger service te herstarten (met 'sudo service se-logger restart'). Krijg je dan weer mysql connection fouten in liveupdate.log?

Mijn gedachtegang is dat bij een reboot de se-logger service al gestart wordt voordat MySQL wakker is.

Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Jerrythafast schreef op dinsdag 7 november 2017 @ 22:37:
@Niek_ probeer eens zonder reboot de se-logger service te herstarten (met 'sudo service se-logger restart'). Krijg je dan weer mysql connection fouten in liveupdate.log?

Mijn gedachtegang is dat bij een reboot de se-logger service al gestart wordt voordat MySQL wakker is.
Lijkt erop dat dit de truc is voor liveupdate.log:
code:
1
Reading from -

in pvc-upload.log heb ik nog wel een foutmelding:
code:
1
2
3
4
5
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY00$
Stack trace:
#0 /opt/se-logger/pvo-upload.php(15): PDO->__construct('mysql:host=loca...', 'N$
#1 {main}
  thrown in /opt/se-logger/pvo-upload.php on line 15

ik ga even kijken wat er op regel 15 te vinden is.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
//SETTINGS
define("DB_HOST", "localhost");
define("DB_NAME", "solaredge");
define("DB_USERNAME", "<username>");
define("DB_PASSWORD", "<pass>");
define("PVO_API_KEY", "<key>");
define("PVO_SYSTEM_ID", "<systemID>");



$db = new PDO(
  "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8", DB_USERNAME, DB_PASSWORD,
  [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
   PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]);

$q = $db->query(
  'SELECT timestamp, p_active, temperature, v_ac, se_day ' .
  'FROM (' .
    'SELECT ' .
      'timestamp, p_active, temperature, v_ac, ' .
      '@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 >= (SELECT UNIX_TIMESTAMP(FROM_UNIXTIME(pvo_last_live, "%Y%m%d")) FROM l$
    'ORDER BY timestamp' .
  ') x ' .
  'WHERE timestamp > (SELECT pvo_last_live FROM live_update) ' .
  'LIMIT 100');
if($q === false)
  die("Could not get data!\n");

$lastdate = 0;
$data = array();
while($row = $q->fetch()){
  array_push($data, implode(",", [
    date("Ymd", $row["timestamp"]),
    date("H:i", $row["timestamp"]),
    round($row["se_day"]),
    round($row["p_active"]),
    "",
    "",
    $row["temperature"] == 0? "" : $row["temperature"],
    $row["v_ac"] == 0? "" : $row["v_ac"]
  ]));
  $lastdate = $row["timestamp"];
}
$data = implode(";", $data);
if(!$data)
  exit;

$c = curl_init("http://pvoutput.org/service/r2/addbatchstatus.jsp");
curl_setopt_array($c, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FAILONERROR => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => "data=" . $data,
  CURLOPT_HTTPHEADER => [
    "X-Pvoutput-Apikey: " . PVO_API_KEY,
    "X-Pvoutput-SystemId: " . PVO_SYSTEM_ID
  ]
]);
if(curl_exec($c) === false)
  die("cURL error, exiting: " . curl_error($c) . "\n");

$db->prepare("UPDATE live_update SET pvo_last_live = ?")->execute([$lastdate]);
?>

Regel 15 bevat: PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]);
Ik ga even kijken of Google mij verder kan helpen maar hou mij aanbevolen voor goede suggesties :)

Zie trouwens de *.pcap bestanden groeien, dus de data wordt in ieder geval veiliggesteld.

[ Voor 59% gewijzigd door Niek_ op 08-11-2017 09:42 ]


Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@Jerrythafast, misschien het volgende in de /etc/systemd/system/se-logger.service plaatsen:
code:
1
After=network.target mysql.service


@Niek_, @Jerrythafast, misschien php5 ipv. php7 installeren? Of zou het onder php7 ook gewoon moeten werken?

[ Voor 11% gewijzigd door MDKlapwijk op 08-11-2017 10:19 ]

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • 0 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
Net in ieder geval het huidige *.pcap-bestand uitgelezen in Wireshark om te checken of er data in zit en of er encryptie op zit. Ik kan het patroon 12 34 56 79 vinden en zie een stukje verderop voornamelijk de 80 00 en 00 50. Dus als ik het goed begrijp zit de encryptie er nog niet op (verklaart ook waarom het pythonscript de sleutel nog niet vind). Vooralsnog wordt de data in ieder geval goed opgeslagen. Nu verder prutsen met de MySQL db.

Acties:
  • 0 Henk 'm!
@MDKlapwijk se-logger.service op die manier laten starten na mysql.service is inderdaad de oplossing. Ik had zo te zien al een nieuwe versie van se-logger klaar staan waarin dit is aangepast. Om een of andere reden heb ik destijds niet de tijd genomen er een zipje van te maken en te releasen :9 Ga ik straks even doen. EDIT: Done. Versie 0.0.10 staat online.

Het PHP-script moet op php7 werken. Ik heb het zelf op php5 niet eens getest, ik draai alleen nog 7. Ik geloof wel dat er in dit topic nog anderen zijn die het ook op php5 draaiende hebben.

@Niek_: dat klinkt goed inderdaad. Waarschijnlijk zie je 00 05 (0x0500) in plaats van 00 50? ;) Wanneer de encryptie aan staat zie je alleen nog maar 3d 00 en af en toe 03 05.




Even een vraagje aan iedereen die se-logger heeft draaien. Ik heb na de crash van de sd-kaart van mijn Pi weer lopen stoeien met het se-logger.service bestand en heb hem bij mij toen iets anders ingesteld omdat de service niet goed herstartte. Hoe ziet bij jullie het [Service] gedeelte van se-logger.service eruit? Voorbeeld van mij nu:
jerry@pi:~$ cat /etc/systemd/system/se-logger.service
[Unit]
Description=This service captures TCP traffic from SolarEdge inverters
After=network.target mysql.service

[Service]
ExecStart=/bin/bash /opt/se-logger/se-logger-service.sh
KillMode=control-group
KillSignal=SIGHUP
SendSIGKILL=no
Restart=always

[Install]
WantedBy=multi-user.target

[ Voor 42% gewijzigd door Jerrythafast op 08-11-2017 19:06 ]


Acties:
  • +1 Henk 'm!

  • Aegle
  • Registratie: November 2013
  • Laatst online: 13-05 21:05
@Jerrythafast:

Bij mij ziet het er zo uit. Het is wel een oude versie: 0.0.7...

root@rpi2-solarlogger:/opt/se-logger# cat /etc/systemd/system/se-logger.service
[Unit]
Description=This service captures TCP traffic from SolarEdge inverters
After=network.target

[Service]
ExecStart=/bin/bash /opt/se-logger/se-logger-service.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=always

[Install]
WantedBy=multi-user.target
root@rpi2-solarlogger:/opt/se-logger#

33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput


Acties:
  • +1 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@Jerrythafast
en hier zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
pi@raspberrypi:~$ cat /etc/systemd/system/se-logger.service
[Unit]
Description=This service captures TCP traffic from SolarEdge inverters
After=network.target

[Service]
ExecStart=/bin/bash /opt/se-logger/se-logger-service.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=always

[Install]
WantedBy=multi-user.target

Zie naast het stukje achter 'After=' ook nog wat verschillen onder [Service]
Ondertussen lekker verder aan het prutsen met MySQL, dit gaat een keer goedkomen.

[ Voor 8% gewijzigd door Niek_ op 08-11-2017 20:29 ]


Acties:
  • 0 Henk 'm!

  • Aegle
  • Registratie: November 2013
  • Laatst online: 13-05 21:05
Goed bezig @Niek_ :) .

33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput


Acties:
  • +1 Henk 'm!

  • tsjoender
  • Registratie: April 2005
  • Laatst online: 10:57
Hier de versie welke bij 0.0.8 zat:

[Unit]
Description=This service captures TCP traffic from SolarEdge inverters
After=network.target

[Service]
ExecStart=/bin/bash /opt/se-logger/se-logger-service.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

[ Voor 32% gewijzigd door tsjoender op 08-11-2017 20:48 ]


Acties:
  • +1 Henk 'm!

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 14-05 19:24
@Jerrythafast
Top! Encryptiesleutel zojuist gevonden door middel van het draaien van het script. Super!

Nu nog verder hobbyen met de database, moet toch een keer lukken :)

Acties:
  • 0 Henk 'm!

  • HKoops
  • Registratie: November 2017
  • Laatst online: 14-01 21:42
@Jerrythafast @MDKlapwijk
Sinds 3 wekwn volg ik dit forum. Mijn Rpi3 staat druk te loggen, maar omdat de SE3500 al 3 dagen aanstond voordat ik de Rpi binnen had, heb ik de key natuurlijk gemist. Ook de Pcaps bevatten geen key. Heb dus een USB-RS232/485 -> BAG gekocht. Helaas loop ik daar ook mee vast. Hebben jullie tips / advies? Vast bedankt.

Acties:
  • 0 Henk 'm!

  • MDKlapwijk
  • Registratie: Maart 2003
  • Laatst online: 09:10

MDKlapwijk

Kubiekdriehoekje

@HKoops, sorry nee, was bij mij niet nodig en bij een vriend van mij, ook een se3500h, hebben we nog niet gekeken...

Kijk uit: ben gek op achteruitkijkglimmertjes, zowel linker als rechter...


Acties:
  • +1 Henk 'm!

  • andrerij
  • Registratie: April 2017
  • Laatst online: 07-05 20:52
@jerrythafast bij mij ziet de service er zo uit:

pi@raspberry-2:~$ cat /etc/systemd/system/se-logger.service
[Unit]
Description=This service captures TCP traffic from SolarEdge inverters
After=

[Service]
ExecStart=/bin/bash /home/pi/opt/se-logger/se-logger-service.sh
ExecReload=bin/kill -HUP $MAINPID
KillMode=control-group
Restart=always

[Install]
WantedBy=multi-user.target


Met "sudo raspi-config" heb ik "wait for network by boot" aangezet.

Ik heb nu ook een crach gehad 8)7 en heb daarom een usb-drive aan mij RPI gehangen.
Hier wordt de data van de MySql-server op gezet zodat de SD-kaart minder wordt gebruikt.

Acties:
  • 0 Henk 'm!

Anoniem: 996901

hallo, ook ik ga een poging wagen om dit voor elkaar te krijgen als linux noob,
nun had ik even eenp vraag, mijn situatie wordt switch met mirrior poort waar de pi aan komt te hangen @Jerrythafast , welke van de 2 configs moet ik dan aanhouden voor het netwerk in te stellen op de pi ?
graag verneem ik dit zodat ik dat in kan stellen

[ Voor 68% gewijzigd door Anoniem: 996901 op 19-11-2017 10:04 ]


Acties:
  • +1 Henk 'm!
@Anoniem: 996901, als je port mirroring op je switch gebruikt, heb je geen speciale instellingen op je Pi nodig. gewoon aansluiten op de mirror poort met een LAN-kabel zou voldoende moeten zijn.

Om het te testen, kun je je switch zo instellen dat hij het verkeer van een aangesloten PC mirrort naar de mirror poort. Op de Pi draai je dan het commando
user@logger$  sudo tcpdump -c 25 -i eth0 tcp


Wanneer je nu op de PC een website opent zou je op de Pi een aantal regels output te zien moeten krijgen. Als dat werkt is het alleen nog een kwestie van se-logger instellen (hoofdstuk 5) en de PC vervangen door de omvormer.

Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast bedankt hiervoor, dan ga ik alles eens op de pi installeren en proberen om er wat uit te krijgen

Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast nog een kleine vraag hoe kan ik de encriptie code vinden als mijn systeem al langer dan 48 uur aan staat, ik heb geen usb kunnen vinden er op of iets van rs232

Acties:
  • 0 Henk 'm!
@Anoniem: 996901 ik geloof dat er op de HD Wave omvormers inderdaad geen USB-poort meer zit, maar nog wel aansluitingen voor rs232 of rs485. Ik heb hier zelf geen ervaring mee, maar ik heb foto's voorbij zien komen van schroefterminals waar de draden dan in moeten worden gestoken. Misschien kan @ocaj je hier meer over vertellen.

Er is nog één ding dat nooit iemand heeft geprobeerd, maar wat misschien wel werkt, en dat is een 'reset to factory defaults'. Het "zou kunnen zijn dat" daarmee de encryptie ook weer uitgezet wordt (immers, af-fabriek staat het uit...) Hoe dit moet vind je in de handleiding.

Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast heb al een factory reset gedaan dit kan in het menu gedaan worden, hij draait hier pas een paar dagen dus ik was er niet zo bang voor om dat te doen, helaas staat hij nu in nachtmodus dus hij za niet veel data versturen, ik zal de logger mee laten draaien kijken of daar nog wat uit komt
er zit idd schroefterminals dus nu even uit zoeken of dit rs232 of rs485 is zodat ik de key er nog uit kan krijgen

Acties:
  • 0 Henk 'm!
@Anoniem: 996901 SolarEdge heeft deze PDF met informatie over hoe je o.a. een seriële verbinding moet aansluiten. Het document rept niet meer over RS232, dus het zal RS485 zijn.

[ Voor 11% gewijzigd door Jerrythafast op 19-11-2017 19:41 ]


Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast
bedankt alvast hiervoor
in de files kan ik nog niet zien of de data nou al wel of niet gecodeerd is
moet enkel de database nog even goed zetten de rest werkt al wel

270 880.801635 192.168.0.13 217.68.149.103 TCP 60 2993 → 80 [SYN] Seq=0 Win=2152 Len=0 MSS=538

268 876.700096 217.68.149.103 192.168.0.13 TCP 60 80 → 2991 [FIN, ACK] Seq=1 Ack=2 Win=14600 Len=0

dit is een regel die verzonden word naar de server van solar

[ Voor 16% gewijzigd door Anoniem: 996901 op 19-11-2017 20:02 ]


Acties:
  • 0 Henk 'm!
@Anoniem: 996901 hieraan kun je het niet zien. Je hebt de inhoud van een TCP-packet nodig. (Wat je nu hebt is metadata van een TCP packet zonder inhoud, len=0.)

Je zou dit commando kunnen draaien voor een kwartiertje:
tcpdump -i eth0 -U -w capture.pcap tcp


Je krijt dan een 'capture.pcap' bestand waarin al het tcp-verkeer wordt bewaard. Dit bestand kun je openen in bijvoorbeeld Wireshark om de inhoud van het tcp-verkeer te bekijken. SolarEdge-verkeer is te herkennen aan de byte-reeks '12 34 56 79'. Als er veertien bytes verderop steeds '3d 00' staat is het encrypted. Staat er '80 00' of '00 05', dan is het oké.

Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast bedankt heb het nu even ingetikt en laat hem nu even draaien kijken wat er uit komt,
er staat heel veel in de file ik kom daar helaas niet uit wat alles is ja zie ip adressen enz maar veder kom ik er geen wijs uit .

als iemand de file wilt ontcijferen stuur hem graag door,

[ Voor 48% gewijzigd door Anoniem: 996901 op 19-11-2017 20:46 ]


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
Jerrythafast schreef op zondag 19 november 2017 @ 19:26:
Ik heb hier zelf geen ervaring mee, maar ik heb foto's voorbij zien komen van schroefterminals waar de draden dan in moeten worden gestoken. Misschien kan @ocaj je hier meer over vertellen.
RS485 moet inderdaad in schroefterminals. Er zitten in de mijne 2 aansluitingen een RS485-1 en een RS485-2. De handleiding zei bij mij dat je vooral de RS485-2 niet moet gebruiken (maar laat in het midden waarom hij er dan in zit...)

Ervaring met het ophalen van de encryptiesleutel heb ik niet. Mijn omvormers hebben nooit aan Internet gehangen en doen alles dus nog onversleuteld doen. Je kunt via RS485 dezelfde commando's sturen als via USB, en een RS485-USB-adapter ziet er voor Linux volgens mij hetzelfde uit als een normale seriele poort. Kwestie van proberen dus?

Acties:
  • 0 Henk 'm!
@ocaj als de RS485 verbinding werkt kun je met een script dat ik bij se-logger heb meegeleverd de key uitvragen.
@Anoniem: 996901 ik maak even een scriptje dat de pcap file bekijkt en je vertelt of het encrypted is of niet, hang on.

Acties:
  • 0 Henk 'm!

Anoniem: 996901

ocaj schreef op zondag 19 november 2017 @ 20:52:
[...]

RS485 moet inderdaad in schroefterminals. Er zitten in de mijne 2 aansluitingen een RS485-1 en een RS485-2. De handleiding zei bij mij dat je vooral de RS485-2 niet moet gebruiken (maar laat in het midden waarom hij er dan in zit...)

Ervaring met het ophalen van de encryptiesleutel heb ik niet. Mijn omvormers hebben nooit aan Internet gehangen en doen alles dus nog onversleuteld doen. Je kunt via RS485 dezelfde commando's sturen als via USB, en een RS485-USB-adapter ziet er voor Linux volgens mij hetzelfde uit als een normale seriele poort. Kwestie van proberen dus?
bedankt voor de info, ik ga eens een RS485-usb adapter bestellen, ik werk voornamelijk gewoon met windows,

Acties:
  • 0 Henk 'm!

Anoniem: 996901

@Jerrythafast oke dank je alvast

Acties:
  • +1 Henk 'm!
@Anoniem: 996901 Ziehier is-pcap-encrypted.py:
Python:
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
#!/usr/bin/env python
"""
Use this script to quickly check whether captured data is encrypted.
"""
import sys, glob

def iglob(pathname):
  success = False
  for result in glob.iglob(pathname):
    success = True
    yield result
  if not success:
    yield pathname


if len(sys.argv) < 2:
  print("%s\n\nTry running: python %s *.pcap" %
    (__doc__.strip("\r\n").replace("\r", "").replace("\n", " "), sys.argv[0]))
  sys.exit(1)

packets = 0
encrypted = 0

for filename in (x for x in sys.argv[1:] for x in iglob(x)):
  print("Reading from %s" % filename)
  f = sys.stdin if filename == "-" else open(filename, "rb")
  data = f.read()
  f.close()

  pos = -1
  while True:
    pos = data.find("\x12\x34\x56\x79", pos + 1)
    if pos == -1 or pos > len(data) - 20:
      break
    packets += 1
    if ord(data[pos+18]) + (ord(data[pos+19]) << 8) in (0x0503, 0x003d):
      encrypted += 1

if not packets:
  print("No SolarEdge data found in input.")
elif not encrypted:
  print("None of the SolarEdge data found appears to be encrypted.")
elif packets == encrypted:
  print("All SolarEdge data found is encrypted.")
else:
  print("%.1f%% of SolarEdge data found is encrypted." %
      (100. * encrypted / packets))


user@logger$  python is-pcap-encrypted.py test.pcap
Reading from test.pcap
68.8% of SolarEdge data found is encrypted.

[ Voor 11% gewijzigd door Jerrythafast op 19-11-2017 21:30 . Reden: Elif/else toegevoegd; logic error gefixt. ]


Acties:
  • 0 Henk 'm!

Anoniem: 996901

Reading from capture.pcap
None of the SolarEdge data found appears to be encrypted.
0.0% of SolarEdge data found is encrypted.


dit komt er bij mij nu uit @Jerrythafast dus denk dat ik nog geluk heb,

Acties:
  • 0 Henk 'm!
@Anoniem: 996901 Inderdaad! Mooi zo :)

Acties:
  • 0 Henk 'm!

Anoniem: 996901

nu enkel nog de database voor elkaar krijgen, lukte me gister ook niet, had hulp gehad enkel nu heb ik alles om gezet naar een pi2 enkel daar moet de database nog aangemaakt worden dus daar ben ik nog even op aan het wachten. tot dat me kennis er tijd voor heeft :)
Pagina: 1 ... 6 ... 28 Laatste

Let op:
Dit topic is bedoeld voor discussies rondom het zelf uitlezen van solaredge omvormers, dus buiten de standaard monitoring.
Voor algemene solaredge vragen is er Het grote SolarEdge topic