LucaPatarca / homeassistant_aton

Unofficial home assistant integration for Aton Green Storage photovoltaic system
GNU General Public License v3.0
9 stars 2 forks source link

Utilizzo integrazione e Unexpected error #1

Closed MantovaniMatteo closed 1 year ago

MantovaniMatteo commented 1 year ago

Salve, mi chiamo Matteo, sono un programmatore e devo farti i complimenti per il lavoro che stai facendo.

Possiedo un inverter ATON e stavo cercando un modo per intergrare le informazioni dentro Home Assistant.

Ho trovato la tua integrazione ed ho provato di utilizzarla, sperando che la cosa non ti dia fastidio. Finalmente i miei dati erano dentro Home Assistant!

Fino alla settimana scorsa ha funzionato tutto alla perfezione però purtroppo da oggi non funziona più.

Ho provato nuovamente di inserire l'integrazione ma mi formisce l'errore Unexpected error.

Non credo sia un problema di credenziali ma non saprei il motivo. Se può darmi indicazioni di come posso risolvere te ne sarei grato.

Inoltro se posso poi darti una mano per testarlo o altro fammi sapere.

Grazie in anticipo e buona serata.

Matteo

LucaPatarca commented 1 year ago

Ciao Matteo, grazie per il feedback, mi fa piacere sapere che c'è qualcuno a cui la mia integrazione può essere utile.

A breve faccio qualche prova con la mia istanza di home assistant per vedere se riesco a riprodurre l'errore.

Considera che questa integrazione prende i dati in modo abbastanza "grezzo" dal sito ufficiale quindi basta che loro cambiano qualcosa e potrebbe smettere di funzionare (mi è già capitato una volta ahah).

Potrebbe anche essere un problema del loro sito visto che in passato è capitato che non funzionasse bene (ad esempio ho avuto la percentuale della batteria fissa al 35% per diversi giorni), in quel caso però dovresti avere problemi anche con il sito e l'app ufficiali.

Intanto se vuoi puoi mandarmi i log dell'integrazione, li dovresti trovare su settings > system > logs e poi cerchi "aton" o qualcosa del genere (dato che Unexpected error di solito viene lanciato direttamente da home assistant e non dal mio codice controlla che nei log non ci siano info personali tipo password o cose del genere).

MantovaniMatteo commented 1 year ago

Ciao Luca, piacere di conoscerti!

Grazie a te della risposta!

Allora prima di usare la tua integrazione avevo provato a prelevare i dati in diversi modi:

Poi ho trovato la tua integrazione e non mi sembrava vero! Un'integrazione per HA!!! Sinceramente ben fatta e con i dati che servono.

Cerco di darti più informazione possibile per debuggare il problema. Dal sito e dall'app vedo i dati cambiare coerentemente. Ho provato anche a fare un logout/login e le credenziali sono corrette (Mio suocero ha anche lui lo stesso inverter e la settimana scorsa era cambiata la password).

Sempre con la tua integrazione mi è capitato la settimana scorsa di trovare tutti i dati unavailable come adesso ma poi inserendo nuovamente l'integrazione mi ha subito riconosciuto le credenziali ed è ripartito tutto.

Speravo che facesse così anche questa volta!

Però la cosa strana è che il problema oggi è nato dopo un riavvio di HA, prima del riavvio funzionava tutto perfettamente! Strano no!

Ho provato anche a usare una versione vecchia di HA ma nulla da fare.

Giusto per conferma, Io ho messo la tua integrazione dentro la cartella custom_components ma nel file configuration.yaml non ho messo niente. Procedura corretta? La tua integrazione la vedo nelle integrazioni di HA non in quelle di HACS.

Poi nel tuo file python init.py vedo scritto:

Potrebbe essere un problema di validazione dell'API? Una domanda, potrebbero aver bannato il mio IP secondo te?

ti giro il log di HA subito dopo che ha smesso di funzionare dopo il riavvio di HA e il log che c'è adesso se provo di inserire nuovamente le credenziali.

Grazie nuovamente della disponibilità e buona serata .

Matteo

Il giorno dom 11 dic 2022 alle ore 20:43 Luca Patarca < @.***> ha scritto:

