Open Geo-Ron opened 1 year ago
De info die je stuurt vermeld daar niets over of ik moet alles gaan doorlezen. Kun je preciezer zijn hoe de ha maintainer dat heeft gedaan of waar ik dat kan vinden? Heb je wellicht een voorstel hoer het beter kan?
Ik heb die threads indertijd ook gevolgd en wat (mogelijk tijdelijk) de oplossing bleek te zijn was een unieke useragent te gebruiken. Voor Home Assistant hebben ze toen gekozen om gebruik te maken van de growatt username zoals deze geconfigureerd is voor de plugin aangevuld met een random id
Ok, kun je wat specifieker zijn? Wat heb je precies aangepast en waar kan ik een voorbeeld daarvan vinden?
Ik heb daar zelf niet aan gewerkt, maar het is volgens mij een kwestie van de growat username met een random nummer erbij als de user agent te zetten om deze oplossing voor de Toon te proberen.
ik ga eens even prutten in mijn toon.. bedankt
Dit is het stukje relevante code uit de library die door de Home Assistant integratie gebruikt wordt: https://github.com/indykoning/PyPi_GrowattServer/blob/master/growattServer/__init__.py#L30 Als het GrowattApi object aangemaakt wordt met een agent_identifier wordt die gebruikt als user_agent en anders wordt de user_agent gebruikt die op regel 28 gedeclareerd wordt. Vanaf regel 35 staat de code waar random number aan de user_agent toegevoegd wordt.
ik heb nu in de eerste functie dit gezet:
var useragent = userName + Math.random() * Math.random()
en de regel met de useragent vervangen door: http.setUserAgent = useragent
vervolgens de aanroep naar de tweede functie vervangen door: getGrowattStep2(useragent)
en de tweede functie aangepast: variabele aan functie meegegeven: function getGrowattStep2(useragent)
en ook in de tweede functie de useragent aangepast http.setUserAgent = useragent
Alles lijkt nog (steeds) te werken in al mijn toons.
die werkt toch niet... Ik heb de regels nu even vervangen door (dan is hij 100% gelijk aan het voorbeeld):
//generate a 5 digit ransom number var rand = Math.floor(Math.random() * (99999 - 10000 + 1)) + 10000; var useragent = "Dalvik/2.1.0 (Linux; U; Android 12; https://github.com/indykoning/PyPi_GrowattServer)-" + rand
The growatt servers keep blocking user agents. My Toon keeps locking my Phone app and my Toon stops reporting solar information.
The homeassistant growatt maintainer solved this by implementing dynamic user agents at startup
More info can be found at: