Odczyt danych z falownika APSystems ECU-C

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
mareks6
Posts: 281
Joined: Sat Jan 13, 2018 4:39 pm
Location: Opole

Post

Koledzy, takie pytanie troszkę Off Topic - czemu akurat macie takie bramki? Mam w domu instalację nie całe 10kW z mikroinwerterami APSystems YC1000 oraz QS1 i sprzedawca powiedział że do wglądu w wykresy itp przez internet służy bramka ECU-R (wygląda jak zwykły wolnostojący router) i tak ową kupiłem.

Wracając do tematu - nie wiem czy transmisja/protokół w ECU-R jest taki sam jak w omawianym ECU-C ale fajnie by było móc podglądać podstawowe info w samej supli :-)
User avatar
paco52327
Posts: 89
Joined: Tue Apr 02, 2019 12:57 pm

Post

ECU-C jest przede wszystkim pod szynę din, ma więcej opcji, protokół rs485, jest droższy, możliwość podłączenia przekładników prądowych itp. itd. Tak czy siak ja biorę dane po ip owej bramki, Twoja na pewno ma też tę możliwość i pewnie strona z danymi wygląda idento, piszę lokalnie nie ze strony apsystems. Transmisja od falowników do bramki jest tak samo przez ZigBee w obu przypadkach.
mareks6
Posts: 281
Joined: Sat Jan 13, 2018 4:39 pm
Location: Opole

Post

paco52327 wrote: Thu Mar 03, 2022 12:48 pm ECU-C jest przede wszystkim pod szynę din, ma więcej opcji, protokół rs485, jest droższy, możliwość podłączenia przekładników prądowych itp. itd. Tak czy siak ja biorę dane po ip owej bramki, Twoja na pewno ma też tę możliwość i pewnie strona z danymi wygląda idento, piszę lokalnie nie ze strony apsystems. Transmisja od falowników do bramki jest tak samo przez ZigBee w obu przypadkach.
aaa, rozumie że poprzez "biorę dane po ip owej bramki" masz na myśli że w ECU-C jest możliwość wejścia bezpośrednio na bramkę? W sensie ma ona jakieś GUI? Ja niestety mojej nawet w sieci nie mogę zlokalizować. Podłączyłem ją bezprzewodowo do domowej sieci i z listy IP oraz MAC jaką mam na routerze nic nie wygląda na tą bramkę. Nie mam żadnego adresu MAC na liście połączonych urządzeń, który by odpowiadał jednemu z trzech numerów (i kodów kreskowych) widocznych na etykiecie bramki. Z kolei z tych IP które mają jakieś GUI nic nie jest tą bramką, więc wygląda na to że moja nie ma GUI. Oryginalna aplikacja (EMA App) opiera się o chmurę. Z kolei do jej konfiguracji służy ECUApp (trzeba wcześniej w bramce uruchomić hotspot i się z nim po WiFi połączyć).
konrad1
Posts: 25
Joined: Tue Feb 08, 2022 9:09 am

Post

ja mam pełen dostęp do niego. jak sie połączysz (ECU) do WIFI z jego menu, to podaje Ci IP lokalny.
User avatar
paco52327
Posts: 89
Joined: Tue Apr 02, 2019 12:57 pm

Post

Dokładnie jestem przekonany, że w obu jest identycznie. Tak samo się ustawia prze EMA app jak jest w trybie Ap, po połączeniu do sieci (u mnie też wifi) masz dostęp do www. Przeskanuj sieć jakimś lan scannerem.
konrad1
Posts: 25
Joined: Tue Feb 08, 2022 9:09 am

Post

w moim przypadku po restarcie ECU przez chyba 15-30m mam wystawiony WIFI AP ECU_xxxx, pewnie jak wykona jakiś provisioning to znika mi ten hotspot. Planuje na dniach podpiąć go po kablu. Zrób restart prądowy, patrz na routerze na DHCP Lease czy coś się pojawia albo w ARP.
konrad1
Posts: 25
Joined: Tue Feb 08, 2022 9:09 am

Post

