Ga naar inhoud


Linux bash, Growatt uitlezen ipv met Python.


Con

Aanbevolen berichten

Ik ga het nog ff proberen, ben nu bezig beneden op m'n tablet

dus een beetje met hindernissen.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


  • Reacties 37
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Geplaatste afbeeldingen

Hindernissen zijn er niet enkel bij jou.

 

ik probeer wijs te raken uit de documentatie; staan referenties in 'C2: read data type' maar buiten "generally it is '0x59'" staat er niet veel in.

 

Mogelijk moet ik het commando voor uitlezen van de serial nog even bij spijkeren...

 

**edit - toevoegen nieuwe code**

#!/bin/sh

#open connectie naar inverter
# 9600 = connectionspeed
# cs8 = 8 databits
# -cstopb = 1 stop bit

stty -F /dev/Growatt 9600 cs8 -cstopb 

##capteer data in achtergrond
(cat /dev/Growatt > tempGrowat.txt)&
# Capture PID of background process so it is possible to terminate it when done
bgPid=$?


#read inverter serial
##stuur eerst commando om data te lezen
echo -e -n '\x3F \x23 \x7E \x34 \x53 \x7E \x23 \x3F ' > /dev/Growatt


#kill stty
echo -n ^U > /dev/Growatt
#kill cat
kill $bgPid

exit 0

Voorlaatste hex-value is veranderd van \x32 naar \x23 en laatste hex-value is aangepast van \x59 naar \x3F

aangepast door De_Perre

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Op de commandline krijg ik; Terminated

 

En in de tempGrowat.txt geen enkel karakter.

 

Dit zal ik dit uiteraard morgen oppakken.

 

Nee, zonder zon gaat de inverter in de stand-by

en is hij niet meer benaderbaar, er zijn er

vele die daar last van hadden (op vele fora)

bij het experimenteren.

 

Dus ik ga maar eens een keertje vroeg naar bed

inderdaad, ook niet verkeerd.

Op voorhand voor zover weer bedankt voor je

inspanning.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Goedenmorgen!!

 

Helaas ook bij het gemodificeerde script; Terminated.

 

En de logfile is leeg.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Zal proberen om vanavond nog wat verder te zoeken; en de Growatt documentatie nog enkele keren doornemen :)

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Eerst maar eens zien of het werkt indien we de codes gebruiken die als voorbeeld in de 'handleiding' staan:

#!/bin/sh

#open connectie naar inverter
# 9600 = connectionspeed
# cs8 = 8 databits
# -cstopb = 1 stop bit

stty -F /dev/Growatt 9600 cs8 -cstopb 

##capteer data in achtergrond
(cat < /dev/Growatt > tempGrowat.txt)&
# Capture PID of background process so it is possible to terminate it when done
bgPid=$?


#read inverter serial
##stuur eerst commando om data te lezen

#komt uit handleiding als startsignaal; maar interval = 5000ms
###		 ? # ~ 4 A ~ 2 Y 5 0 0 0 # ?
echo -e -n '\x3F \x23 \x7E \x34 \x41 \x7E \x32 \x59 \x35 \x30 \x30 \x30 \x23 \x3F ' > /dev/Growatt


echo -e -n '\x3F \x23 \x7E \x34 \x42 \x7E \x23 \x3F' > /dev/Growatt


sleep 60

#kill stty
echo -n ^U > /dev/Growatt

#kill cat
kill $bgPid

exit 0

**edit**
of zou het zonder de spaties tussen de hex-values moeten?
Dat is echter niet volledig duidelijk uit de documentatie; misschien moet dat eerst eens via command line getest worden...

aangepast door De_Perre

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Ik heb geknipt en geplakt en het draait nu.

Ik weet even niet wat er gebeurd want er

staat een sleep in...

 

edit

Na een verloop van tijd verschijnt in de terminal: Terminated.

In de tempGrowat staan geen karakters.

 

Moet er geen parity worden opgegeven? (--parrity=none)

 

Edit2

Ik zal die spaties er tussenuit slopen als test.

 

edit3

Het zelfde (geen) resultaat.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Ik zag ergens een Perl script die ook

werkte met hex naar de inverter toe.

 

Zal proberen dat boven water te krijgen.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

heb een perl exemplaar gevonden via deze link

 

Ondertussen ook even van ginverter.com een rar met software aan het downloaden; iets van Shine Net ofzo. Mogelijk zit daar ook nog iets bruikbaars in.

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

nou, connectie via ssty (volgens wat in die perl staat):
 

stty -F /dev/Growatt 9600 cs8 -cstopb raw -parenb -parodd -crtscts -hup -onlcr -echo -echoe -echok -ctlecho

 
dan wordt serial uitgelezen in de perl met

@res=sendrecv(0x3f,0x23,0x7e,0x32,0x53,0);

dus er staan komma's tussen de verschillende values

#!/bin/sh

#open connectie naar inverter
# 9600 = connectionspeed
# cs8 = 8 databits
# -cstopb = 1 stop bit

stty -F /dev/Growatt 9600 cs8 -cstopb raw -parenb -parodd -crtscts -hup -onlcr -echo -echoe -echok -ctlecho

##capteer data in achtergrond
(cat << /dev/Growatt > tempGrowat.txt)&
# Capture PID of background process so it is possible to terminate it when done
bgPid=$?


#read inverter serial
##stuur eerst commando om data te lezen


echo -e -n '\x3f,\x23,\x7e,\x32,\x53,\x0' > /dev/Growatt


kill $bgPid

exit 0

van die laatste ',\x0' ben ik niet zo zeker; maar die staat wel in de perl...

 

**edit**

 

zou die " cat < /dev/Growatt " niet beter " cat << /dev/Growatt " worden? Kwestie van te appenden aan de txt... Mogelijk hebben we daarom steeds leeg, omdat hij misschien enkel de close capteert.

aangepast door De_Perre

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Geen terminated, lege tempgrowat helaas.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

De komma's weg gaf geen ander resultaat.

 

<< ipv < gaf een stukje script in de logfile.

 

De laatste \x0 gaf geen ander resultaat.

 

Het zit je niet mee.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Ben er niet 100% bij; de dubbele < hadden > moeten gaan naar de logfile :(

(cat < /dev/Growatt >> tempGrowat.txt)&

Ik vermoed dat de terminated kwam door de

#kill stty 
echo -n ^U > /dev/Growatt 

Dus, de verbinding wordt op dat moment correct afgesloten.

 

 


 

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Voor alle zekerheid is dit momenteel de status, de >> had geen invloed;

 

#!/bin/sh

 

#open connectie naar inverter 9600 = connectionspeed cs8 = 8 databits -cstopb = 1 stop bit

 

stty -F /dev/Growatt 9600 cs8 -cstopb raw -parenb -parodd -crtscts -hup -onlcr -echo -echoe -echok -ctlecho

 

##capteer data in achtergrond

(cat < /dev/Growatt >> tempGrowat.txt)&

# Capture PID of background process so it is possible to terminate it when done

bgPid=$?

 

#read inverter serial

##stuur eerst commando om data te lezen

 

echo -e -n 'x3f,x23,x7e,x32,x53' > /dev/Growatt

 

kill $bgPid

 

exit 0

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Je laatste script was inderdaad wat ik voor ogen had qua redirect.

Er wordt heel vaak naar minicom verwezen om eerst mee te testen, maar geen idee hoe of wat. En volgens mij kan je dat al niet in een script gaan gebruiken.

 

Dit is een stukje uit het perl-script waar ik eerder naar verwees:

my ($invaddr,$port,$sysid,$apikey)=@ARGV;
die "usage: $0 <inverteraddress> </dev/ttyXYZ> [<sysid> <apikey>]\ndata is uploaded to pvoutput.org if sysid and apikey are set.\n" 
    if (!$invaddr || !-r $port || ($sysid && !$apikey) || (!$sysid && $apikey));

# startup: prep the serial port
# cheapest to do it via stty; termios from perl sucks
# note: must disable all the echo stuff!
die "stty failed: $!\n" if (0xffff & system("stty","-F",$port,qw(9600 raw cs8 -cstopb -parenb -parodd 
-crtscts -hup -onlcr -echo -echoe -echok -ctlecho)));
open(F,"+<",$port) or die "can't open device $port: $!\n";
binmode(F);

# reset all dynaddys, gives me address (and, oddly enough, the whole energy reading!)
# same for resetting this inverter...
# my @res=sendrecv(0x3f,0x23,0x7e,0x31,0x44,0);

# what's your serial number and inverter address?
my ($happy,@res);
for (1..$retries)
{
    @res=sendrecv(0x3f,0x23,0x7e,0x32,0x53,0);
    if ($res[2] eq $invaddr)
    {
	$happy=1;
	last;
    }
    sleep($delay);
}
die "no response from inverter $invaddr, giving up.\n" if (!$happy);


de hex sequence die ik in de laatste posts gebruikte had dus normaal de serial en adres moeten uitlezen van de inverter...

 

Is de poort nog in gebruik wanneer we dit script starten?

 

De meeste sites geven gewoon aan om met behulp van 'echo .... ' de commando's naar de serial poort te verzenden; en met behulp van ' cat /dev/serialpoort' de poort uit te lezen. Maar dan heb je het nog niet in een bestandje dat je later wil hergebruiken.

 

 

Misschien moeten we via cli de poort eerst met de echo's configureren; dan een gewone '(cat /dev/Growatt)&' doen; en op de cli de commando's intypen?

 

Het is een lastige, maar ik ben nog niet zinnens op te geven...

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
×
×
  • Nieuwe aanmaken...