Open diamant-x opened 2 weeks ago
Sin usuario ni suministro poco puedo hacer para investigar. Te invito a que analices cómo funciona, si dispone de API, y si ves que la forma de acceder se comporta parecido a la API de Aigues de Barcelona, puedes añadir más información y una PR con el cambio.
Por lo pronto veo que Agbar, Sorea y Cassa usan el mismo portal.
https://www.agbarclients.cat/login https://www.soreaonline.cat/login https://www.cassa.es/login
He estado mirando pero la cookie de ofexTokenJwt no aparece al iniciar sesion en Sorea... no se si significa que la plataforma de debajo es toalmente distinta o que.
Estas son las cookies que salen tras iniciar sesion. algunas ya aparecen al cargar el login publico https://www.soreaonline.cat/login
Cookie | Value (or redacted) |
---|---|
COMPANY_ID | 20116 |
COOKIE_SUPPORT | true |
CookieConsent | {stamp:%27u0TMXqnIQS0LNlRrombBIgqS1+nBub8BWEDp0hO7pDng76BkFx+j2g==%27%2Cnecessary:true%2Cpreferences:false%2Cstatistics:false%2Cmarketing:false%2Cmethod:%27explicit%27%2Cver:3%2Cutc:1721733701343%2Cregion:%27es%27} |
GUEST_LANGUAGE_ID | es_ES |
ID | 493(redacted just in case, numbers and letters)d3d |
JSESSIONID | (generated on login page load) |
LFR_SESSION_STATE_20120 | 1731599802868 |
LFR_SESSION_STATE_69627382 | 1731599887635 |
LR_LAST_CONTRACT | (redacted, my water contract ID) |
LR_ONLY_ONE_MUNICIPIO_765813 | false |
SERVERID | 0d73(redacted just in case, numbers and letters)111 |
SERVERIDCORS | 0d73(redacted just in case, numbers and letters)111 |
incap_ses_1394_2918190 | SpObLSN(redacted just in case, mostly letters)XhLQ== |
nlbi_2918190 | YHLBe+a(redacted just in case, mostly letters)3o |
showVideoTelelectura | false |
visid_incap_2918190 | COce8(redacted just in case, mostly letters)6HDY |
Más allá de las cookies, hay alguna petición a API o algún sitio que devuelva la información del consumo?
Hace mucho que no hago ingeniería inversa asi que si tienes algun tip de como sacar lo que sería interesante lo puedo hacer.
He mirado en la pestaña de Red del debugger y al consultar los consumos, se puede hacer mensual, diario o horario. En el caso de horario le tira un GET a https://www.soreaonline.cat/es/group/soreaonline/mis-consumos?p_p_id=MisConsumos&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_auth=BpdgVcoI&_MisConsumos_op=buscarConsumosHoraria&_MisConsumos_fechaInicio=12/11/2024&_MisConsumos_fechaFin=15/11/2024&_MisConsumos_inicio=0&_MisConsumos_fin=9
que devuelve un json tal que:
{"ultimaPagina":false,"consumos":[{"fechaConsumo":"15 nov 2024","horaConsumo":"04:05","lectura":"100,745","consumo":"0,001","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"15 nov 2024","horaConsumo":"03:05","lectura":"100,744","consumo":"0","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"15 nov 2024","horaConsumo":"02:05","lectura":"100,744","consumo":"0","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"15 nov 2024","horaConsumo":"01:05","lectura":"100,744","consumo":"0,001","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"15 nov 2024","horaConsumo":"00:06","lectura":"100,743","consumo":"0,003","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"14 nov 2024","horaConsumo":"23:06","lectura":"100,74","consumo":"0,005","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"14 nov 2024","horaConsumo":"22:06","lectura":"100,735","consumo":"0,007","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"14 nov 2024","horaConsumo":"21:06","lectura":"100,728","consumo":"0,155","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"14 nov 2024","horaConsumo":"15:59","lectura":"100573","consumo":"0,001","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false},{"fechaConsumo":"14 nov 2024","horaConsumo":"14:59","lectura":"100,572","consumo":"0","consumptionType":{"consumptionLiteral":"REAL","consumptionClass":"real"},"lecturaEstimada":false}]}
La respuesta está paginada, pero se puede forzar via url los parametros el rango que quieres que devuelva (ambos son aplicados, i.e. si le pides 200 pero el rango es de 1 dia -> te devuelve un dia de datos solo, si le pides el rango del mes pero solo 10 entradas -> te devuelve 10 entradas. &_MisConsumos_fechaInicio=12/11/2024 <- 'desde' &_MisConsumos_fechaFin=15/11/2024 <- 'hasta' &_MisConsumos_inicio=0 <- "indice de la entrada más reciente a consultar" &_MisConsumos_fin=30 <- "indice de la entrada más antigua a a consultar"
Lo que el p_auth que sale ahi no coincide con ningun valor que haya encontrado en la lista de cookies, asi que no se donde se genera.
Vale, entonces es factible crear una clase en Python para procesar datos de Sorea o de Aigues de Barcelona. Mismos métodos pero con diferentes ejecuciones. 👍🏻 Puedes con ello? Si no, tendría que pedirte un usuario para investigar las llamadas que se hacen con detalle. Puedes darme un toque por Telegram si lo necesitas.
Buf, aunque he programado en Python, nunca lo he hecho con un buen orden o estructura :). Puedo dar soporte y hacer de beta testing. Lo que haré es intentar implementarlo con https://github.com/danieldotnl/ha-multiscrape y ver si consigo al menos acceder al ultimo valor del contador (y de ahi agregarlo al panel de Energia y que HA me haga el horario) y podemos dejar el hilo abierto para ver si hay más gente interesada que valga la pena extender esta integración.
Hola, recientemente me he mudado de municipio y el agua ahora lo provee una empresa llamada Sorea. https://www.soreaonline.cat/login Pero la web me resultaba familiar y al parecer básicamente es otra marca del grupo Agbar. Me preguntó cómo de posible sería que la integración permita si funcionalidad desde el portal de Sorea también?
https://es.m.wikipedia.org/wiki/Sorea
Quiero creer que el backe nd funciona igual aunque por delante la web se vea distinta. Puedo confirmar que las cuentas en aigues no funcionan en la de Sorea... Con suerte es solo por BBDD.