paco52327 wrote: Mon Feb 21, 2022 6:51 pm Hej mam tę samą bramkę, wszystkie dane pobieram do grafeny, jak cię interesuje gotowiec.
mogę prosić o howto jak to czytasz, jak to działa?
User avatar
paco52327
Posts: 89
Joined: Tue Apr 02, 2019 12:57 pm

Post

Wszystko było zrobione tymczasowo i jak zwykle zostało, po drodze była aktualizacja firmware i trzeba było nieco poprzestawiać cyfry, ten konkretny przykład jest do wersji C1.2.0. Skrypt ma na celu pobranie strony realtimedata i home, przekonwerterowanie tabeli html do formatu csv i wyciągnięcie konkretnej danej i oczyszczenie jej. Na start skrypt sprawdza czy z ECU jest kontakt , później do akcji wkracza skrypt w pythonie który robi nam csv i dodatkowo dzięki tr usuwamy znak końca linii. Dalej wrzucam konkretne wartości do bazy danych influx.
link do skryptu w konwersji tabeli html do formatu csv: https://github.com/hanwentao/html2csv

Code: Select all

#!/bin/bash
DATE=`date +%s`
DB=pv
IP=192.168.1.8
################################################################

ping -w 1 -q -s 1 192.168.1.8 >/dev/null 2>&1
if [ $? = "0" ]
then

ALL1=`curl --silent "http://"$IP"/index.php/home" | python3.9 /usr/local/skrypty/html2csv.py |tr -d "\015"`
ALL2=`curl --silent "http://"$IP"/index.php/realtimedata" | python3.9 /usr/local/skrypty/html2csv.py |tr -d "\015"`


curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary 'LifeTimeGeneration value='$(echo $ALL1 |awk 'BEGIN {FS = ","}; {print $3}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary 'LastSystemPower value='$(echo $ALL1 |awk 'BEGIN {FS = ","}; {print $4}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary 'GenerationOfCurrentDay value='$(echo $ALL1 |awk 'BEGIN {FS = ","}; {print $5}' |awk '{print $1}') > /dev/null


curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124T value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $12}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124H value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $10}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-1VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $9}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-1W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $8}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-1VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $11}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-2VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $15}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-2W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $14}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-2VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $16}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-3VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $18}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-3W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $17}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-3VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $19}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-4VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $21}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-4W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $20}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000002124-4VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $22}' |awk '{print $1}') > /dev/null


curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483T value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $27}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483H value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $25}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-1VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $24}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-1W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $23}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-1VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $26}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-2VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $30}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-2W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $29}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-2VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $31}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-3VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $33}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-3W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $32}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-3VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $34}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-4VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $36}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-4W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $35}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003483-4VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $37}' |awk '{print $1}') > /dev/null


curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750T value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $42}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750H value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $40}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-1VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $39}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-1W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $38}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-1VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $41}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-2VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $45}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-2W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $44}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-2VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $46}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-3VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $48}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-3W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $47}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-3VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $49}' |awk '{print $1}') > /dev/null

curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-4VDC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $51}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-4W value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $50}' |awk '{print $1}') > /dev/null
curl --silent -i -XPOST 'http://192.168.1.1:8086/write?db='$DB'' --data-binary '806000003750-4VAC value='$(echo $ALL2 |awk 'BEGIN {FS = ","}; {print $52}' |awk '{print $1}') > /dev/null


else
logger Odczyt nieudany  pv.sh
fi

konrad1
Posts: 25
Joined: Tue Feb 08, 2022 9:09 am

Post

rozumiem, że do zabbixa przeróbka to fpytkę roboty? :(
tam masz oznaczenia swoich mikro-inw?
nie mniej podziękował - jak sie dorobie influx to dodam
User avatar
paco52327
Posts: 89
Joined: Tue Apr 02, 2019 12:57 pm

Post

konrad1 wrote: Mon Mar 07, 2022 11:49 am rozumiem, że do zabbixa przeróbka to fpytkę roboty? :(
tam masz oznaczenia swoich mikro-inw?
nie mniej podziękował - jak sie dorobie influx to dodam
Nie miałem do czynienia z zabbixem, ale mając konkretne wartości myślę że nie ma dużo roboty.

Return to “Pomysły i koncepcje”