Ciao Matteo, grazie per il feedback, mi fa piacere sapere che c'è qualcuno a cui la mia integrazione può essere utile.

A breve faccio qualche prova con la mia istanza di home assistant per vedere se riesco a riprodurre l'errore.

Considera che questa integrazione prende i dati in modo abbastanza "grezzo" dal sito ufficiale quindi basta che loro cambiano qualcosa e potrebbe smettere di funzionare (mi è già capitato una volta ahah).

Potrebbe anche essere un problema del loro sito visto che in passato è capitato che non funzionasse bene (ad esempio ho avuto la percentuale della batteria fissa al 35% per diversi giorni), in quel caso però dovresti avere problemi anche con il sito e l'app ufficiali.

Intanto se vuoi puoi mandarmi i log dell'integrazione, li dovresti trovare su settings > system > logs e poi cerchi "aton" o qualcosa del genere (dato che Unexpected error di solito viene lanciato direttamente da home assistant e non dal mio codice controlla che nei log non ci siano info personali tipo password o cose del genere).

— Reply to this email directly, view it on GitHub https://github.com/LucaPatarca/homeassistant_aton/issues/1#issuecomment-1345639520, or unsubscribe https://github.com/notifications/unsubscribe-auth/A4WBYMGPPXDW5EUGLYAD3UDWMYVGNANCNFSM6AAAAAAS3DXUCU . You are receiving this because you authored the thread.Message ID: @.***>

Logger: homeassistant.components.sensor Source: custom_components/aton_storage/sensor.py:44 Integration: Sensor (documentation, issues) First occurred: 12:41:25 PM (1 occurrences) Last logged: 12:41:25 PM

Error while setting up aton_storage platform for sensor Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 139, in load browsers_dict[browser_name] = get_browser_user_agents( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 123, in get_browser_user_agents raise FakeUserAgentError( fake_useragent.errors.FakeUserAgentError: No browser user-agent strings found for browser: chrome

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.10/urllib/request.py", line 1348, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/usr/local/lib/python3.10/http/client.py", line 1282, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1328, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1277, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1037, in _send_output self.send(msg) File "/usr/local/lib/python3.10/http/client.py", line 975, in send self.connect() File "/usr/local/lib/python3.10/http/client.py", line 1447, in connect super().connect() File "/usr/local/lib/python3.10/http/client.py", line 941, in connect self.sock = self._create_connection( File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection raise err File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection sock.connect(sa) TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 64, in get urlopen( File "/usr/local/lib/python3.10/urllib/request.py", line 216, in urlopen return opener.open(url, data, timeout) File "/usr/local/lib/python3.10/urllib/request.py", line 519, in open response = self._open(req, data) File "/usr/local/lib/python3.10/urllib/request.py", line 536, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/usr/local/lib/python3.10/urllib/request.py", line 496, in _call_chain result = func(*args) File "/usr/local/lib/python3.10/urllib/request.py", line 1391, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/usr/local/lib/python3.10/urllib/request.py", line 1351, in do_open raise URLError(err) urllib.error.URLError:

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 281, in _async_setup_platform await asyncio.shield(task) File "/config/custom_components/aton_storage/sensor.py", line 44, in async_setup_entry api = await hass.async_add_executor_job( File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/usr/local/lib/python3.10/site-packages/pyaton.py", line 114, in init self.user_agent = UserAgent() File "/usr/local/lib/python3.10/site-packages/fake_useragent/fake.py", line 64, in init self.load() File "/usr/local/lib/python3.10/site-packages/fake_useragent/fake.py", line 70, in load self.data_browsers = load_cached( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 209, in load_cached update(path, browsers, use_cache_server=use_cache_server, verify_ssl=verify_ssl) File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 203, in update path, load(browsers, use_cache_server=use_cache_server, verify_ssl=verify_ssl) File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 154, in load jsonLines = get( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 87, in get raise FakeUserAgentError("Maximum amount of retries reached") fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

This error originated from a custom integration.

Logger: custom_components.aton_storage.config_flow Source: custom_components/aton_storage/config_flow.py:33 Integration: Aton Storage Unofficial (documentation) First occurred: 6:28:35 PM (1 occurrences) Last logged: 6:28:35 PM

Unexpected exception Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 139, in load browsers_dict[browser_name] = get_browser_user_agents( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 123, in get_browser_user_agents raise FakeUserAgentError( fake_useragent.errors.FakeUserAgentError: No browser user-agent strings found for browser: chrome

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.10/urllib/request.py", line 1348, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/usr/local/lib/python3.10/http/client.py", line 1282, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1328, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1277, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.10/http/client.py", line 1037, in _send_output self.send(msg) File "/usr/local/lib/python3.10/http/client.py", line 975, in send self.connect() File "/usr/local/lib/python3.10/http/client.py", line 1447, in connect super().connect() File "/usr/local/lib/python3.10/http/client.py", line 941, in connect self.sock = self._create_connection( File "/usr/local/lib/python3.10/socket.py", line 845, in create_connection raise err File "/usr/local/lib/python3.10/socket.py", line 833, in create_connection sock.connect(sa) TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 64, in get urlopen( File "/usr/local/lib/python3.10/urllib/request.py", line 216, in urlopen return opener.open(url, data, timeout) File "/usr/local/lib/python3.10/urllib/request.py", line 519, in open response = self._open(req, data) File "/usr/local/lib/python3.10/urllib/request.py", line 536, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/usr/local/lib/python3.10/urllib/request.py", line 496, in _call_chain result = func(*args) File "/usr/local/lib/python3.10/urllib/request.py", line 1391, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/usr/local/lib/python3.10/urllib/request.py", line 1351, in do_open raise URLError(err) urllib.error.URLError:

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/config/custom_components/aton_storage/config_flow.py", line 73, in async_step_user info = await validate_input(self.hass, user_input) File "/config/custom_components/aton_storage/config_flow.py", line 33, in validate_input api = await hass.async_add_executor_job( File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/usr/local/lib/python3.10/site-packages/pyaton.py", line 114, in init self.user_agent = UserAgent() File "/usr/local/lib/python3.10/site-packages/fake_useragent/fake.py", line 64, in init self.load() File "/usr/local/lib/python3.10/site-packages/fake_useragent/fake.py", line 70, in load self.data_browsers = load_cached( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 209, in load_cached update(path, browsers, use_cache_server=use_cache_server, verify_ssl=verify_ssl) File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 203, in update path, load(browsers, use_cache_server=use_cache_server, verify_ssl=verify_ssl) File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 154, in load jsonLines = get( File "/usr/local/lib/python3.10/site-packages/fake_useragent/utils.py", line 87, in get raise FakeUserAgentError("Maximum amount of retries reached") fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

MantovaniMatteo commented 1 year ago

Ciao Luca, non so se tu hai verificato qualcosa ma ti volevo aggiornare su alcuni test che ho fatto.

Allora ho provato ad utilizzare un altro utente e mi fornisce lo stesso errore, ossia Unexpected error in fase di inseriemento credenziali.

Poi ho provato una versione di HA molto vecchia dove avevo installato poche integrazioni e l'errore è lo stesso.

La mia conclusione è che il problema a questo punto è dal lato ATON. Non so che tipo di comunicazione avviene con la tua integrazione ma probabilmente hanno bloccato la cosa.

Nel log alla fine c'è scritto: fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

Forse hanno bloccato le validazioni API? :-( Se fosse un problema di API l'errore che fornirebbe la tua integrazione sarebbe lo stesso oppure invalid_auth ?

Buona serata

Matteo

LucaPatarca commented 1 year ago

Ciao Matteo, scusa se ti rispondo solo ora ma i giorni scorsi sono stato abbastanza impegnato.

Io ho messo la tua integrazione dentro la cartella custom_components

Si questa procedura è corretta e dovrebbe funzionare ma non l'ho mai testata, io la installo direttamente da HACS ma per farlo devi aggiungere questa repo tra le custom repository. (effettivamente dovrei aggiungere questa cosa sul README visto che è vuoto...)

Nel frattempo anche io ho fatto delle prove ma purtroppo non sono riuscito a riprodurre il problema sulla mia istanza. Guardando i log che mi hai mandato però ho ricontrollato il codice e ho notato una cosa strana.

fake_useragent.errors.FakeUserAgentError: No browser user-agent strings found for browser: chrome

Da questa riga sembrerebbe che il problema sia fake_useragent che è una libreria python che utilizzo nel codice per generare dei User Agent random in modo da avere meno problemi con le loro API. Non so di preciso da cosa dipenda questo errore ma da una ricerca su internet sembrerebbe che fake_useragent non riesca a connettersi a internet per qualche motivo. La cosa positiva è che questa libreria non è affatto necessaria ma è più che altro una cosa che ho aggiunto "per sicurezza" nel caso in cui ATON decida di bloccare le chiamate con determinati User Agent.

Quello che c'è da capire è per quale motivo fake_useragent non riesce a collegarsi, perché se il problema fosse un semplice malfunzionamento della libreria allora una possibile soluzione sarebbe quella di impostare uno User Agent di fallback nel caso in cui la libreria non dovesse funzionare. Se invece il motivo è che manca proprio la connessione internet allora anche se si dovesse risolvere il problema della libreria l'integrazione non potrebbe funzionare lo stesso ovviamente.

Visto che non sono riuscito a replicare il problema ti chiederei di confermare che il tuo home assistant non abbia problemi di connessione e se non è questo il caso direi che potremmo provare a togliere temporaneamente l'uso di questa libreria e vedere come va.

MantovaniMatteo commented 1 year ago

Ciao Luca, grazie come sempre della risposta. Non preoccuparti, siamo ormai sommersi da impegni.

Allora riguardo la comunicazione non ho problemi di alcun tipo, almeno penso! Anche perchè ha smesso di funzionare dopo un riavvio di HA. La comunicazione del rapberry è con la wifi sulla banda 5GHz ma è sempre stato così anche quando l'integrazione funzionava. Potrei provare sulla banda 2.4Ghz o con un cavo LAN. Una cosa che non ho provato è riavviare il router, sai a volte .....!

Riguardo l'osservazione sulla tua libreria python per generare degli user agent, come posso fare per disabilitarla come dicevi? Oppure come posso fare ad impostare uno user agent?

Grazie mille

Buona giornata :-)

Matteo

mauriziosacca commented 1 year ago

Salve a tutti, Mi chiamo Maurizio, anchio possiedo un Aton Storage e ormai avevo perso le speranze di integrarlo in Home Assistant. Innanzitutto complimenti per il lavoro fatto, purtroppo non sono riuscito a provarlo poichè anche a me da "Unexpected error" all'inserimento delle credenziali. Ho provato anche non altre credenziali (mio suocero ha lo stesso impianto), nulla da fare. Se posso aiutarvi in qualche modo fatemi sapere, sarò lieto di collaborare

MantovaniMatteo commented 1 year ago

Ciao Maurizio, piacere di conoscerti. Guarda io ho avuto la fortuna di provarlo per circa 10gg e funzionava veramente bene. Luca ha fatto un ottimo lavoro! Purtoppo dopo un riavvio di HA a smesso di funzionare e tutti i valori sono rimasti unaivailable.

Adesso se provo di inserire nuovamente l'integrazione ho lo stesso tuo errore.

Siccome ho fatto diversi tentativi ma non sono mai più riuscito a farlo funzionare adesso "fortunatamente" c'è un'altra persona che ha lo stesso errore e quindi non credo che il problema sia nel mio HA o altro. Credo a questo punto che il problema sia lato ATON, avranno bloccato qualcosa, tipo la validazione delle API.

Sicuramente Luca potrà dirci la sua opinione.

Buona serata

Matteo

MantovaniMatteo commented 1 year ago

Ciao Luca, ho provato con il rasberry sulla rete 2.4GHz ma è uguale.

Mi sono poi messo a guardare il tuo file config_flow.py, perchè se ho ben capito, la validazione avviene in questo file ma non ho capito come modificarla per evitare che ATON blocchi le chiamate.

Se fossi già a conoscenza dei dati _sn, idimpianto e username potrei inserirli già nel file e forse evitare il problema?

Grazie e buona serata

Matteo

mauriziosacca commented 1 year ago

Ciao Luca. Ho appena aggiornato alla 0.0.4. L'errore è sparito, sembra funzionare correttamente. Farò qualche test e vedremo. Grazie per l'ottimo lavoro!

LucaPatarca commented 1 year ago

Ciao Ragazzi. A quanto pare Maurizio è stato più veloce di me a testare il fix :smile: stavo proprio aspettando di testarlo su un'installazione pulita di home assistant per essere sicuro che andasse tutto bene prima di rispondevi qua.

Grazie a tutti per l'aiuto, ora aspettiamo di vedere se funziona anche a @MantovaniMatteo così posso chiudere la issue.

LucaPatarca commented 1 year ago

E comunque non diciamolo troppo forte ma a quanto pare il fix era molto più semplice del previsto.

Di solito è considerata una buona pratica mettere la logica della comunicazione con le API in una libreria python esterna all'integrazione di home assistant e poi importare quella libreria (o almeno così è scritto nella documentazione di home assistant) quindi ho scritto una libreria python apposta per questa integrazione e l'ho pubblicata su questo repository

Questa libreria utilizza a sua volta un'altra libreria per generare degli User Agent casuali che si chiama fake-useragent. A quanto pare mi ero dimenticato di specificare la versione nelle dipendenze e quindi utilizzava una versione vecchia che per qualche motivo ha smesso di funzionare.

Ora ho aggiornato la libreria includendo tra le dipendenze l'ultima versione di fake-useragent e sembrerebbe aver ripreso a funzionare.

LucaPatarca commented 1 year ago

@MantovaniMatteo Riguardo la procedura per aggiungere il repository su HACS immagino tu abbia risolto prima che riuscissi a rispondere :sweat_smile: . In ogni caso appena posso aggiungo due righe sul README perché effettivamente non è per nulla chiaro come si installa questa integrazione, in realtà non pensavo che qualcuno avrebbe mai utilizzato questa integrazione oltre a me quindi non ho scritto nulla.

mauriziosacca commented 1 year ago

in realtà non pensavo che qualcuno avrebbe mai utilizzato questa integrazione oltre a me quindi non ho scritto nulla

Fidati, c'è gente che la aspettava da anni. Anzi, se per te va bene, vorrei spargere un po la voce

MantovaniMatteo commented 1 year ago

Ciao Luca, che dire, sei un mito!

Funziona anche a me! Che goduria! Ho semplicemente sostituito con filezilla la vecchia versione 003 con la nunova 004 dentro custom_components e riavviato. Poi ho aggiunto nuovamente l'integrazione ed ha funzionato.

Giusto per raccontarti tutto: Non ho cancellato la vecchia integrazione per paura che mi cancellasse anche i sensori che avevo già usato in giro. Adesso mi trovo due integrazioni, quella vecchia e quella appena aggiunta ma in entrambe vedo i dati. Quella vecchia adesso ha ripreso a vedere i dati! Mi sa che lascio tutto così, non vorrei cancellare un'integrazione e rischiare di perdere le associazioni.

Riguardo la procedura per importare il repository su HACS poi ho visto come si faceva documentandomi un pò. Era più semplice di quello che pensavo. Grazie comunque!

Ho visto la tua modifica delle versioni dentro il file manifest.json. Bravo! Se posso chiederti, non ho capito una cosa riguardo quello che hai detto riguardo la libreria python esterna. Ma dove si trova questa libreria che non la vedo nella tua versione 004? Se la cosa è troppo lunga e complicata da spiegare brevemente puoi darmi qualche link per capire come funziona? E' una curiosità!

Poi mentre cercavo documentazione ho trovato questo pdf: https://www.ena-eng.org/gen-ttr/TTf1l3s/ATONG_04755_220514104417.pdf

Se passi per Ferrara un giorno fai un fischio che ti pago una birra! come minimo!!!!

Grazie ancora

Matteo

Fredxp73 commented 1 year ago

Buongiorno a tutti, mi chiamo Federico, io sto tentando un approccio un po diverso, ovvero sto cercando di tirar fuori i dati dall inverter senza passare per il cloud, attraverso le porte rs 485 all interno dell inverter. Sono riuscito attraverso la porta console, ad integrare in home assistant le 3 batterie pylontech che possiedo, monitorizzando voltaggio potenza temperature etc, con node red. Vorrei fare la stessa cosa con l'inverter , ma avrei bisogno pero della " Tabella registri" che usa aton per memorizzare internamente queste informazioni per poi inviarle all cloud. Qualcuno e' riuscito a trovare in rete qualche info in merito? sono settimane che cerco ma di aton non si trova nulla, non capisco perche' ci sono altri brand (vedi solar edge) che forniscono liberamente queste info nei loro siti... mentre aton a malapena invece ti fornisce il manuale dell inverter .........

mauriziosacca commented 1 year ago

Buongiorno Fred. Purtroppo non so aiutarti. Vorrei avere qualche informazione in più su come hai integrato le batterie in locale su Home Assistant, grazie.

Fredxp73 commented 1 year ago

Ciao Maurizio, se hai batterie Pylontech (us2000c) la cosa e' reletivamente semplice devi minunirti di un cavo eterneth , e un convertitore rs232 usb, seguire questo schema per realizzare il cavo console https://powerforum.co.za/uploads/monthly_2020_04/xxx.jpg.e8c0ac06b33038df79705ee90bb45e23.jpg collegarlo a una porta seriale io ho usato questo https://www.amazon.it/gp/product/B08153D2F1/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 successivamente o colleghi la seriale a una porta pc... o come ho dovut0 fare io, usare un convertitore seriale 232 usb per collegarlo al raspberry. Fatto questo attacchi il cavo console alla porta console della batteria master (se hai piu batterie come nel caso mio )e attraverso node red con il Flow di questo gentilissimo utente: https://github.com/juanhaywood/nodered-pylontech-console-reader/blob/main/README.md monitorizzi tutte le batterie via home assistant.....

Puo sembrare un complessa cosi come l'ho scritto ma ti assicuro che con 10 minuti fai tutto, se non ricordo male ho dovuto cambiare qualcosina nel flow per farlo andare a puntino, ma ora non ricrdo cosa, se vuoi poi ti passo il mio gia editato e funzionante. Saluti Fred

Fredxp73 commented 1 year ago

per i pin del cavo eth rj45 a seriale..... fai una googlate e cerca il pinout per cavo console rj45 specifico per le pylontech ... ti ho postato quel link ma quello che ho usato io era un altro che ora non trovo piu comq a memoria i pin da usare sono quelli ciao

LucaPatarca commented 1 year ago

se per te va bene, vorrei spargere un po la voce

Nessun problema, anzi mi farebbe piacere.

Quella vecchia adesso ha ripreso a vedere i dati!

Effettivamente ha senso ora che ci penso perché quando hai installato la versione 0.0.4 ti ha installato la corretta versione di fake-useragent (proprio a livello di sistema) quindi ora anche la versione vecchia utilizza la corretta versione di fake-useragent

dove si trova questa libreria che non la vedo nella tua versione 004?

è normale che non la vedi perché questa integrazione dipende solo da pyaton (la libreria scritta apposta da me di cui parlavo), la dipendenza è scritta nel file manifest.json che dice quindi ad home assistant di installare pyaton quando viene installata questa integrazione. Pyaton a sua volta dipende da fake-useragent che viene quindi installata durante l'installazione di pyaton. Se segui il link sopra puoi vedere il codice di pyaton che si occupa effettivamente di tutta la logica di comunicazione con ATON e nel file setup.py trovi scritta la dipendenza da fake-useragent.

sto cercando di tirar fuori i dati dall inverter senza passare per il cloud

Questo discorso è molto interessante, anche io preferirei far funzionare il tutto offline. Sicuramente è più complesso come approccio ma il risultato sarebbe decisamente migliore. Lo vedo bene come uno sviluppo futuro di questa integrazione.

In ogni caso questo issue è risolto quindi lo chiudo, per il discorso del funzionamento offline sarebbe interessante aprire un nuovo issue a riguardo e continuare li la discussione.

Grazie a tutti per la collaborazione!

Fredxp73 commented 1 year ago

Buongiorno Luca, concordo con te, sarebbe estremamente interessante inziare un progetto parallelo sull monitoraggio offline dei ns inverter.. saluti fred