Toon posts:

APS ecu-r lokaal data uitlezen (projectje)

Pagina: 1 2 3 ... 10 Laatste
Acties:

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
@Nibblebit Batterij zou kunnen, net even de spanning eraf gehad, dagstand en lifetime zijn 0. De rest kan die bij opstarten terug halen van de website. Dat doet die dan blijkbaar ook.

7 februari wordt het een jaar. Zal eens naar type cel zoeken.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Het wordt inderdaad complex als er ook wat wordt teruggestuurd naar de ECU-R. Om wat meer inzicht te krijgen in het gedrag ga ik vandaag kijken hoe stabiel de ECU blijft als er geen werkelijke uploads naar de cloud plaatsvinden en er alleen uitgelezen wordt zonder enige feedback aan de ECU. Mocht het kansrijk zijn dan wordt de referrer voor de upload naar de cloud nog een uitdaging ;)
Het idee is: ECU-R >> HA (>> Cloud) dus optioneel naar de cloud. Liefst zonder feedback natuurlijk anders moet je weer terug: Cloud >> HA >> ECU-R

[Voor 14% gewijzigd door Nibblebit op 26-01-2021 09:45]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
die feedback is redelijk simpel, 101 met timestamp van vorige transmit zolang alles goed loopt idd.

als je de boel ophoudt en dan weer open zet , zal ecu de data hisorisch wel gaan communiceren. Dat zal ook de reden zijn dat hij uiteindelijk ophoudt, wsl is dan de lokale data buffer voor timestamps vol en zegt ie 'kan niet meer'.
Komen we wel uit denk ik hoor. Als ik van de week ff tijd heb voor POC knoeiwerk , doe ik dat wel. Heb al grof idee waar en hoe.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
btw, iemand ooit nog eens die api op
https://apsystemsema.com/...dECUDetailwithdailyEnergy
geprobeerd? ik krijg nu continu 204 no content. Daar zat nou net zo'n mooie json in om data van ECU naar cloud te vergelijken... best jammer

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Da's een goeie @dooiedodo , ik heb de boel even gestopt en kijken of de historische data uit de ECU inderdaad wordt gepushed, het afgevlakte deel moet dan verdwijnen.

Inderdaad, bijgewerkt en redelijk snel ook...


Nu heb ik het te kort laten lopen om eventuele vastlopers te detecteren. Het valt inderdaad wel op dat poort 8997 een belangrijke rol speelt wat historische data betreft. Op de andere twee poorten wordt eigenlijk alleen maar "dom" data gepushed. Dat bevestigd voorzichtig het vermoeden dat dit een status poort is. Kijken wat er gebeurt als ik deze listener uit zet.

[Voor 46% gewijzigd door Nibblebit op 26-01-2021 10:56]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
als het gedrag bevestigd wordt, dat history inghaald wordt, hoeven we niet eens de confirm te maken. Gewoon capture stoppen na zonsondergang, meest simpele benadering

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
simpel poc script doet al wat:

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
import socket
import struct
import binascii
import json
import datetime
from struct import unpack



HOST = 'LOCAL IP HERE WHERE SCRIPT RUNS'
PORT = 8996        # Port to listen on 8995 en 8996 ub aparte python vooralsnog, maar kan in 1 script

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
#            conn.sendall(data)
            with  socket.socket(socket.AF_INET, socket.SOCK_STREAM) as out:
                out.connect(("60.190.131.190", 8996 ))  # ema IP
                out.send(data)
                print(data)
                string = str(data)
                print(string)
                f = open("ecudata.txt", "a")
                f.write(string)
                f.write("\n")
                f.close
            s.close()


heb al gezien dat data netjes bij EMA terecht komt.. heb nog geen '101 timestamp' terug naar ECU... even aankijken hoe dit loopt.

En ik doe iets fout met file write... regels in file zijn pas zichtbaar als ik script stop....zie even niet waarom, dacht dat f.close het wel zou moeten doen

[Voor 6% gewijzigd door dooiedodo op 27-01-2021 12:21]


  • Proton_
  • Registratie: November 2011
  • Laatst online: 19:16

Proton_

Moderator Wonen & Mobiliteit 

Team Welles

@dooiedodo missende haakjes() op L33?

'19 Hyundai Kona EV, douchen met wtw en Auer Edel Eau, verwarming met Vaillant R290 monoblock


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
lol.. goed punt :-)

  • Proton_
  • Registratie: November 2011
  • Laatst online: 19:16

Proton_

Moderator Wonen & Mobiliteit 

Team Welles

Voor als je een pi of cloudinstance als backend wil gebruiken is dit misschien een leuk uitgangspunt:
Notes: Using netcat to build a simple TCP proxy in Linux

'19 Hyundai Kona EV, douchen met wtw en Auer Edel Eau, verwarming met Vaillant R290 monoblock


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ik heb de feedback naar de ECU nog niet op orde, bij mij lijkt het geen 101 te zijn. De Ecu herverzend en buffert dan alsnog. Helaas vandaag geen tijd om er verder in te duiken. Ik heb wel gemerkt dat op poort 8995 en 8996 gewacht wordt op feedback (en de poort dus open blijft op de ECU) totdat er een correctie/control via 8997 plaatsvindt, dan worden de poorten 8995 of 8996 gesloten.

[Voor 22% gewijzigd door Nibblebit op 28-01-2021 10:47]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Proton_ schreef op woensdag 27 januari 2021 @ 12:53:
Voor als je een pi of cloudinstance als backend wil gebruiken is dit misschien een leuk uitgangspunt:
Notes: Using netcat to build a simple TCP proxy in Linux
lijkt easy ja :)
ik lijk echt slecht in python begrijpen.. na 1 message extra, stop het script met exit. Maar goed, het ging om het concept en dat lijkt bruikbaar. Nu eers graven in data of ik nog berijpbare delen extra eruit kan halen. De standaard dingen als Watt en Temp zijn helder. Zal voor QS1 misschien net anders zijn weer.


ook dez maar eens doornemen: https://medium.com/@gdieu...hon-part-1-3-7552cd5afdfe

[Voor 7% gewijzigd door dooiedodo op 27-01-2021 14:03]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
paar timestamps bij elkaar geraap en wat spaties.. zitten nog al wat cijfers die ik niet kan plaatsen.. hoop dat het kwh totalen zijn, maar dat kan ik nergens terug vinden
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
000001410000 0001226300 00001524 20210128134531 007000000END 408000094016 07 229 00500 107 000000180000000016321 00320003000873 010 002 00327003000863 010 00END
000001390000 0001200400 00001524 20210128134031 007000000END 408000094016 07 226 00500 107 000000180000000016391 00323003000876 010 002 00330003000867 010 00END
000002220000 0001929300 00001524 20210128140531 007000000END 408000094016 07 229 00499 107 000000300000000025341 00327005001344 016 002 00332004001351 016 00END
000000710000 0000648400 00001527 20210128160031 007000000END 408000094016 07 227 00500 106 000000090000000008771 00302001000478 005 002 00314001000455 005 00END
000002560000 0002165400 00001525 20210128142031 007000000END 408000094016 07 227 00500 107 000000330000000028611 00329005001517 018 002 00337005001526 018 00END
000002160000 0001858900 00001525 20210128142531 007000000END 408000094016 07 226 00500 107 000000290000000025081 00322003001332 015 002 00327003001335 016 00END
000001700000 0001473200 00001526 20210128144531 007000000END 408000094016 07 228 00499 107 000000220000000019721 00322003001051 012 002 00333003001047 012 00END
000001150000 0001021100 00001526 20210128145531 007000000END 408000094016 07 226 00499 107 000000150000000013631 00317002000732 008 002 00324002000718 008 00END
000000690000 0000623500 00001526 20210128150531 007000000END 408000094016 07 224 00500 107 000000090000000008281 00316002000453 005 002 00322002000428 005 00END
000001840000 0001590000 00001526 20210128152531 007000000END 408000094016 07 226 00499 107 000000240000000021551 00318002001147 013 002 00324002001145 013 00END
000000960000 0000847400 00001527 20210128153031 007000000END 408000094016 07 226 00499 107 000000130000000011461 00309001000618 007 002 00318001000600 007 00END
000000580000 0000551600 00001527 20210128153531 007000000END 408000094016 07 224 00499 107 000000070000000007381 00304001000405 004 002 00314001000380 004 00END
000000720000 0000666800 00001527 20210128154031 007000000END 408000094016 07 226 00499 107 000000090000000008941 00313001000487 005 002 00322001000464 005 00END
000000920000 0000829300 00001527 20210128155031 007000000END 408000094016 07 225 00499 106 000000120000000011021 00313002000595 007 002 00325001000577 006 00END


