Don't be naive, you are not the customer, you are the product!
De ECU-B stuurt naar m'n dns server (pi-hole) de vraag naar domein: 256.256.256.256, beetje raar dat ie een dns verzoek stuurt voor een niet bestaande ip te achterhalen... (NXDOMAIN)
hierdoor denkt de ecu dat ie geen cloud verbinding heeft en dus offline gaat. poort 8899 sluit dan.
dus ja, denk dat er iets niet goed zit in de ecu of er zit een fout in m'n netwerk zit, niet in de HA integratie
[ Voor 29% gewijzigd door geenwindows op 03-04-2022 14:52 ]
Fan van: Unraid, ProxMox, Pi-hole, PlexMediaServer, OPNsense. Meer een gluurder dan een reaguurder.
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
lokale wifi hotspot activeren, dan via de EMA app (de ecu app zit hierin, de standalone ecu app wordt niet meer gebruikt) daarna kun je als je verbinding hebt met de ecu. kun je in de settings bij wlan de wifi aanpassen.Termy schreef op maandag 4 april 2022 @ 12:00:
Heeft iemand hier al eens de WiFi veranderd van de ECU-R? Kan dat zonder een hardware reset?
Fan van: Unraid, ProxMox, Pi-hole, PlexMediaServer, OPNsense. Meer een gluurder dan een reaguurder.
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
jup!Termy schreef op maandag 4 april 2022 @ 13:26:
@geenwindows ah ok, die knop op de zijkant gewoon dus?
Fan van: Unraid, ProxMox, Pi-hole, PlexMediaServer, OPNsense. Meer een gluurder dan een reaguurder.
het enige wat nu nog werkt:
- ECU Today Energy
- ECU Lifetime Energy
- ECU Current Power
- power channels van inverter
de rest is 'niet beschikbaar'...
Fan van: Unraid, ProxMox, Pi-hole, PlexMediaServer, OPNsense. Meer een gluurder dan een reaguurder.
Edit: Switch.py en Binairy_sensor.py ook gefixed zie mijn repository voor aanwijzingen: https://github.com/HAEdwin/homeassistant-apsystems_ecur
[ Voor 37% gewijzigd door Nibblebit op 07-04-2022 23:13 ]
Don't be naive, you are not the customer, you are the product!
:strip_exif()/f/image/LSHBIeQ5HecprKRM5nhvlwOk.jpg?f=fotoalbum_large)
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Qtv8YX594zl7GIzuUHW0zjDa.jpg?f=user_large)
[ Voor 4% gewijzigd door Nibblebit op 08-04-2022 23:35 ]
Don't be naive, you are not the customer, you are the product!
[ Voor 20% gewijzigd door Nibblebit op 09-04-2022 17:09 ]
Don't be naive, you are not the customer, you are the product!
Als ik een volledige test heb gedaan op mijn eigen ECU setup, zal ik dat laten weten.
Uiteindelijk zou met deze versie zowel TCP en HTTP gebruikt kunnen worden.
NB: mijn repo is gebaseerd op de 1.1.2 versie van Kyle. Maar dit werkt tot nu toe prima.
Krijg de logging zodra ik de ECUR weer toevoeg als integratie:Nibblebit schreef op zaterdag 9 april 2022 @ 17:07:
Vooralsnog is de laatste versie van de integratie echt alleen compatible met de oude ECU-R (versie zonder SunSpec logo op de achterkant) en ECU-B. Voor de ECU-R-Pro firmware (=ECU-R met SunSpec logo op de achterkant) ligt er nog een uitdaging om de integratie compatible te maken. Bovenstaande foutmeldingen hebben geen relatie met de nieuwe HA release van april.
Traceback (most recent call last):
File "/config/custom_components/apsystems_ecur/config_flow.py", line 45, in async_step_user
test_query = await self.hass.async_add_executor_job(ap_ecu.query_ecu)
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/apsystems_ecur/APSystemsSocket.py", line 158, in query_ecu
data = self.process_inverter_data()
File "/config/custom_components/apsystems_ecur/APSystemsSocket.py", line 287, in process_inverter_data
self.check_ecu_checksum(data, "Inverter data")
File "/config/custom_components/apsystems_ecur/APSystemsSocket.py", line 217, in check_ecu_checksum
raise APSystemsInvalidData(error)
Don't be naive, you are not the customer, you are the product!
Ik ben wel bezig geweest om het op 1 of andere manier terug te mergen, maar dit kost veel tijd. Voorlopig draai ik dus deze code. Kijk maar even of deze wel wil werken op je systeem.
https://github.com/tv3/ho...b/main/apsystems_ecur.zip
[ Voor 0% gewijzigd door cmos6502 op 20-04-2022 21:29 . Reden: grammer ]
Overigens is tussentijds opnieuw opstarten van HA en/of echt de integratie settings en integratie verwijderen het dan opnieuw herinstalleren (met de nodige restarts tussendoor) aan te bevelen.
[ Voor 14% gewijzigd door Nibblebit op 21-04-2022 07:31 . Reden: Tip over herstarts ]
Don't be naive, you are not the customer, you are the product!
Ik heb beide integratie geprobeerd inmiddels met 2022.4.x maar zonder resultaat.
[ Voor 34% gewijzigd door Nibblebit op 22-04-2022 12:17 ]
Don't be naive, you are not the customer, you are the product!
Don't be naive, you are not the customer, you are the product!
Don't be naive, you are not the customer, you are the product!
[ Voor 43% gewijzigd door Dapdodo op 23-04-2022 16:12 ]
De waarden worden bij mij ook eens per 5 minuten geüpdatet, er is wel een service mode waarbij de waarden vaker worden geüpdatet, alleen werkt dit maar 30minuten. HiBe krijg jij ook de totaalwaarden van de DS3 omvormer, zou het graag per paneel willen zien.HiBe schreef op zaterdag 23 april 2022 @ 15:14:
ik heb een scriptje op mijn synology draaien waarmee ik de opbrengst van mijn APS DS3 inverters naar PVoutput upload. werkt op zich wel OK. maar voor de huis domotica probeer ik de data van de DS3 via modbus sunspec over TCP uit te lezen. Op basis van modbus adres 10084 denk ik dat ik de "huidige" opbrengst in Watt kan uitlezen. Mijn vraag is alleen hoe vaak dit adress een update krijgt, het lijkt erop dat dit eens per 5 minuten is, kan dat kloppen?
Mijn vermoeden is dus dat dit aan de firmware van de ECU-R ligt, maar ik zie ook aan de installateurskant geen optie om een upgrade te doen. Ik denk nl dat de oude versie overrapporteert.
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
Ik zie weinig toegevoegde waarde in de cloud, maar krijg wel het gevoel dat het niet heel professioneel is en daarom gevoelig voor hackers e.d.
mail:
Dit had ik dus een heel weekend gedaan, maar de firmware werd niet geupdate.Beste *****,
Bedankt dat u contact heeft opgenomen met de technische ondersteuning van APsystems.
Koppel de ECU voedingskabel elk uur los en sluit deze opnieuw aan om de ECU automatisch te upgraden naar de nieuwste firmware.
Uiteindelijk hebben de service mannen van APS het handmatig gedaan.
Helaas heb ik nog steeds mijn bedenkingen of het goed werk (nog geen omvormers aangesloten, alleen de ECU-C aangesloten en de serienummers gesynced) Maar de laatste communicatie met de website is nog steeds 04-04-2022.
@HiBe Ik denk niet dat dat met een ECU-R gaat. deze heeft geen lokale interface.
zie flyer:
https://emea.apsystems.co...ems_flyer_ECU_2021_NL.pdf
zolang geen omvormers aangesloten, gaat er niks communicerenGratje schreef op maandag 25 april 2022 @ 17:07:
@Termy Mijn ECU-C had een maand geleden ook oude firmware (C1.1.9) na een mailtje met APS werd mij geadviseerd de ECU een uur uit te zetten en weer aan te zetten zodat de firmware gepushed zou worden.
mail:
[...]
Dit had ik dus een heel weekend gedaan, maar de firmware werd niet geupdate.
Uiteindelijk hebben de service mannen van APS het handmatig gedaan.
Helaas heb ik nog steeds mijn bedenkingen of het goed werk (nog geen omvormers aangesloten, alleen de ECU-C aangesloten en de serienummers gesynced) Maar de laatste communicatie met de website is nog steeds 04-04-2022.
@HiBe Ik denk niet dat dat met een ECU-R gaat. deze heeft geen lokale interface.
zie flyer:
https://emea.apsystems.co...ems_flyer_ECU_2021_NL.pdf
Helaas moet ik nog een week wachten op mijn PV panelen
Dus volgende week kan ik ook mee gaan testen met een ECU-C
Dat is dus niet helemaal correct. de ECU-R is te benaderen via bijv. http://IP_ADDRESS/index.php/realtimedata (gebruik ik voor mijn scriptje om PVoutput mee te vullen) en ook via modbus TCP (gebruik ik voor mijn domotica om de visualisatie weer te geven).Gratje schreef op maandag 25 april 2022 @ 17:07:
@Termy Mijn ECU-C had een maand geleden ook oude firmware (C1.1.9) na een mailtje met APS werd mij geadviseerd de ECU een uur uit te zetten en weer aan te zetten zodat de firmware gepushed zou worden.
mail:
[...]
@HiBe Ik denk niet dat dat met een ECU-R gaat. deze heeft geen lokale interface.
zie flyer:
https://emea.apsystems.co...ems_flyer_ECU_2021_NL.pdf
Doe ik ook voor mijn HW P1 meter. werkt lokaal nog prima. maar kan geen data meer over het internet sturen.
thanks!!!HiBe schreef op maandag 25 april 2022 @ 17:36:
[...]
Dat is dus niet helemaal correct. de ECU-R is te benaderen via bijv. http://IP_ADDRESS/index.php/realtimedata (gebruik ik voor mijn scriptje om PVoutput mee te vullen) en ook via modbus TCP (gebruik ik voor mijn domotica om de visualisatie weer te geven).
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
Heb je dan iets speciaals gedaan? Ik kan mijn ECU-R helemaal niet benaderen op poort 80 of 443HiBe schreef op maandag 25 april 2022 @ 17:36:
[...]
Dat is dus niet helemaal correct. de ECU-R is te benaderen via bijv. http://IP_ADDRESS/index.php/realtimedata (gebruik ik voor mijn scriptje om PVoutput mee te vullen) en ook via modbus TCP (gebruik ik voor mijn domotica om de visualisatie weer te geven).
ik heb niets bijzonders gedaan. anders dan de ECU-R aan de lokale Wifi gehangen een via DHCP een adress toegewezen.jerh schreef op maandag 25 april 2022 @ 19:52:
[...]
Heb je dan iets speciaals gedaan? Ik kan mijn ECU-R helemaal niet benaderen op poort 80 of 443
Dat zal het dan zijn, hij hangt hier aan de lan interface. Geen wifi dekking op de plek waar hij hangt. Dat moet ik dan maar eens gaan fixen.HiBe schreef op maandag 25 april 2022 @ 20:10:
[...]
ik heb niets bijzonders gedaan. anders dan de ECU-R aan de lokale Wifi gehangen een via DHCP een adress toegewezen.
@HiBe
Wel leuk trouwens om te zien dat de “website” links van de ECU-C exact hetzelfde zijn. Alleen ik krijg er nog een mooie GUI bij als ik de link in type in de browser. Of heeft de ECU-R deze ook gewoon?
:strip_exif()/f/image/yVsSMkKxUrXFsccpOBpPPZWd.jpg?f=fotoalbum_large)
En ben ook wel benieuwd naar je script. Wil straks ook via PVoutput gaan loggen. Omdat er ook nog een SMA omvormer bij komt. Dus alle totalen mooi op 1 plek samenvoegen op PVoutput.
[ Voor 42% gewijzigd door Gratje op 25-04-2022 20:38 ]
De modbus oplossing, gebruik je die met HA en ESPopen?HiBe schreef op maandag 25 april 2022 @ 17:36:
[...]
Dat is dus niet helemaal correct. de ECU-R is te benaderen via bijv. http://IP_ADDRESS/index.php/realtimedata (gebruik ik voor mijn scriptje om PVoutput mee te vullen) en ook via modbus TCP (gebruik ik voor mijn domotica om de visualisatie weer te geven).
ik heb een domotica systeem van Loxone.grotegok schreef op maandag 25 april 2022 @ 22:02:
[...]
De modbus oplossing, gebruik je die met HA en ESPopen?
ziet er hetzelfde uit (zonder de advanced functies).Gratje schreef op maandag 25 april 2022 @ 20:30:
Wel leuk trouwens om te zien dat de “website” links van de ECU-C exact hetzelfde zijn. Alleen ik krijg er nog een mooie GUI bij als ik de link in type in de browser. Of heeft de ECU-R deze ook gewoon?
/f/image/grD5m0UJiyl1PXNT3wYZNb8b.png?f=fotoalbum_large)
ik heb het volgende script een beetje aangepast zodat het werkte met de kolommen van mijn ECU-R HTML output: https://github.com/daanvd...blob/main/ecu2pvoutput.pyEn ben ook wel benieuwd naar je script. Wil straks ook via PVoutput gaan loggen. Omdat er ook nog een SMA omvormer bij komt. Dus alle totalen mooi op 1 plek samenvoegen op PVoutput.
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
92
93
94
95
96
| #!/usr/bin/python3
#Load required modules
from bs4 import BeautifulSoup
import requests
import urllib.request
from lxml.html import fromstring
import re
import csv
import pandas as pd
from datetime import datetime
from statistics import mean
#ONLY CHANGE THESE VALUES
url = "http://<YOUR LOCAL IP>/index.php/realtimedata"
APIID = "<YOUR PVoutput API key>"
SYSTEMID = "<YOUR PVoutput SystemID>"
#PVOUTPUT API
URL = "https://pvoutput.org/service/r1/addstatus.jsp"
#Basic Vars
page = requests.get(url)
soup = BeautifulSoup(page.text,features="lxml")
table = soup.find_all('table')[0]
tmp = table.find_all('tr')
# fix_rowspan
first = tmp[0]
allRows = tmp[1:len(tmp)]
headers = [header.get_text() for header in first.find_all('th')]
results = [[data.get_text() for data in row.find_all('td')] for row in allRows]
rowspan = []
for no, tr in enumerate(allRows):
tmp = []
for td_no, data in enumerate(tr.find_all('td')):
if data.has_attr("rowspan"):
rowspan.append((no, td_no, int(data["rowspan"]), data.get_text()))
if rowspan:
for i in rowspan:
# tr value of rowspan in present in 1th place in results
for j in range(1, i[2]):
#- Add value in next tr.
results[i[0]+j].insert(i[1], i[3])
#Looping through the table
res1 = []
res3 = []
res4 = []
res5 = []
for result in results:
print("Inverter ID: {}".format(result[0].replace(" ","")))
for i in result[1].split():
if i.isdigit():
res1.append(int(i))
print("(Filtered) Current Power: {}".format(i))
print("Grid Frequency: {}".format(result[5].replace(" ","")))
for voltage in result[4].split():
if voltage.isdigit():
res3.append(int(voltage))
print("(Filtered) Voltage: {}".format(voltage))
for temp in result[5].split():
if temp.isdigit():
res4.append(int(temp))
print("(Filtered) Temp: {}".format(temp))
datum = format(result[6]).strip().replace("\n","")
date_time_obj = datetime.strptime(datum, '%Y-%m-%d %H:%M:%S')
date = date_time_obj.strftime("%Y%m%d")
time = date_time_obj.strftime("%H:%M")
print("Date: {}".format(date))
print("Time: {}".format(time))
print("\n")
#Combine results
avgtemp = mean(res4)
avgvoltage = mean(res3)
totalpower = format(sum(res1))
avaragetemp = round(avgtemp)
avaragevoltage = round(avgvoltage)
#Print it!
print("Summary:")
print("Date:",date)
print("Time:",time)
print("Total power:",totalpower)
print("Avarage inverter temp:",avaragetemp)
print("Average inverter voltage:",avaragevoltage)
##Pushing to PVOUTPUT
gegevens = {'sid':SYSTEMID,'key':APIID,'d':date,'t':time,'v2':totalpower,'v5':avgtemp,'v6':avaragevoltage}
r = requests.get(URL,params=gegevens)
#DEBUG
#print(r.content) |
vervolgens een task op de synology aangemaakt die tussen 5 uur 's ochtends en 11 uur 's avonds elke 5 minuten dit script draait.
met het volgende resultaat.
https://github.com/tv3/ho...ems_ecur/APSystemsHTTP.py
[ Voor 4% gewijzigd door Piacco78 op 27-04-2022 08:41 ]
Thnx . gaan we tzt een keer naar kijken, vooral de restcalls zien er wel handig uit.cmos6502 schreef op dinsdag 26 april 2022 @ 14:57:
@HiBe ik heb de interne pages gescraped tbv de Home assistant integratie. Wellicht vind je daar nog wat meer inspiratie. Een aantal gegevens wordt via restcalls opgehaald. De inverter data moet je scrapen.
https://github.com/tv3/ho...ems_ecur/APSystemsHTTP.py
Zie https://github.com/tv3/ho...in/files/realtimedata.png
[ Voor 40% gewijzigd door cmos6502 op 06-05-2022 15:05 . Reden: URL met ]
Klopt, dat zijn de voltages welke de micro-omvormers meten op het net. De ECU-C heeft zelf ook een spanningsmeting, deze zou ik graag willen uitlezen. De micro-omvormers gaan 's nachts immers offline.cmos6502 schreef op vrijdag 6 mei 2022 @ 15:01:
Als het goed is, kan je die in de interne webinterface terugvinden.
Zie https://github.com/tv3/ho...in/files/realtimedata.png
https://github.com/ksheumaker/homeassistant-apsystems_ecur
Het is inderdaad al een wat oudere unit (12-2019).cmos6502 schreef op zondag 8 mei 2022 @ 21:15:
@Henry_ Ik denk dat jij een ECU model en firmware hebt, welke geen interne webpage heeft. Mijn model heeft ECU_R_PRO firmware. Je kan gebruik maken van de integratie van Kyle.
https://github.com/ksheumaker/homeassistant-apsystems_ecur
Ik heb de integratie van Kyle in HomeAssistant toegevoegd en kan daar inderdaad de statistieken in volgen, thanks!.
Vandaag de communicatie met mijn ECU-C aan de gang gekregen en zonder enige problemen aan Home Assistant kunnen koppelen met v1.2.13
Gewoon IP adres ingevuld en gaan met die banaan!
Super gemaakt!
Ik draai nu firmware C1.2.1 op een ECU-C met sunspec logo. En werk met zowel het WiFi als het Ethernet IP adres.
ps. Is het ook mogelijk om de DC voltage erin te krijgen?
[ Voor 14% gewijzigd door Gratje op 15-05-2022 13:23 ]
Er wordt nu nog veel weggeschreven naar het log maar bij mij met oudere ECU-R zonder sunspec logo is het zo stabiel dat ik de logging weg laat. Het was meer om inzicht te krijgen in het aantal timeouts en op welk deel van het proces deze voornamelijk plaatsvinden. Mijn interval staat op 1 minuut en uitval voor het uitlezen is er alleen tussen 02:45 en 03:05 (onderhoud tussen de ECU en EMA site). Om er toch een beetje zicht op te hebben heb ik Secondary Information toegevoegd aan de entity weergave. Ik ben benieuwd naar jullie ervaringen met de code hierboven, neemt het aantal timeouts af?
[ Voor 3% gewijzigd door Nibblebit op 19-05-2022 09:02 ]
Don't be naive, you are not the customer, you are the product!
Je zou toch zeggen dat als je een 2e hands ECU-R of zo koopt dat je die weer moet kunnen losmaken van een account waar je al dan niet toegang tot hebt?
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)
Ja, excuus, maar ik dacht hier in een topic met ECU-R gebruikers de grootste kans te maken. Het bleek gelukkig ook vals alarm want hij had wel de ECU-R aan z'n wifi gehangen maar verder niks dus kon het makkelijk opzetten in m'n installateursaccount.timovd schreef op woensdag 25 mei 2022 @ 12:22:
@Termy redelijk off topic, maar vraag eerst bij EMEA support. Mijn ervaring is dat je snel een reactie krijgt.
Overigens viel wel of dat de monitoring nu al per direct werkte nadat ik het opgezet had. Dat heb ik nog niet eerder meegemaakt dus mogelijk dat hij al eerder verbonden was ervoor gezorgd heeft dat alles al in de backend opgezet was en het alleen nog op koppeling met de omvormers zat te wachten..?
Het is alweer even geleden dat ik de oplossing die hier besproken wordt bekeken heb. Werkt dit nu volledig parallel aan EMA of is het een kwestie van of of?
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
Gasloos huis 9kW Panasonic WH-MDC09J3E5 | Atlantic Explorer V4 270L | 8715Wp @ SMA Tripower 6.0-3AV-40 (4150Wp NO, 4565Wp ZW)
Het werkt volledig parallel aan EMA maar resultaten verschillen per ECU model. ECU-R's met beginnend met ECU ID 2162 zijn SunSpec compatible om uit te lezen (geen idee of dat iemand al succesvol is gelukt icm HA). De integratie is vooralsnog 100% compatible met de ECU-R (2160xxxxxx) en de ECU-B, voor de overige incl. de ECU-C zijn de resultaten nog wisselend.Het is alweer even geleden dat ik de oplossing die hier besproken wordt bekeken heb. Werkt dit nu volledig parallel aan EMA of is het een kwestie van of of?
Vooralsnog ontbreekt het aan een Python specialist die ook een ander model ECU heeft dan de ECU-R (2160xxxxxx)
Ik heb wel eens gekeken naar de proxy mogelijkheden (het verkeer naar EMA onderscheppen en gebruiken in HA en vervolgens doorsturen naar EMA) maar niet iedereen zal dit kunnen "installeren". Bovendien zouden er tussentijds wijzigingen kunnen zijn aangebracht in de firmware van de ECU's waarop lastig te anticiperen is omdat APSystems vooralsnog geen releasenotes mee geeft (wat natuurlijk heel vreemd is).
Don't be naive, you are not the customer, you are the product!
Ook 2 andere firmwareversies:
R1.2.21B2 (2160)
R2.0.6A (2162)
Wat verder opvalt is dat de 2162 0 W rapporteert aan't begin en eind van de dag terwijl de 2160 als ie rapporteert altijd meer dan 0 W rapporteert, wat niet geloofwaardig is. Bv midden op de dag bij zware regen valt de 2162 terug naar 0 terwijl de 2160 dan nog 20 W of zo aangeeft ondanks zelfde oriëntatie op hetzelfde (gedeelde) dak. M'n slimme meter is het ook eens met de 2162, niet de 2160.
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
[ Voor 11% gewijzigd door sideriusj op 28-05-2022 11:28 ]
Bij mij werkt het uitlezen stabiel, alleen wel bugs (waardes) die anderen met DS3 ook ervaren, zie github.sideriusj schreef op zaterdag 28 mei 2022 @ 10:50:
@Nibblebit Ik heb een ECU model beginnend met ECU ID 2162. De Sunspec integratie werkt, maar na 30 seconden stopt het uitlezen. Na herladen werkt het weer voor 30 seconden. Ik gebruik https://github.com/cjne/ha-sunspec
Onderhand heb ik al iets anders in gebruik waarmee ik de ecu niet meer nodig heb maar om het script weg te gooien vond ik wat zonde. Dit topic leek mij een goede plek om het in te zetten mocht iemand er iets mee willen doen.
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
| <?php
$url="http://[ecu ip address]/index.php/realtimedata";
$data=GetData($url);
var_dump($data);
function GetData($url) {
$htmlContent = file_get_contents($url);
$DOM = new DOMDocument();
libxml_use_internal_errors(true);
$DOM->loadHTML($htmlContent);
$Header = $DOM->getElementsByTagName('th');
$Detail = $DOM->getElementsByTagName('td');
foreach($Header as $NodeHeader) $aDataTableHeaderHTML[] = trim($NodeHeader->textContent);
foreach($Detail as $NodeDetail) $aDataTableDetailHTML[] = trim($NodeDetail->textContent);
reset($aDataTableDetailHTML);
while ($aPointer=current($aDataTableDetailHTML)) {
if (preg_match('/^([0-9]{12}-1)$/', $aPointer)) {
$inverterId=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ W)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[1]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ V)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[2]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+\.[0-9]{1} Hz)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[3]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ V)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[4]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ °C)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[5]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2})$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[6]]=$aPointer;
} elseif (preg_match('/^([0-9]{12}-2)$/', $aPointer)) {
$inverterId=$aPointer;
$inverterIdParent=preg_replace('/(-2)$/', '-1', $inverterId);
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ W)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[1]]=$aPointer;
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ V)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[2]]=$aPointer;
if (!empty($inverterData[$inverterIdParent][$aDataTableHeaderHTML[3]])) $inverterData[$inverterId][$aDataTableHeaderHTML[3]]=$inverterData[$inverterIdParent][$aDataTableHeaderHTML[3]];
$aPointer=next($aDataTableDetailHTML);
if (preg_match('/^([0-9]+ V)$/', $aPointer)) $inverterData[$inverterId][$aDataTableHeaderHTML[4]]=$aPointer;
if (!empty($inverterData[$inverterIdParent][$aDataTableHeaderHTML[5]])) $inverterData[$inverterId][$aDataTableHeaderHTML[5]]=$inverterData[$inverterIdParent][$aDataTableHeaderHTML[5]];
if (!empty($inverterData[$inverterIdParent][$aDataTableHeaderHTML[6]])) $inverterData[$inverterId][$aDataTableHeaderHTML[6]]=$inverterData[$inverterIdParent][$aDataTableHeaderHTML[6]];
}
$aPointer=next($aDataTableDetailHTML);
}
return $inverterData;
}
?> |
-=[Terminator]=- R3doxNL Anahka#2910 Specs. 16x LONGi LR4-72HPH-455M (7280 Wp) Oost/West (-85°/95°,13°) op 8x APS DS3-L. ID.3 First Plus. Zappi v2.1. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.
Ik gebruik nu een ECU-3Z en die lees ik uit via RS232.
Enige tips of ideeën hoor ik graag.
AMD R7 7800X3D - ASUS TUF 3080 - 64GB 6000Mhz CL30 - Samsung Odyssey G9 - Samsung S23 Ultra
De voorganger van de ECU-R en er draait een aangepaste (developer) firmware op. Ik had gehoopt hiermee het zigbee protocol te kunnen ontsleutelen maar dat is niet zo makkelijk, wat wel kan is alle waardes dumpen middels RS232 als deze in debug staat.avanthof schreef op vrijdag 17 juni 2022 @ 18:07:
Wat is de ECU-3 dan precies?
Het 3 fase model van de ECU-R is anders, die doet geen zigbee, ik heb deze: https://usa.apsystems.com...on_UserManual-8.27.16.pdf
[ Voor 19% gewijzigd door DukeBox op 25-06-2022 10:32 ]
[ Voor 131% gewijzigd door Nibblebit op 25-06-2022 09:31 ]
Don't be naive, you are not the customer, you are the product!
Niet, is een TCP tool. Ff je ECU ip nummer vullen. (wifi of ETH)
Maar ik lees hem niet uit via ethernet.dooiedodo schreef op maandag 27 juni 2022 @ 13:19:
Niet, is een TCP tool. Ff je ECU ip nummer vullen. (wifi of ETH)
helemaal niet aan het netwerk hangen dan? tis gewoon nieuwsgierigheid of het werkt over TCP
Nee, niet met een standaard interface, alleen command line toegang.dooiedodo schreef op maandag 27 juni 2022 @ 17:40:
[...]
helemaal niet aan het netwerk hangen dan? tis gewoon nieuwsgierigheid of het werkt over TCP
Termy schreef op vrijdag 17 juni 2022 @ 17:28:
@DukeBox wat gebruik je nu dan? Kan die ook alle data inzien van de omvormer zoals temperatuur, vermogen per kanaal en spanning, etc?
De actuele opbrengst van mijn Tibber Homevolt
Wil het graag stabiel hebben in Home assistant. Maar de sunspec modbus integratie werkt niet goed.
En de andere integraties lopen na een paar dagen vast of geven niet alles weer.
Deze intergratie werkt voor mij op het moment het beste maar de omvormers zelf geven nagenoeg nooit data door.
https://github.com/tv3/homeassistant-apsystems_ecur
Dus ik wil hem op de modbus uitlezen. Maar er staan nergens voorbeelden van iemand die het al gemaakt heeft.
Dus ik dacht ik vraag het hier gewoon
Heb je het al eens langer laten draaien? Kans dat je pas weer na 5 minuten een update krijgt omdat de inverters toch maar eens in de 5 minuten updates sturen.sideriusj schreef op zaterdag 28 mei 2022 @ 10:50:
@Nibblebit Ik heb een ECU model beginnend met ECU ID 2162. De Sunspec integratie werkt, maar na 30 seconden stopt het uitlezen. Na herladen werkt het weer voor 30 seconden. Ik gebruik https://github.com/cjne/ha-sunspec
Don't be naive, you are not the customer, you are the product!
Is dit een bekend probleem bij het updaten naar de laatste HA versie?Niet beschikbaar
Never mind, Hij werkt blijkbaar weer?
[ Voor 13% gewijzigd door Rvde op 17-07-2022 22:29 ]
Zet de interval even terug naar 5-10s. Bij mij werkte het toen wel. Maar legt behoorlijk wat performance op mijn R3B met HA.Nibblebit schreef op zaterdag 9 juli 2022 @ 16:15:
[...]
Heb je het al eens langer laten draaien? Kans dat je pas weer na 5 minuten een update krijgt omdat de inverters toch maar eens in de 5 minuten updates sturen.
Interval naar 5-10 werkt bij mij ook niet. Meestal kan ik niet eens connecten als ik hem wil toevoegen.avanthof schreef op donderdag 21 juli 2022 @ 18:42:
[...]
Zet de interval even terug naar 5-10s. Bij mij werkte het toen wel. Maar legt behoorlijk wat performance op mijn R3B met HA.
En als het dan wel lukt net als vele andere 1 keer een waarde, daarna alles naar unavailable.
Nog steeds niemand gevonden die hem via de RS485 en ESP32 uitgelezen heeft helaas.
[ Voor 5% gewijzigd door Nibblebit op 30-07-2022 21:27 ]
Don't be naive, you are not the customer, you are the product!
Leuk, deze pagina heb ik ook op mijn ECU-R en het is me zonder enige ervaing pet python whatsoever gelukt om de data met mn windows pc'tje met task scheduler op pvoutput te krijgenHiBe schreef op dinsdag 26 april 2022 @ 09:38:
[...]
ziet er hetzelfde uit (zonder de advanced functies).
[Afbeelding]
[...]
ik heb het volgende script een beetje aangepast zodat het werkte met de kolommen van mijn ECU-R HTML output: https://github.com/daanvd...blob/main/ecu2pvoutput.py
vervolgens een task op de synology aangemaakt die tussen 5 uur 's ochtends en 11 uur 's avonds elke 5 minuten dit script draait.
met het volgende resultaat.
[Afbeelding]
EIgenlijk wil ik de brondata ook goed opslaan en kunnen inzien / plotten (dag/week curve(s) per paneel enzo). Daar moet ik nog ff op puzzelen. Maar dit is al erg nice!
Is het een idee om in de topicstart iets uitgebreider neer te zetten hoe je dit moet aanpakken? Het is vrij veel abracadabra voor veel mensen denk ik.
4x APsystems DS3; 4x495Wp OZO/WNW 10° ; 4x460Wp OZO/WNW 10°; Totaal 3820Wp
Alleen heel regelmatig werkt het script niet. Best wel irritant. Het probleem lost zichzelf altijd wel weer op, maar de data is verloren gegaan. De data op de APS site is dan wel altijd aangevuld (die haalt het denk ik uit geheugen van de omvormers ofzo?). PVoutput verzint volgens mij maar wat voor de opbrengst in die lege punten (want de dagelijkse opbrengst is structureel hoger dan de APS site aangeeft)
Anyway, zijn er manieren om dit stabieler te krijgen? Die interne pagina is ook lang niet altijd goed bereikbaar. Ik poll hem elke 5min in elk geval. Per dag mis ik meestal ongeveer 2u van de 16u aan data, zoals hier een paar missers:
:fill(white):strip_exif()/f/image/XYO8sseg1nPnAcIJIV4NOAgK.png?f=user_large)
Dit is het script dat ik nu gebruikt (eerlijk gejat van HiBe zijn post en met mn eerste stapjes Python uitgebreid met CSV data storage, niet boos worden, eerste Python van mn leven na basic programmeren in de jaren 90
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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131#!/usr/bin/python3 #Load required modules from bs4 import BeautifulSoup import requests import urllib.request from lxml.html import fromstring import re import csv import pandas as pd from datetime import datetime from statistics import mean #ONLY CHANGE THESE VALUES url = "http://192.168.2.4/index.php/realtimedata" APIID = "GEHEIM" SYSTEMID = "89927" #PVOUTPUT API URL = "https://pvoutput.org/service/r1/addstatus.jsp" #Basic Vars page = requests.get(url) soup = BeautifulSoup(page.text,features="lxml") table = soup.find_all('table')[0] tmp = table.find_all('tr') # fix_rowspan first = tmp[0] allRows = tmp[1:len(tmp)] headers = [header.get_text() for header in first.find_all('th')] results = [[data.get_text() for data in row.find_all('td')] for row in allRows] rowspan = [] for no, tr in enumerate(allRows): tmp = [] for td_no, data in enumerate(tr.find_all('td')): if data.has_attr("rowspan"): rowspan.append((no, td_no, int(data["rowspan"]), data.get_text())) if rowspan: for i in rowspan: # tr value of rowspan in present in 1th place in results for j in range(1, i[2]): #- Add value in next tr. results[i[0]+j].insert(i[1], i[3]) #Looping through the table res0 = [] res1 = [] res2 = [] res3 = [] res4 = [] res5 = [] for result in results: print("Inverter ID: {}".format(result[0].replace(" ",""))) res0.append(result[0]) for i in result[1].split(): if i.isdigit(): res1.append(int(i)) print("(Filtered) Current Power: {}".format(i)) for DCvoltage in result[2].split(): if DCvoltage.isdigit(): res2.append(int(DCvoltage)) print("DC Voltage: {}".format(DCvoltage)) for voltage in result[4].split(): if voltage.isdigit(): res3.append(int(voltage)) print("(Filtered) Voltage: {}".format(voltage)) for temp in result[5].split(): if temp.isdigit(): res4.append(int(temp)) print("(Filtered) Temp: {}".format(temp)) datum = format(result[6]).strip().replace("\n","") date_time_obj = datetime.strptime(datum, '%Y-%m-%d %H:%M:%S') date = date_time_obj.strftime("%Y%m%d") time = date_time_obj.strftime("%H:%M") print("Date: {}".format(date)) print("Time: {}".format(time)) print("\n") #Combine results avgtemp = mean(res4) avgvoltage = mean(res3) totalpower = format(sum(res1)) avaragetemp = round(avgtemp) avaragevoltage = round(avgvoltage) #Print it! print("Summary:") print("Date:",date) print("Time:",time) print("Total power:",totalpower) print("Avarage inverter temp:",avaragetemp) print("Average inverter voltage:",avaragevoltage) ## Writing data in CSV file #combining all data in sinle list for CSV datetime = [date, time] res_list = [y for x in [datetime, res1, res2] for y in x] res_list.append(avaragevoltage) res_list.append(avaragetemp) # Printing concatenated list print ("Concatenated list using list comprehension: " + str(res_list)) data = [res_list] # opening the csv file in 'a+' mode file = open('Maple_OW_data.csv', 'a+', newline ='') # writing the data into the file with file: write = csv.writer(file) write.writerows(data) ##Pushing to PVOUTPUT gegevens = {'sid':SYSTEMID,'key':APIID,'d':date,'t':time,'v2':totalpower,'v5':avgtemp,'v6':avaragevoltage} r = requests.get(URL,params=gegevens) #DEBUG #print(r.content)
4x APsystems DS3; 4x495Wp OZO/WNW 10° ; 4x460Wp OZO/WNW 10°; Totaal 3820Wp
Ja, hier na de nodige pogingen inmiddels ook gelukt. ESP8266 icm CC2531avanthof schreef op donderdag 25 augustus 2022 @ 12:04:
Ik ben bezig met Zigbee direct in HA middels een ESP32 en een CC2531. Dan heb ik de data direct beschikbaar en hoe ik de ECU-R en portal ook niet meer te gebruiken. Eerste info heb ik al binnen. Zijn er nog meer mensen hiermee bezig?
Draait inmiddels al weer een tijdje stabiel. Alleen bij uitbreiding weet ik niet of ik APS met 10 jaar garantie kan krijgen zonder een ECU-R. Volgens mij wordt tegenwoordig vaak de ECU als voorwaarde gesteld om >2 jaar garantie te krijgen.
https://github.com/patience4711/read-APSystems-YC600-QS1-DS3
Hangt de APS unit met wifi aan internet of via kabel? ik vond wifi in de meterkast ook niet ideaal en heb hem bekabeld en nooit connectie issues.JvS schreef op maandag 22 augustus 2022 @ 17:24:
Ik heb wat problemen met het uitlezen van data uit mijn ECU-R (met sunspec logo) met een python script die data per paneel van de ECU-R webpagina scrapet, elke 5min gestart door de windows scheduler, op PVoutput zet en een regel aan een CSV toevoegt om per paneel data te verzamelen voor grafena.
Alleen heel regelmatig werkt het script niet. Best wel irritant. Het probleem lost zichzelf altijd wel weer op, maar de data is verloren gegaan. De data op de APS site is dan wel altijd aangevuld (die haalt het denk ik uit geheugen van de omvormers ofzo?). PVoutput verzint volgens mij maar wat voor de opbrengst in die lege punten (want de dagelijkse opbrengst is structureel hoger dan de APS site aangeeft)
Anyway, zijn er manieren om dit stabieler te krijgen? Die interne pagina is ook lang niet altijd goed bereikbaar. Ik poll hem elke 5min in elk geval. Per dag mis ik meestal ongeveer 2u van de 16u aan data, zoals hier een paar missers:
[Afbeelding]
Dit is het script dat ik nu gebruikt (eerlijk gejat van HiBe zijn post en met mn eerste stapjes Python uitgebreid met CSV data storage, niet boos worden, eerste Python van mn leven na basic programmeren in de jaren 90)
[...]
De ECU doet in de nacht een onderhoudsslag, er wordt gekeken of de data in de ECU synchroon loopt met de EMA data, zo niet wordt deze bijgewerkt vanuit de ECU cache. Er wordt ook gekeken naar eventuele firmware updates. PVoutput vind ik persoonlijk maar een wazig platform, geen idee wie hier achter zit en wat ze met jouw data doen.JvS schreef op maandag 22 augustus 2022 @ 17:24:
De data op de APS site is dan wel altijd aangevuld (die haalt het denk ik uit geheugen van de omvormers ofzo?). PVoutput verzint volgens mij maar wat voor de opbrengst in die lege punten (want de dagelijkse opbrengst is structureel hoger dan de APS site aangeeft)
[...]
[ Voor 76% gewijzigd door Nibblebit op 28-08-2022 08:05 ]
Don't be naive, you are not the customer, you are the product!
https://github.com/ksheum...-apsystems_ecur/issues/96
Don't be naive, you are not the customer, you are the product!
Waarom heb je dit voor 20 jaar afgekocht?avanthof schreef op vrijdag 26 augustus 2022 @ 19:09:
Ik APS 20jaar afgekocht en ECU-R heb ik achter de hand ;-).
Was een lucratief aanbod van APS installateur en heb dan 20 jaar productgrarantie, gelijk aan de fabriek garantie van de panelen (lever- op/wekgarantie en ook tegen stormschade voor m'n panelen. Vervanging bij elke vorm van uitval.) Enige onzekerheid, is dat bedrijf moet blijven bestaan, maar met EU steun, productie toename in EU en energie transitie zie ik dat positief in.
Heb de ontwikkeling gevolgd en per cm2 is de opbrengst de laatste tien jaar niet echt verbeterd. De opbrengst wordt hoger maar de panelen groter.
Als ik kijk naar de trend van afgelopen 20 jaar kijk weegt dat niet op tegen nieuwe investering.
Dus vandaar ;-)
1
| curl "http:// < IP > /index.php/management/set_wlan_ap" -H "X-Requested-With: XMLHttpRequest" --data-raw "SSID=ECU-WIFI_local&channel=0&method=0&psk_wep=&psk_wpa=" |
Het cURL commando kun je gewoon vanuit de HA terminal sturen (vergeet niet je IP-adres van de ECU in de URL te zetten). Ik hoor graag of het werkt om een vastgelopen ECU-R weer tot leven te wekken. Op de ECU-C schijnt het te werken.
Reden voor de vraag is om te kijken of dit valt in te bakken met de HA integratie van Kyle (https://github.com/ksheumaker/homeassistant-apsystems_ecur). De integratie is prima maar de nieuwere ECU-R en ECU-C kunnen niet geheel overweg met de continue uitvraag en lopen vast. Met de soft-reset van de ECU's kan de integratie gewoon door blijven werken en is een hoge mate van continuiteit bereikt.
[ Voor 25% gewijzigd door Nibblebit op 06-09-2022 15:23 ]
Don't be naive, you are not the customer, you are the product!
Ik quote mijn eigen even. Is er niemand die de ECU-C uitleest via de RS485? Kan er niets over vinden op GitHub. En ben zelf niet zo'n goede programmeur om dit vanaf scratch helemaal zelf te schrijven voor een ESP32.Gratje schreef op maandag 27 juni 2022 @ 22:04:
Is er iemand al zo ver gekomen om via een Esp32 de modbus van de ECU-C uit te lezen?
Wil het graag stabiel hebben in Home assistant. Maar de sunspec modbus integratie werkt niet goed.
En de andere integraties lopen na een paar dagen vast of geven niet alles weer.
Deze intergratie werkt voor mij op het moment het beste maar de omvormers zelf geven nagenoeg nooit data door.
https://github.com/tv3/homeassistant-apsystems_ecur
Dus ik wil hem op de modbus uitlezen. Maar er staan nergens voorbeelden van iemand die het al gemaakt heeft.
Dus ik dacht ik vraag het hier gewoon
Is dit misschien iets? Moet wel worden gemapped voor de APSystems ECU-C. Gewoon op Github gezocht naar RS485. https://github.com/StealthChesnut/HA-FoxESS-ModbusIs er niemand die de ECU-C uitleest via de RS485? Kan er niets over vinden op GitHub.
[ Voor 10% gewijzigd door Nibblebit op 18-09-2022 14:48 ]
Don't be naive, you are not the customer, you are the product!
/f/image/BprFABXmU0EBZNvLgdxdGGIT.png?f=fotoalbum_small)