spacing was niet goed.. dit is beter

[Voor 71% gewijzigd door dooiedodo op 28-01-2021 19:56]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Nu mijn windows proxy klaar is kan ik straks ook eens meekijken om de data naar informatie te brengen.

@dooiedodo Je had wel gelijk over de 101 response op datapoorten 8995 en 8996. De response van de EMA site (timestamp) geeft de tijd aan dat de vorige data is ontvangen. Daar ging het bij mij mis, ik pakte de laatste string vanuit de ECU-R, knipte de timestamp eruit en retourneerde die naar de ECU-R met 101 ervoor -> dat ging niet goed :) Ik hoop dat we de buffer hiermee onder controle hebben. De keuze van datapoort lijkt willekeurig te zijn.

Op 8997 ziet de response er anders uit, de verzonden data en ontvangen data is niet identiek aan elkaar maar blijft tot noch toe wel hetzelfde. Ik denk wel dat die voor een ieder af zal wijken dus een voorziening voor deze poort zal er moeten zijn. Met uitzondering van het sluiten van de datapoorten is de functie nog niet duidelijk, in de nacht is deze poort nog actief richting EMA. Dit in tegenstelling tot de datapoorten.

Ondanks dat de proxy ertussen zit, loopt de EMA site goed mee met de data, de communicatie ziet er via WireShark schoon uit en HA blijft ook zonder fouten in het log draaien. Als dit principe kan worden over gezet naar Python en dat binnen HA is dat top!

[Voor 5% gewijzigd door Nibblebit op 28-01-2021 13:33]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
kan jee ook inverter data string eens posten? ben erg benieuwd.. ik zal denk ik van 1 inverter wat timestamps achter elkaar moeten zetten om de exacte posities van W,T en F en V te vinden. extra waarden zal echte puzzel worden gezien we niet ergens kunnen zien wat er geinterpreteerd wordt. Hoopte op de API van ema, maar die is dus kaput.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
dooiedodo schreef op woensdag 27 januari 2021 @ 14:45:
paar timestamps bij elkaar geraap en wat spaties.. zitten nog al wat cijfers die ik niet kan plaatsen.. hoop dat het kwh totalen zijn, maar dat kan ik nergens terug vinden
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
000001410000 0001226300 00001524 20210128134531 007000000END 408000094016 07 229 00500 107 000000180000000016321 00320003000873 010 002 00327003000863 010 00END
000001390000 0001200400 00001524 20210128134031 007000000END 408000094016 07 226 00500 107 000000180000000016391 00323003000876 010 002 00330003000867 010 00END
000002220000 0001929300 00001524 20210128140531 007000000END 408000094016 07 229 00499 107 000000300000000025341 00327005001344 016 002 00332004001351 016 00END
000000710000 0000648400 00001527 20210128160031 007000000END 408000094016 07 227 00500 106 000000090000000008771 00302001000478 005 002 00314001000455 005 00END
000002560000 0002165400 00001525 20210128142031 007000000END 408000094016 07 227 00500 107 000000330000000028611 00329005001517 018 002 00337005001526 018 00END
000002160000 0001858900 00001525 20210128142531 007000000END 408000094016 07 226 00500 107 000000290000000025081 00322003001332 015 002 00327003001335 016 00END
000001700000 0001473200 00001526 20210128144531 007000000END 408000094016 07 228 00499 107 000000220000000019721 00322003001051 012 002 00333003001047 012 00END
000001150000 0001021100 00001526 20210128145531 007000000END 408000094016 07 226 00499 107 000000150000000013631 00317002000732 008 002 00324002000718 008 00END
000000690000 0000623500 00001526 20210128150531 007000000END 408000094016 07 224 00500 107 000000090000000008281 00316002000453 005 002 00322002000428 005 00END
000001840000 0001590000 00001526 20210128152531 007000000END 408000094016 07 226 00499 107 000000240000000021551 00318002001147 013 002 00324002001145 013 00END
000000960000 0000847400 00001527 20210128153031 007000000END 408000094016 07 226 00499 107 000000130000000011461 00309001000618 007 002 00318001000600 007 00END
000000580000 0000551600 00001527 20210128153531 007000000END 408000094016 07 224 00499 107 000000070000000007381 00304001000405 004 002 00314001000380 004 00END
000000720000 0000666800 00001527 20210128154031 007000000END 408000094016 07 226 00499 107 000000090000000008941 00313001000487 005 002 00322001000464 005 00END
000000920000 0000829300 00001527 20210128155031 007000000END 408000094016 07 225 00499 106 000000120000000011021 00313002000595 007 002 00325001000577 006 00END
even de groepjes benoemen
kolom 1, geen idee. iets met kwh voor tijdseenheid?
kolom 2, idem
kolom 3, lifetime kwh
kolom 4, date time
kolom 5, nr of inverters END
kolom 6, inverterid
kolom 7, onilne inverters?
kolom 8, Voltage
kolom 9, frequentie
kolom 10, temperatuur
kolom 11, iets laatste digit moet aparte kolom zijn, das kanaal nummer 1
kolom 12, iets met time based kwh
kolom 13, huidige Watt channel 1
kolom 14, kanaal nr
kolom 15, iets met time based kwh
kolom 16, huidige watt channel 2 END
next inverter

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

1 incl. 18 bytes (incl. APS) onbekend (Wijkt erg af van jouw kolom)
2 12 bytes ECU-ID (wijkt erg af van jouw kolom)
3 eens (8 bytes)
4 eens
5 eens maar 3 bytes, dus 007 en de rest onbekend tot END
6 eens 12 bytes
7 staat bij mij ook op 7 maar ik heb 1 inverter
8 eens
9 eens
10 eens
11 opdelen in 8 bytes (current watt 1) 2 bytes onbekent en 8 bytes (current watt 2)

Ik heb rond zonsondergang gemeten vandaar de P waarden die bij mij naar 0 lopen. Bij mij zie ik:
18 bytes incl APS verder onbekend
12 bytes ECU-ID
8 bytes P1
2 bytes onbekend
8 bytes P2
2 bytes onbekend
10 bytes Life Time Energy
14 bytes Timestamp
3 bytes Aantal inverters
9 bytes incl. END onbekend
12 bytes Inverter ID
2 bytes altijd 07
3 bytes voltage
5 bytes frequentie
3 bytes temperatuur
8 bytes P1
2 bytes onbekend
8 bytes P2
45 bytes incl END onbekend

code:
1
2
3
4
5
6
7
8
< 16:47:26 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000006 00 00000005 90 0000000134 20210128164626 001 000000END xxxxxxxxxxxx 07 227 00499 108 00000005 00 00000005 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 16:52:27 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000006 00 00000005 99 0000000134 20210128165126 001 000000END xxxxxxxxxxxx 07 226 00499 108 00000005 00 00000005 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 16:57:28 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000004 00 00000003 98 0000000134 20210128165626 001 000000END xxxxxxxxxxxx 07 227 00499 108 00000003 00 00000003 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 17:02:29 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000002 00 00000002 73 0000000134 20210128170126 001 000000END xxxxxxxxxxxx 07 227 00500 108 00000001 00 00000002 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 17:07:30 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000002 00 00000002 03 0000000134 20210128170626 001 000000END xxxxxxxxxxxx 07 227 00500 107 00000001 00 00000001 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 17:12:31 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000000 00 00000000 89 0000000134 20210128171126 001 000000END xxxxxxxxxxxx 07 226 00499 107 00000000 00 00000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
< 17:17:33 xxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 00000000 00 00000000 03 0000000134 20210128171626 001 000000END xxxxxxxxxxxx 07 225 00500 107 00000000 00 00000000 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEND
                                 ECU-ID       P1          P2        LT Energy   Timestamp     #i            InverterID      V  Freq   T      P1         P2

[Voor 48% gewijzigd door Nibblebit op 28-01-2021 21:39]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
heb met jouw prog wel packets gezien van vanmiddag die ik verprutst had blijkbaar. Dus zo doe ECU catch up. Moeten we rekening mee houden in HA, dat ie niet ineens catchup waarden gaat opnemen als huidige waarden.

ow.. ik had wat data weggelaten... aps enzo

[Voor 9% gewijzigd door dooiedodo op 28-01-2021 21:33]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Links beneden niet vergeten proxy aan te zetten anders gaat er ook geen feedback van ema naar ecu. Voor het gemak even wat data gepost, je ziet de P1 en P2 waarden dalen rond zonsondergang. Op 8997 volgt er dan een afwijkend gedrag en dan weer de standaard data zoals je die de hele dag en ook nu ziet. Jammer, zonder cloud moet je deze data dan rond deze tijd toch faken.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
8997 is voornamelijk ' ik ben er' en zal wat firmware versie communiceren. Zal het vannacht ff aanlaten, kijjken wat ie rond 2u doet

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

For the record, vannacht weer een firmware update (releasenotes?): ECU_R_1.2.15A00
Bij mij rond 02:46 naar ecueu .apsema .com

[Voor 21% gewijzigd door Nibblebit op 29-01-2021 11:03]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
lol , die A al helemaal over het hoofd gezien ..

ik mis een 'daily total'in dit verhaal. Jij een idee ? zou bijna denken dat er een totaal per inverter of channel moet zijn waarvan de som op ecu dailty total moet komen

of er komen totalen per 5 minuten die opgeteld moeten worden. Echt jammer dat die ene cloud api niet meer werkt.

[Voor 20% gewijzigd door dooiedodo op 29-01-2021 16:56]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Vanmorgen bij zonsopkomst weer gemeten en iets wijzer. Hopelijk komt het overeen?

7 bytes incl APS onbekend
3 bytes checksum (lengte zend string)
8 bytes onbekend
12 bytes ECU-ID
8 bytes Watt som van alle inverters
10 bytes KwH som van alle inverters / 10000
2 bytes onbekend
10 bytes Life Time Energy
14 bytes Timestamp
3 bytes Aantal inverters
9 bytes incl. END onbekend

12 bytes Inverter ID*
2 bytes altijd 07
3 bytes voltage
5 bytes frequentie
3 bytes temperatuur
8 bytes P3
2 bytes onbekend
8 bytes P4
8 bytes onbekend
4 bytes online tijd inverter (minuten)
5 bytes onbekend
3 bytes panel 1 vermogen
17 bytes onbekend
3 bytes panel 2 vermogen
5 bytes incl. end of volgende inverter ID*

Dagtotaal per inverter moet eruit te halen zijn met deze parameters, ik heb het nog niet als compleet gegeven teruggevonden in de onbekende data per inverter.
Voor het dagtotaal in KwH komt P2 * online tijd / 1000 in de buurt maar wijkt iets af helaas.

[Voor 11% gewijzigd door Nibblebit op 30-01-2021 15:34]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

De ECU-R buffer in ieder geval goed onder controle, Als je na een pauze weer ECU-R data doorlaat naar EMA, dan wordt er een query uitgevoerd bij EMA (duurt even) en retourneert EMA de laatst ontvangen data timestamp naar de ECU-R. De ECU-R stuurt dan de ontbrekende tussenliggende dataframes naar EMA achter elkaar (dus zonder 5 minuten interval).

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
inderdaad.. eerste getal na ECUid is current watt totaal. Denk dat getal erna dan kwh voor tijdseenheid (5 minuten) is. dus dan zou dat terug te zien moeten zijn in huidige HA integratie , de stappen die daily total omhoog gaan. Nu we dat netjes tracken in HA, is grafiekje met de waardes per meetpunt zo te doen. mooie to do voor het weekend

kon het niet laten.. ff grafiekje laatste uur gedaan en die waardes gecheckt.. lijkt er behoorlijk op 2 decimaal achter komma

[Voor 15% gewijzigd door dooiedodo op 30-01-2021 14:07]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Nibblebit schreef op zaterdag 30 januari 2021 @ 14:00:
De ECU-R buffer in ieder geval goed onder controle, Als je na een pauze weer ECU-R data doorlaat naar EMA, dan wordt er een query uitgevoerd bij EMA (duurt even) en retourneert EMA de laatst ontvangen data timestamp naar de ECU-R. De ECU-R stuurt dan de ontbrekende tussenliggende dataframes naar EMA achter elkaar (dus zonder 5 minuten interval).
idd.. wel lastig om daar rekening mee te houden in HA integratie. moet je timestamps vergelijken voor je state update.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Even andere vraag... heb jij terug kunnen vinden hoe hij aan nieuwe firmware komt?
Zie wel 'ik heb deze versie', maar nergens een download actie. Zou dat ander domain zijn?
een van deze wsl
ecuna.apsema.com
ecueu.apsema.com

[Voor 13% gewijzigd door dooiedodo op 30-01-2021 14:14]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ja, dat was ecueu .apsema .com (bij mij)

Valt wel mee vwb die buffer als je het zonder cloud wilt doen. Het luistert niet zo nauw denk ik. Als je dus telkens ontvangen timestamp -5 minuten retourneert naar de ECU-R, zal de buffer niet oplopen omdat de ECU-R dan denkt dat die bij is met de cloud. Ik kan mijn prog daarop aanpassen om dit te bewijzen. Als je dezelfde tijd retourneert naar de ECU-R blijft die data sturen (ook grappig >:) )

[Voor 30% gewijzigd door Nibblebit op 30-01-2021 14:50]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

dooiedodo schreef op zaterdag 30 januari 2021 @ 14:03:
Denk dat getal erna dan kwh voor tijdseenheid (5 minuten) is. dus dan zou dat terug te zien moeten zijn in huidige HA integratie , de stappen die daily total omhoog gaan.
kon het niet laten.. ff grafiekje laatste uur gedaan en die waardes gecheckt.. lijkt er behoorlijk op 2 decimaal achter komma
Is dat dan niet vier decimalen? dus alle waarden bij elkaar optellen / 10000 ?

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Nibblebit schreef op zaterdag 30 januari 2021 @ 15:38:
[...]


Is dat dan niet vier decimalen? dus alle waarden bij elkaar optellen / 10000 ?
jawel, maar die zie ik niet in HA.. die heeft 2e decimaal, maar de juiste afronding komt dus goed overeen

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Morgen ga ik eens proberen om een dag los van de cloud te werken, dus alle responses terug naar de ECU geautomatiseerd laten verlopen. Ik stuur je later morgen nog even een PM voor de gegevens die ik standaardiseer en waarvan ik hoop dat die voor iedereen gelijk is.

Wat ik nog niet heb gevonden is de signaal sterkte terugrekenen: (signaal % / 100) * 255

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Off cloud werkt maar meer testen is nodig om stabiliteit vast te stellen. Na een paar uur off cloud terugschakelen op proxy zorgt ervoor dat de ECU-R nogmaals de data stuurt (vanwege retour oude timestamp uit EMA), daarna is het weer rustig. Tussenliggende waarden ontbreken op de cloud, dus de ECU buffer blijft leeg in off cloud.

Na alles uit te hebben gehad (bijvoorbeeld reboot HA) moet bij activeren de laatst terug geleverde timestamp aan de ECU worden teruggezonden om de opgebouwde buffer correct te legen anders blijft de ECU zenden. Daarmee wordt ook de ontbrekende data terug geleverd aan HA.

[Voor 31% gewijzigd door Nibblebit op 01-02-2021 16:34]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
ik heb mooi tcp proxy ding van internet gekopieerd. Was wat syntax outdated, maar gelukkig waren errors goed te herleiden en loopt het stabiel. (BTW, beste opbrengstdag sinds november hier)
alle data punten opgevangen en EMA site is braaf up to date.
Heb wat zitten denken over de updates naar HA. als daily total niet zelf optelt, weet ik niet of HA dat wel goed kan, ken verder geen sensors die cumulatief doen. Als dat zo is, moet in in dit script de runing total van de dag bij gehouden worden. Niet onmogeiljk, maar extra uitdaging.
Deze data maakt wel weer meer mogelijk om panelen individueel totaal opbrengst per dag in de gaten te houden. In mijn oost-west opstelling vind ik die wel interessant nl.

Ik verwacht niet signaal sterkte van zigbee hier in terug te vinden, dit is echt opbrengst gerelateerd. Zigbee issues worden met ECU app geadresseerd wsl.

Ik zie nog 3 mogelijkheden voor HA integratie:
1 - python HA webhooks api gebruiken
2 - python HA mqtt
3 - python file/html laten schrijven en HA met polling data ophalen. (wat meest op huidige HA integratie lijkt, maar dan zonder tcp port connect, direct file of http traffic.

voor de geinteresseerden, mijn huidige python die data naar file schrijft:

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
#!env python
# Set these to control bind host and port for tcp server
BIND_HOST, BIND_PORT = "192.168.1.32", 8995

# Set these to control where you are connecting to
HOST, PORT = "60.190.131.190", 8995

import socket
import socketserver

class SockHandler(socketserver.BaseRequestHandler):
    """
    Request Handler for the proxy server.
    Instantiated once time for each connection, and must
    override the handle() method for client communication.
    """

    def handle(self):
        # self.request is the TCP socket connected to the client
        self.data = self.request.recv(1024)
        print( 'Passing data from: ' , format(self.client_address[0]))
        print (self.data)
        string= str(self.data)
        f = open("ecuclouddata.txt", "a")
        f.write(string)
        f.write("\n")
        f.close()

        # Create a socket to the localhost server
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # Try to connect to the server and send data
        try:
            sock.connect((HOST, PORT))
            sock.sendall(self.data)
            # Receive data from the server
            while 1:
                received = sock.recv(1024)
                if not received: break
                # Send back received data
                self.request.sendall(received)
        finally:
            sock.close()

if __name__ == '__main__':
    # Create server and bind to set ip
    myserver = socketserver.TCPServer((BIND_HOST, BIND_PORT), SockHandler)

    # activate the server until it is interrupted with ctrl+c
    myserver.serve_forever()

[Voor 5% gewijzigd door dooiedodo op 31-01-2021 16:05]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Wat ik nu herken op die 8997 poort, aan het einde van de dag , report inverters die offline gaan en s'ochtends welke online komen. Niet heel spannend lijkt het zo.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Inderdaad, zelfs al blijf je nog steeds de standaard string terugsturen, de ECU blijft gewoon door werken. Komen de standaard send strings overeen met die van jou @dooiedodo ?

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
je bedoelt de poort 8997 string of de power per inverter?

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
standaard power posts "APS18AA702AAAAAAA1 ", allemaal zelfde lengte. Die ik wel eens met een QS1 string zou willen vergelijken, gezien die meer kanalen heeft zou daar p3 en p4 bij moeten komen.


Verder nog wat
APS18AA614AAAAAAA1
en
APS18AA161AAAAAAA1

  • Termy
  • Registratie: September 2001
  • Laatst online: 00:06

Termy

valt er nog wat te fragge?

Ik hou dit topic met een schuin oog in de gaten en heb QS1 omvormers. Welk script zou ik kunnen draaien om dat te testen @dooiedodo (graag zonder risico op het verpesten van instellingen)?

-=[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. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.


  • WackoH
  • Registratie: November 2012
  • Laatst online: 11-04 21:09
Zelfde als @Termy ;-)
Dus als ik iets kan testen op de ECU/QS1, laat maar even weten in dit draadje

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Wat je voorkeur heeft. Windows prog of python, of wireshark. Maakt allemaal niet zo heel veel uit. Belangrijkste is de mogeljikheid dat je DNS lokaal kan beinvvloeden. Zonder dat, doet geen 1 methode iets.
De truuk is de ECU de traffic naar lokale IP adress te sturen ipv internet IP wat hij ophaalt via dns query. Ik heb het gedaan met pihole, daar kan je direct lokale DNS records toevoegen.

Als je pihole hebt op een raspberry, is mijn laatste python makkelijkst. Die draai je met python3 commando op command line en zie je berichten langs komen. Wel minimaal 2 instanties draaien, want traffic komt op 2 poorten langs. 8995 en 8996.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Voor 8995 en 8996 is het wel ok, gewoon de 101 met timestamp.
Op 8997 ontvang ik APS1300051 en nog wat, ik retourneer APS13AAA52 en nog wat, dat zou dus afwijken en niet generiek zijn aangezien het afwijkt van jouw APS18AA70 etc. Mogelijk is het wel generiek te maken maar moet de ontvangen string nog worden omgevormd. De 51 en 52 die hierboven staan geven de lengte aan van de ontvangen en verzonden string.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
tja.. da's gewoon meer echoen dan fixed values programmeren als ik het zo bekijk. 702 is idd lengte ook bij mij.. 18 of 13 is wel apart verschil, jij had ook yc600 toch?

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ja, klopt 1 YC600 Ik stuur je nog even de uitgaande (van ECU) en inkomende (van EMA). Als je dat tegen jouw waarden aan kunt houden, dan is er wellicht een patroon te herkennen om de response om te vormen.

[Voor 84% gewijzigd door Nibblebit op 02-02-2021 21:10]


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
top.. lama zien ;)

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Voor de trouwe lezers :) de status. We hebben drie mogelijke oplossingen verkend om data uit de ECU-R te krijgen:
1. De uitleesmethode die de ECUapp ook gebruikt (functioneert alleen als de ECU-R via Wifi op het LAN is aangesloten).
2. De "meekijk/proxy" methode van data die door de ECU naar de EMA wordt verzonden
3. Poort 4540 uitlezen.

Methode 1 is met een extensie in GitHub voor Home Assistant beschikbaar en werkt behoorlijk goed (met ingebouwde foutafhandeling). Deze extensie werkt voor de ECU-R in combinatie met de YC600 en QS1 (voor YC1000 gebruikers kan de extensie waarschijnlijk ook compatible worden gemaakt als protocol info wordt aangeleverd).
Methode 2 is niet verder uitgewerkt naar een extensie maar werkt ook en vergt echter routering van DNS verkeer. Hiermee kun je ook cloud onafhankelijk werken omdat je EMA nabootst.
Methode 3 wordt nog besproken in het HA forum. Deze werkt via poort 4540 die uitgelezen kan worden en voor 1 minuut met een interval van vier minuten data afgeeft. Dit lijkt bij metingen een stabiele en niet belastende oplossing te zijn die eenvoudiger is dan methode 1. Deze derde bevat minder data dan de eerste methode waardoor deze minder aantrekkelijk is om uit te werken. Het is ook niet zeker dat met elke firmware update deze derde methode beschikbaar blijft. Methode 1. is wat dat betreft toekomst zekerder omdat deze nauw verbonden is aan de ECUapp oplossing en daarmee veel informatie kan bevatten zoals signaalsterkte.

[Voor 37% gewijzigd door Nibblebit op 11-03-2021 08:50]


  • peterkwek
  • Registratie: Oktober 2020
  • Laatst online: 13-03-2021
Goedendag,
Waar kan ik meer info vinden over de 4540 port methode. Sinds vorige week in het bezit van een APsystem systeem met ECU-R.
Gr. Peter

  • Fantastic_fox
  • Registratie: Maart 2010
  • Laatst online: 17:31
@Nibblebit ik ben maar een leek maar kun je hiermee ook de koppeling naar pvoutput op poten zetten?

APS QS1 en Y600 3*340w 38graden en 3*340w 20Graden alles naar het Oosten 92 graden. Zuid set sma sunnyboy 2100b 8*255w 38 graden 178graden zuid


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

@peterkwek Ik zie te weinig mogelijkheden in de 4540 methode maar mocht je er toch mee willen experimenteren, er staat wat info over: https://community.home-as...nverters-data-pull/260835

@Fantastic_fox Je zult een platform moeten vinden waarop iets continue draait en via een post naar PVOutput data stuurt. Ik zie dat er software is voor de Raspberry Pi. Als je een ECU-R hebt kun je (ook als particulier) inschrijven op apsystemsema.com dan zie je ook al je data automatisch die de ECU-R via internet verzend naar APSystems. PVoutput is in mijn beleving maar een wazige site zonder duidelijk eigenaarschap. Kijk hier voor DIY registratie op de APSystemsEMA website: https://emea.apsystems.co...-account-registration.pdf

  • WackoH
  • Registratie: November 2012
  • Laatst online: 11-04 21:09
Ik zag vandaag bij inloggen op de EMA site van APS dat op 21 maart van 3:00~6:00 CET (= ook Nederlandse tijd) onderhoud wordt gepleegd.

Dus als het goed is merken we er niets van (want donker dus omvormers niet actief) en hopelijk verandert er niets voor de oplossingen die jullie hebben bedacht.

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
en anders weet je dat ze meelezen.

Acties:
  • +2Henk 'm!

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ik denk dat we vooral bij een ECUapp update moeten opletten want daar is de functionaliteit aan gekoppeld.
For the record we zitten nu op versie 1.10.1 (handig om hier vast te leggen want de ECU-R firmware versies rollen ook maar door, momenteel: ECU_R_1.2.16T40).

[Voor 43% gewijzigd door Nibblebit op 22-03-2021 00:25]


  • Kochmeister
  • Registratie: Augustus 2014
  • Laatst online: 18-04 17:56
Hallo, sinds kort heb heb ook ik QS1 en de YC600 op het dak liggen.
Ik ben aan het stoeien gegaan met de "methode-1". Als ik het test.py run op mijn PI dan levert deze netjes de data aan! Mooi werk!

Echter zou ik graag de data in Domoticz importeren op een of andere manier. Echter zijn mijn programmeer kunsten in python erg beperkt.
Is er iemand die me op weg kan helpen de data in Domoticz te krijgen?
Of misschien heeft iemand dat al voor elkaar en wil dat wellicht delen?

Vast al bekend hoe de output er uit ziet, maar dit is hoe het er bij mij uit ziet:


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
pi@raspberrypi:~$ python3 ~/config/custom_components/apsystems_ecur/test.py
[OK] Timestamp: 2021-03-24 15:29:38 Current Power: 977
{'current_power': 977,
 'ecu_id': 'idididid',
 'inverter_qty': 4,
 'inverters': {'aaaaa': {'channel_qty': 2,
                                'frequency': 49.9,
                                'model': 'YC600',
                                'online': True,
                                'power': [111, 171],
                                'signal': 74,
                                'temperature': 25,
                                'uid': 'aaaaa',
                                'unknown': '01',
                                'voltage': [231, 231]},
               'bbbbbb': {'channel_qty': 4,
                                'frequency': 50.0,
                                'model': 'QS1',
                                'online': True,
                                'power': [162, 164, 109, 108],
                                'signal': 74,
                                'temperature': 32,
                                'uid': 'bbbbbb',
                                'unknown': '03',
                                'voltage': [233]},
               'ccccc': {'channel_qty': 4,
                                'frequency': 49.9,
                                'model': 'QS1',
                                'online': True,
                                'power': [35, 35, 40, 42],
                                'signal': 74,
                                'temperature': 24,
                                'uid': 'ccccc',
                                'unknown': '03',
                                'voltage': [229]},
               'ddddd': {'channel_qty': 4,
                                'frequency': 0.0,
                                'model': 'QS1',
                                'online': True,
                                'power': [0, 0, 129, 130],
                                'signal': 0,
                                'temperature': 0,
                                'uid': 'ddddd',
                                'unknown': '03',
                                'voltage': [0]}},
 'lifetime_energy': 110.0,
 'timestamp': '2021-03-24 15:29:38',
 'today_energy': 19.32}
Sleeping for 60 sec

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

@Kochmeister Op basis van de bevindingen/vooronderzoek in dit forum zijn we op een gegeven moment naar het HomeAssistant forum gegaan, daar vonden we een programmeur die voor ons een integratie heeft gemaakt. Wellicht is het voor jou ook handig om een draadje te starten in het Domoticz forum. De source van de HomeAssistant integratie vind je hier: https://github.com/ksheumaker/homeassistant-apsystems_ecur

  • jerh
  • Registratie: Mei 2015
  • Laatst online: 19:59
WackoH schreef op vrijdag 19 maart 2021 @ 15:36:
Ik zag vandaag bij inloggen op de EMA site van APS dat op 21 maart van 3:00~6:00 CET (= ook Nederlandse tijd) onderhoud wordt gepleegd.

Dus als het goed is merken we er niets van (want donker dus omvormers niet actief) en hopelijk verandert er niets voor de oplossingen die jullie hebben bedacht.
toch lijkt er iets veranderd te zijn. Zie ook melding @Ophidian. Het is gemaakt door @MethinX .

Bij mij werkt het niet meer sinds afgelopen zaterdag. Ben er ook geen held in, dus hoop dat iemand anders dat wel is.

  • WackoH
  • Registratie: November 2012
  • Laatst online: 11-04 21:09
O0k voor wat betreft de de APS website is er het afgelopen weekend (vrijdag was er ook weer een melding) meer is veranderd dan de week ervoor.
Die site is nu veel sneller geworden.
Maar natuurlijk ontzettende jammer dat jullie of jouw oplossing nu niet meer werkt.
Ik hoop dat het toch nog gaat lukken om bv. een Domoticz plugin te maken. Die heb ik nu werkend voor Goodwe en Growatt.

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
jerh schreef op maandag 29 maart 2021 @ 17:25:
[...]


toch lijkt er iets veranderd te zijn. Zie ook melding @Ophidian. Het is gemaakt door @MethinX .

Bij mij werkt het niet meer sinds afgelopen zaterdag. Ben er ook geen held in, dus hoop dat iemand anders dat wel is.
Waar staat die domoticxz code?

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Wat werkt er nu niet meer, geloof dat ik eea niet helemaal volg op dit moment.

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
dooiedodo schreef op maandag 29 maart 2021 @ 21:10:
Wat werkt er nu niet meer, geloof dat ik eea niet helemaal volg op dit moment.
Onze code werkt nog gewoon, alleen heeft iemand code geschreven voor domoticxz en die zou niet meer werken sinds de update. Mogelijk zit die op een API en is die wel om zeep.

[Voor 7% gewijzigd door Dapdodo op 29-03-2021 21:12. Reden: typo]


  • WackoH
  • Registratie: November 2012
  • Laatst online: 11-04 21:09
Ah, OK. Dan valt het nog wel wel mee dus. Excuus voor het misverstand

Acties:
  • +1Henk 'm!

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Dapdodo schreef op maandag 29 maart 2021 @ 21:11:
[...]

Onze code werkt nog gewoon, alleen heeft iemand code geschreven voor domoticxz en die zou niet meer werken sinds de update. Mogelijk zit die op een API en is die wel om zeep.
enig idee waar die code gedeeld wordt? ben wel nieuwsgierig nl

lama .. je vraagt hetzelfde zie ik nu.. beetje traag

[Voor 8% gewijzigd door dooiedodo op 29-03-2021 21:21]


  • jerh
  • Registratie: Mei 2015
  • Laatst online: 19:59
Dapdodo schreef op maandag 29 maart 2021 @ 21:09:
[...]

Waar staat die domoticxz code?
https://github.com/willemstoker/aps-to-pvoutput

geschreven door tweaker @MethinX, heb ik al eerder in dit topic gemeldt.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
jerh schreef op maandag 29 maart 2021 @ 22:11:
[...]

https://github.com/willemstoker/aps-to-pvoutput

geschreven door tweaker @MethinX, heb ik al eerder in dit topic gemeldt.
check.. dat script kende ik wel, die gebruikt de EMA api om data te laden naar pvoutput. Hier wilden we graag lokaal data harvesten, precies om die reden dat je cloud api zomaar kapot kan zien gaan.
Ben even kwijt, maar er waren 2 cloud api's, zijn ze nu beide overleden?

  • Kochmeister
  • Registratie: Augustus 2014
  • Laatst online: 18-04 17:56
Na wat knutselen krijg ik de data in domoticz.
Ik ben geen python specialist. Maar "methode1" heeft een test.py die je commandline op een PI kan draaien. (mijn output in eerdere post!)
De output hiervan stuur ik naar dummy sensoren die een IDX nummer in domoticz hebben.
Via een HTML call stuur ik die naar domoticz.
De crontab heb ik aangepast zodat het python script start bij een reboot van de PI.
Nogmaals, ik ben geen specialist, maar handig genoeg met google, ander scripts interpreteren die interactie met domoticz hebben en wat copy-pasten om iets dat werkt te maken.
Er komt vast critiek over de programmeer methode, dat is denk ik niet het netste. Maar ik wilde het toch delen voor mensen die wellicht ook wel wat handigheid hebben om het in domoticz aan de gang te krijgen.

Zelf invullen
IP adres van de ECU-R wifi (zorg dat deze een vast IP heeft)
IP adres van de PI waar domoticz op draait
De inverternummers (let op, in mijn geval de 1x2 kanaals en 3x4 kanaals) aanpassen naar behoefte
De IDX nummers die overeen komen met de dummy sensoren in domoticz.
Crontab voorbeeld:
@reboot python3 /home/pi/config/custom_components/apsystems_ecur/test.py


verder garantie tot aan de deur O-)
ik wilde het toch even delen, en succes voor de gene die de uitdaging aan gaat. d:)b

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#!/usr/bin/env python3

from APSystemsECUR import APSystemsECUR
import time
import asyncio
import urllib.request
import urllib.parse
import urllib
from pprint import pprint


ecu_ip = "localwifiIP"
sleep = 60

url = 'http://domoticzPI-IP:8080/json.htm?'
puntcomma = '\u003B'

loop = asyncio.get_event_loop()
ecu = APSystemsECUR(ecu_ip)

while True:
        try:
                data = loop.run_until_complete(ecu.async_query_ecu())
                #pprint(data)

                today_energy_kwh = str(data.get('today_energy')*1000)
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 541, 'svalue': (today_energy_kwh)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
                
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 566, 'svalue': data.get('current_power')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     
                #print(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')  
                
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 536, 'svalue': data.get('timestamp')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
#inverter #Inverternumber1# values
                inverters = data.get('inverters')
                Inverter#Inverternumber1# = inverters.get('#Inverternumber1#')
                Inverter#Inverternumber1#power = Inverter#Inverternumber1#.get('power')
                #print(f"[OK] Inverter#Inverternumber1#online: {Inverter#Inverternumber1#.get('online')} Inverter#Inverternumber1#temperature: {Inverter#Inverternumber1#.get('temperature')} Inverter#Inverternumber1#power: {Inverter#Inverternumber1#.get('power')}")

                from array import *
                array1 = array('i', Inverter#Inverternumber1#power)
                Inverter#Inverternumber1#power1 = (array1[0])
                Inverter#Inverternumber1#power2 = (array1[1])
                
        #to domoticz
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 551, 'svalue': (Inverter#Inverternumber1#power1)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 552, 'svalue': (Inverter#Inverternumber1#power2)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 543, 'svalue': Inverter#Inverternumber1#.get('temperature')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
                if Inverter#Inverternumber1#.get('online')==True:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 544, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
                else:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 544, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
                    
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))

#inverter #Inverternumber2# values              
                
                Inverter#Inverternumber2# = inverters.get('#Inverternumber2#')
                Inverter#Inverternumber2#power = Inverter#Inverternumber2#.get('power')
                #print(f"[OK] Inverter#Inverternumber2#online: {Inverter#Inverternumber2#.get('online')} Inverter#Inverternumber2#temperature: {Inverter#Inverternumber2#.get('temperature')} Inverter#Inverternumber2#power: {Inverter#Inverternumber2#.get('power')}")

                from array import *
                array1 = array('i', Inverter#Inverternumber2#power)
                Inverter#Inverternumber2#power1 = (array1[0])
                Inverter#Inverternumber2#power2 = (array1[1])
                Inverter#Inverternumber2#power3 = (array1[2])
                Inverter#Inverternumber2#power4 = (array1[3])

        #to domoticz
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 557, 'svalue': (Inverter#Inverternumber2#power1)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 558, 'svalue': (Inverter#Inverternumber2#power2)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 559, 'svalue': (Inverter#Inverternumber2#power3)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 560, 'svalue': (Inverter#Inverternumber2#power4)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     
                
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 545, 'svalue': Inverter#Inverternumber2#.get('temperature')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
                if Inverter#Inverternumber2#.get('online')==True:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 546, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
                else:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 546, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
                    
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))

#inverter #Inverternumber3# values  
                Inverter#Inverternumber3# = inverters.get('#Inverternumber3#')
                Inverter#Inverternumber3#power = Inverter#Inverternumber3#.get('power')
                #print(f"[OK] Inverter#Inverternumber3#online: {Inverter#Inverternumber3#.get('online')} Inverter#Inverternumber3#temperature: {Inverter#Inverternumber3#.get('temperature')} Inverter#Inverternumber3#power: {Inverter#Inverternumber3#.get('power')}")

                from array import *
                array1 = array('i', Inverter#Inverternumber3#power)
                Inverter#Inverternumber3#power1 = (array1[0])
                Inverter#Inverternumber3#power2 = (array1[1])
                Inverter#Inverternumber3#power3 = (array1[2])
                Inverter#Inverternumber3#power4 = (array1[3])
                
        #to domoticz
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 564, 'svalue': (Inverter#Inverternumber3#power1)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 563, 'svalue': (Inverter#Inverternumber3#power2)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 562, 'svalue': (Inverter#Inverternumber3#power3)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 561, 'svalue': (Inverter#Inverternumber3#power4)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 549, 'svalue': Inverter#Inverternumber3#.get('temperature')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
                
                if Inverter#Inverternumber3#.get('online')==True:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 550, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
                else:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 550, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
                    
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))

#inverter #Inverternumber4# values                              
                Inverter#Inverternumber4# = inverters.get('#Inverternumber4#')
                Inverter#Inverternumber4#power = Inverter#Inverternumber4#.get('power')
                #print(f"[OK] Inverter#Inverternumber4#online: {Inverter#Inverternumber4#.get('online')} Inverter#Inverternumber4#temperature: {Inverter#Inverternumber4#.get('temperature')} Inverter#Inverternumber4#power: {Inverter#Inverternumber4#.get('power')}")
                
                from array import *
                array1 = array('i', Inverter#Inverternumber4#power)
                Inverter#Inverternumber4#power1 = (array1[0])
                Inverter#Inverternumber4#power2 = (array1[1])
                Inverter#Inverternumber4#power3 = (array1[2])
                Inverter#Inverternumber4#power4 = (array1[3])
        
        #to domoticz
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 553, 'svalue': (Inverter#Inverternumber4#power1)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     
                
                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 554, 'svalue': (Inverter#Inverternumber4#power2)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 555, 'svalue': (Inverter#Inverternumber4#power3)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 556, 'svalue': (Inverter#Inverternumber4#power4)}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')     

                getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 548, 'svalue': Inverter#Inverternumber4#.get('temperature')}
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
                if Inverter#Inverternumber4#.get('online')==True:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 547, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
                else:
                    getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 547, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
                    
                webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
    
        except Exception as err:
                print(f"[ERROR] {err}")

        #print(f"Sleeping for {sleep} sec")
        time.sleep(sleep)

  • indit
  • Registratie: Januari 2006
  • Laatst online: 14:06
dooiedodo schreef op maandag 29 maart 2021 @ 22:50:
[...]

check.. dat script kende ik wel, die gebruikt de EMA api om data te laden naar pvoutput. Hier wilden we graag lokaal data harvesten, precies om die reden dat je cloud api zomaar kapot kan zien gaan.
Ben even kwijt, maar er waren 2 cloud api's, zijn ze nu beide overleden?
De EMA api lijkt niet meer te werken, beiden overleden ;).
Ik ben geen python scripter, maar ik dacht ik ga jouw test.py script en die van https://github.com/willemstoker/aps-to-pvoutput combineren.

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
#!/usr/bin/env python3

from APSystemsECUR import APSystemsECUR
import time
import asyncio
import requests
from datetime import date
from pprint import pprint
from datetime import datetime

ecu_ip = 'ECU_R_IP'

PV_OUTPUT_SYSTEMID = 'SYSTEMID'
PV_OUTPUT_APIKEY = 'APIKEY'
PVOUTPUT_URL = 'http://pvoutput.org/service/r2/addstatus.jsp'

sleep = 60

loop = asyncio.get_event_loop()
ecu = APSystemsECUR(ecu_ip)

def getDateStringOfToday():
    return date.today().strftime("%Y%m%d");

def sendUpdateToPVOutput(timestringminutes, powerstring):
    pvoutputdata = {
      'd': getDateStringOfToday(),
      't': timestringminutes,
      'v2': powerstring
    }

    headerspv = {
      'X-Pvoutput-SystemId': PV_OUTPUT_SYSTEMID,
      'X-Pvoutput-Apikey': PV_OUTPUT_APIKEY
    }

    responsepv = requests.post(PVOUTPUT_URL, headers=headerspv, data=pvoutputdata)

    print ("Response: " + responsepv.text + " updated: " + timestringminutes + " power: " + powerstring )


while True:
    try:
        data = loop.run_until_complete(ecu.async_query_ecu())
        apstime = data.get('timestamp')
        apscp = str(data.get('current_power'))

        cvtime = (datetime.strptime(apstime, "%Y-%m-%d %H:%M:%S"))
        timestring = (cvtime.strftime("%H:%M"))
        sendUpdateToPVOutput(timestring, apscp)


    except Exception as err:
        print(f"[ERROR] {err}")

    exit()
#    print(f"Sleeping for {sleep} sec")
 #   time.sleep(sleep)


Hiermee kan je dus weer naar PVoutput iets sturen. Bij mij leest dit trouwens de QS1 uit.
Mijn code kan wel wat verbetering gebruiken (oa de sleep), maar het werkt wel in de basis met een cronjob.
Zelf gebruik ik nog geen HA, dat wil ik later wel gaan proberen.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ik lees dit in de FAQ op de APsystems website:

De API-calls die momenteel beschikbaar zijn, omvatten vijf calls op systeemniveau. Voor toegang tot de API zijn een unieke gebruikersnaam en wachtwoord nodig. Op verzoek, via APsystems support pagina, kan dit worden ingediend. Houdt u rekening met een jaarlijkse abonnementsgeld bijdrage. De bestaande calls zijn als volgt:

Actueel vermogen
Dagelijkse productie
Maandelijkse productie
Jaarlijkse productie
Totale productie

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
jaarlijkse abonnementsgeld
W0t??

Zooo blij met lokaal data nu wederom 🤙

  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
Goedemorgen leden!

Is er nog iemand actief bezig geweest om dit vandaag de dag nog werkend te krijgen?

Ik heb sinds gister een raspberry pi 4 geïnstalleerd en ben totaal nieuw in deze wereld, ik heb op diverse forums en of pagina's informatie gevonden maar zag dat het sinds een aantal weken niet meer mogelijk is om voorgaande oplossingen werkend te krijgen.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Project van deze thread werkt nog als zonnetje..
Daar en tegen de public API van aps is niet meer werkend.
Dus hier zit je goed, kijk je voor home assistent?

  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
Ik ben op dit gebied nog zo maagd als ik maar zijn kan, ik had gedacht dat ik dit binnen de software van domoticz kon laten werken maar ben nu weer een stapje verder of beter gezegd nog meer kennis op gedaan met je antwoord over 'home assistance'

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Heb ook ooit domoticz gehad. Ben wat gecharmeerder van home assistant. INstalleer gewoon beide en kijk wat jou ligt. (ga hier verder geen vs battle starten voor platformen :-))

Data fetch via python is voor beide bruikbaar. De cusotm integratie voor home assistent die hier https://github.com/ksheumaker/homeassistant-apsystems_ecur staat, werkt voor aardig wat mensen al, zonder verdere kennis te installeren.

Acties:
  • +1Henk 'm!

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Ik heb een fork gecreëerd met mogelijk support voor de YC1000 (in combinatie met de ECU-R). https://github.com/HAEdwin/homeassistant-apsystems_ecur
Als iemand met deze combi zou willen testen op HA, graag!

  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
dooiedodo schreef op zaterdag 10 april 2021 @ 11:29:
Heb ook ooit domoticz gehad. Ben wat gecharmeerder van home assistant. INstalleer gewoon beide en kijk wat jou ligt. (ga hier verder geen vs battle starten voor platformen :-))

Data fetch via python is voor beide bruikbaar. De cusotm integratie voor home assistent die hier https://github.com/ksheumaker/homeassistant-apsystems_ecur staat, werkt voor aardig wat mensen al, zonder verdere kennis te installeren.
Blijkbaar zit ik onder de grens van mensen met de benodigde kennis. Mij lukt het niet helaas.. Ik zie de bomen door het bos niet meer!

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

@Rvde Wat lukt niet? Wat probeer je te doen? Wie weet kunnen we helpen de kennis te vergroten :)

  • Ophidian
  • Registratie: Oktober 2004
  • Laatst online: 19:41
indit schreef op donderdag 1 april 2021 @ 10:27:
[...]


De EMA api lijkt niet meer te werken, beiden overleden ;).
Ik ben geen python scripter, maar ik dacht ik ga jouw test.py script en die van https://github.com/willemstoker/aps-to-pvoutput combineren.

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
#!/usr/bin/env python3

from APSystemsECUR import APSystemsECUR
import time
import asyncio
import requests
from datetime import date
from pprint import pprint
from datetime import datetime

ecu_ip = 'ECU_R_IP'

PV_OUTPUT_SYSTEMID = 'SYSTEMID'
PV_OUTPUT_APIKEY = 'APIKEY'
PVOUTPUT_URL = 'http://pvoutput.org/service/r2/addstatus.jsp'

sleep = 60

loop = asyncio.get_event_loop()
ecu = APSystemsECUR(ecu_ip)

def getDateStringOfToday():
    return date.today().strftime("%Y%m%d");

def sendUpdateToPVOutput(timestringminutes, powerstring):
    pvoutputdata = {
      'd': getDateStringOfToday(),
      't': timestringminutes,
      'v2': powerstring
    }

    headerspv = {
      'X-Pvoutput-SystemId': PV_OUTPUT_SYSTEMID,
      'X-Pvoutput-Apikey': PV_OUTPUT_APIKEY
    }

    responsepv = requests.post(PVOUTPUT_URL, headers=headerspv, data=pvoutputdata)

    print ("Response: " + responsepv.text + " updated: " + timestringminutes + " power: " + powerstring )


while True:
    try:
        data = loop.run_until_complete(ecu.async_query_ecu())
        apstime = data.get('timestamp')
        apscp = str(data.get('current_power'))

        cvtime = (datetime.strptime(apstime, "%Y-%m-%d %H:%M:%S"))
        timestring = (cvtime.strftime("%H:%M"))
        sendUpdateToPVOutput(timestring, apscp)


    except Exception as err:
        print(f"[ERROR] {err}")

    exit()
#    print(f"Sleeping for {sleep} sec")
 #   time.sleep(sleep)


Hiermee kan je dus weer naar PVoutput iets sturen. Bij mij leest dit trouwens de QS1 uit.
Mijn code kan wel wat verbetering gebruiken (oa de sleep), maar het werkt wel in de basis met een cronjob.
Zelf gebruik ik nog geen HA, dat wil ik later wel gaan proberen.
Held!! Mijn pvoutput werkt weer! Had al even zelf wat geprobeerd met combinatie, maar niet gelukt. You rock! _/-\o_

ZO SE LG Neon 2 - 5,76kWp - Shade: Low - PVoutput | NOZW APS QS1 - CSun 320 - 3,84kWp - Shade: High - PVoutput | Corsa-E GS-Line | Volvo XC40 Pure Electric Ultimate


  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
Nibblebit schreef op maandag 12 april 2021 @ 22:46:
@Rvde Wat lukt niet? Wat probeer je te doen? Wie weet kunnen we helpen de kennis te vergroten :)
Het heeft een geruime tijd gekost om überhaupt tot het punt te komen om bestanden te kunnen uploaden en het script aan te passen, alleen wat ik in het script moet zetten zou ik niet weten waar en op welke volgorde.

Graag zou ik willen weten waar ik wat moet zetten in het YAML bestand.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Mocht je het nog niet gedaan hebben, deze add-on is bijna onmisbaar
https://tweakers.net/i/DA-98GwhhtTrXxW7rboOT4C8M0k=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/FSDpfHcfut1CwZU86QPFkwFZ.jpg?f=user_large

Met de File Editor navigeer je naar de folder en open je configuration.yaml
Aan het bestaande bestand met ongetwijfeld wat andere teksten voeg je de volgende tekst toe (maakt niet uit waar, er hoeft geen volgorde in te zitten:

apsystems_ecur:
host: 172.16.0.61 (<< maar dan het IP adres van jouw WiFi connected ECU-R)
Het zou dan op deze wijze in configuration.yaml moeten staan.


Om de configuratie te laden reboot ik altijd de host (Raspberry Pi) om er zeker van te zijn dat alles juist wordt gestart.

Als je eerder alles hebt gelezen (https://github.com/ksheumaker/homeassistant-apsystems_ecur) en uitgevoerd wat bij Setup en Configuration staat, zou je een aantal nieuwe entiteiten moeten zien die je op je dashboard kunt plaatsen.


HA vergt zeker in het begin wat doorzettingsvermogen maar na verloop van tijd zul je merken dat je steeds meer ontdekt en begrijpt. Succes!

[Voor 12% gewijzigd door Nibblebit op 15-04-2021 07:42]


  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
Dankjewel voor het antwoord!

Heb het zojuist gedaan zoals jij hebt beschreven en dit is het resultaat:
Invalid config for [apsystems_ecur]: value should be a string for dictionary value @ data['apsystems_ecur']['host']. Got ['192.168.1.39']. (See /config/configuration.yaml, line 15).
Heb via 'Fing' het IP adres van de ECU-R gevonden en deze gebruikt maar helaas een foutmelding.

EDIT:

Domme fout, Moest de [ ] weghalen.

Heb nu de data naar voren weten te toveren, heb alleen nog wel deze error in mijn log.
Logger: homeassistant.setup
Source: setup.py:309
First occurred: 22:09:17 (1 occurrences)
Last logged: 22:09:17

Unable to prepare setup for platform apsystems_ecur.binary_sensor: Platform not found (No module named 'custom_components.apsystems_ecur.binary_sensor').
Kun jij mij trouwens ook helpen met de config van de slimme meter?

[Voor 38% gewijzigd door Rvde op 16-04-2021 22:17]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Als je met file editor kijkt moet je deze folder hebben in je config folder: "custom_components"

Vervolgens in die folder:
https://tweakers.net/i/87K8QhSipmftR0r0CYifaPLZJPg=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/rLgzVHYbrpDQsB7gg9sYW6Ni.jpg?f=user_large
en in die folder:

In de bestanden op deze folder hoef je helemaal niet te wijzigen.

[Voor 4% gewijzigd door Nibblebit op 16-04-2021 23:26]


  • Rvde
  • Registratie: September 2014
  • Laatst online: 08-06 11:48
Het is gelukt, althans gisteravond stond alles er in en kon ik een hoop naar voren halen, helaas staat er bij diverse onderdelen ook
Energy Consumption (total): Onbekend
Toen ben ik wat veder gaan rommelen met Duckdns maar dat heeft geleid tot het resultaat dat ik mijn HA helemaal niet meer kon bereiken, heb vanochtend HA opnieuw geïnstalleerd en alles ingesteld zoals beschreven alleen op een of andere manier mis ik nu bepaalde dingetjes.

Dit bijvoorbeeld, gister kon ik het nog wel krijgen en nu niet meer


Is het trouwens ook mogelijk om de kosten te zien?

[Voor 8% gewijzigd door Rvde op 17-04-2021 10:24]


  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

APSystem ECU-C testers gezocht voor de Home Assistant custom integration.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Mijn ECUR wil niet meer luisteren naar de APS commandos. Krijg er geen data meer uit. als ik lokale hotspot aan zet, kan ik er ook niet naar connecten met ECU app. bah... chinese troep :-)

  • WackoH
  • Registratie: November 2012
  • Laatst online: 11-04 21:09
Da's irritant...
Reset naar fabrieksinstellingen (>3 s reset ingedrukt houden) al geprobeerd?

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Om eerlijk te zijn, dat durf ik niet aan gezien ik niet meer bij de settings via ecu app kan komen om weer bij normale wifi te joinen.

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Wachtwoord van de hotspot reset dan ook weer naar 88888888

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Sure, maar het hotspot werkt al helemaal niet als ie aangaat

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
dooiedodo schreef op donderdag 22 april 2021 @ 15:18:
Mijn ECUR wil niet meer luisteren naar de APS commandos. Krijg er geen data meer uit. als ik lokale hotspot aan zet, kan ik er ook niet naar connecten met ECU app. bah... chinese troep :-)
vandaag doet ie ineens weer wat, niet te voorspellen. k blijf er maar ff vanaf,maar geheid dat er weer wat fout gaat straks/morgen/later

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

Je had die ECU toch nog maar kort - garantie?

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
@dooiedodo ,
Draait die in de nacht door met scannen? Heb gezien dat die tussen 12.00 en 04.00 update. Als je hem dan uitvraagt vind die dit niet lekker. Heb zelf een blok erop gezet in die periode. Daarna geen last meer gehad (afkloppen).

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Dapdodo schreef op vrijdag 23 april 2021 @ 19:21:
@dooiedodo ,
Draait die in de nacht door met scannen? Heb gezien dat die tussen 12.00 en 04.00 update. Als je hem dan uitvraagt vind die dit niet lekker. Heb zelf een blok erop gezet in die periode. Daarna geen last meer gehad (afkloppen).


Na zon onder uit, dan even keer aan om dag opbrengst 0 te zetten. En dan weer braaf aan.
Je ziet dus vannacht prima, dag ervoor idioot veel unavailable

[Voor 16% gewijzigd door dooiedodo op 24-04-2021 09:35]


  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03 06:18
Ik heb sinds deze week ook zonnepanelen met micro-omvormers. Ik draai alleen op Domoticz.
Met welk programma hebben jullie die pakketjes opgevangen? Ik wil kijken of ik dit ook kan toepassen op andere devices. En ik wil niet elke keer terugvallen op de kennis en kunde van anderen 😉.

Groet,

Björn

  • Dapdodo
  • Registratie: Mei 2019
  • Nu online
BjorntobeWild schreef op zaterdag 24 april 2021 @ 12:17:
Ik heb sinds deze week ook zonnepanelen met micro-omvormers. Ik draai alleen op Domoticz.
Met welk programma hebben jullie die pakketjes opgevangen? Ik wil kijken of ik dit ook kan toepassen op andere devices. En ik wil niet elke keer terugvallen op de kennis en kunde van anderen 😉.

Groet,

Björn
Python script

  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03 06:18
Dat script heb ik gevonden, dat extraheert de data netjes uit de ECU. Maar hoe heb je de ruwe data gevonden?

  • Proton_
  • Registratie: November 2011
  • Laatst online: 19:16

Proton_

Moderator Wonen & Mobiliteit 

Team Welles

@BjorntobeWild Zoek maar op Wireshark of Ethereal, dat zijn tools die op een pc daarvoor gebruikt kunnen worden :)
Op Android bijvoorbeeld de Packet Capture app.
Ook sommige routers kunnen verkeer onderscheppen en in een bestand opslaan.

'19 Hyundai Kona EV, douchen met wtw en Auer Edel Eau, verwarming met Vaillant R290 monoblock


  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
Nibblebit schreef op vrijdag 23 april 2021 @ 18:29:
Je had die ECU toch nog maar kort - garantie?
stomme is dus, als dat ding op hakkelende manier toch data naar de cloud weet te krijgen, is het lastige discussie dat ie niet meer funcitoneert. Wat wij doen is niet echt beschreven in handleiding als ondersteunde feature :-)

vandaag loop ie weer als zonnetje, zal misschien extra storing dag zijn geweest op 2.4 ghz band ofzo..

  • Nibblebit
  • Registratie: December 2020
  • Laatst online: 31-05 23:36

Nibblebit

It's a four-bit aggregation

De feature die wij gebruiken zit in de functionaliteit van de ECUapp dus die zal het ook niet goed doen (dan gooi je het daarop, want als je niet kunt configureren houdt het natuurlijk ook op). Ik draai echt enorm stabiel met de HA extensie dus vervelend als dat bij jou niet zo is.

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
goed punt... als ik idd dat local ssid niet meer aan de praat krijg, is het wel stuk ja

  • banaliteit
  • Registratie: December 2012
  • Laatst online: 15:58
Heeft iemand toevallig wel eens getest of de ECU-R communicatie goed werkt dmv zigbee? Mijn zonnepanelen staan op de 2e verdieping. De Ecu-r wil ik om de meterkast zetten op de begane grond. In theorie zou de communicatie dan kunnen verlopen via Philips Hue zigbee netwerk.

  • Termy
  • Registratie: September 2001
  • Laatst online: 00:06

Termy

valt er nog wat te fragge?

De communicatie werkt altijd via zigbee dus of dit gaat werken ligt aan de ontvangst die je daar nog hebt en dat zou tegen kunnen vallen. Je kunt ook een antenne aan een draad gebruiken om de antenne misschien op een gunstigere plek te krijgen maar tenzij je een oud huis met houten vloeren oid heb vermoed ik dat je ontvangst wel eens matig zou kunnen zijn.

Kan je de ECU niet gewoon ergens op de 2e kwijt? De mijne ligt daar ook, verbonden met mijn netwerk via de WiFi en dat werkt prima.

-=[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. Daikin 3MXM40A met CTXM15R, FTXM20R en FTXM35R.


Acties:
  • +1Henk 'm!

  • dooiedodo
  • Registratie: November 2005
  • Laatst online: 01-06 11:57
banaliteit schreef op zondag 25 april 2021 @ 08:42:
Heeft iemand toevallig wel eens getest of de ECU-R communicatie goed werkt dmv zigbee? Mijn zonnepanelen staan op de 2e verdieping. De Ecu-r wil ik om de meterkast zetten op de begane grond. In theorie zou de communicatie dan kunnen verlopen via Philips Hue zigbee netwerk.
Dat is niet hoe zigbee werkt, je ECU is een netwerk controller, net als hue bridge. 2controllers betekend 2 netwerken.
Voor wat betreft je eigen situatie, gewoon neer zetten in je meter kast en met de ECU app alle panelen op zien komen of niet, da's alles wat je wil weten
Pagina: 1 2 3 ... 10 Laatste


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee