EDP re:dy (redy) com nova API e plataforma na cloud

Olá.

Há uma nova API para o re:dy já em produção.

Consegui obter alguma informação através de depuração no browser. Para ver se conseguimos atingir o mesmo nível de informação e comando da anterior integração, deixo aqui o que consegui, ao de leve:

O ‘HOUSE-ID’ é essencial para chamar a API (através de ‘GET’), identificando cada instalação física do re:dy. Está disponível em: https://uiapi.redy.edp.com/equipment/houses/

Os tipos de estados: https://uiapi.redy.edp.com/interfacedata/modules/statevariables

{"JSON":{"moduleStateVariables":[{"action":null,"platformName":"currentTariff","realtime":false,"hardwareName":"smartmeter:current_tariff"},{"action":null,"platformName":"lastDetectionEnd","realtime":false,"hardwareName":"ias:last_detection_end"},{"action":null,"platformName":"energyAplusFullTariff","realtime":false,"hardwareName":"smartmeter:energy_aplus_full"},{"action":{"name":"on_off:!action","supportedValues":["ON","OFF"]},"platformName":"relayState","realtime":false,"hardwareName":"on_off:state"},{"action":{"name":"hvac:v_swing"},"platformName":"vSwing","realtime":true,"hardwareName":"hvac:v_swing"},{"action":null,"platformName":"stateOfCharge","realtime":true,"hardwareName":"stateOfCharge"},{"action":null,"platformName":"isCharging","realtime":true,"hardwareName":"isCharging"},{"action":null,"platformName":"totalGasConsumption","realtime":false,"hardwareName":"totalGasConsumption"},{"action":null,"platformName":"lastDetectionStart","realtime":true,"hardwareName":"ias:last_detection_start"},{"action":{"name":"thermostat:mode"},"platformName":"operationMode","realtime":false,"hardwareName":"thermostat:mode"},{"action":null,"platformName":"temperature","realtime":false,"hardwareName":"ambient:temperature"},{"action":{"name":"hvac:fan_speed"},"platformName":"fanSpeed","realtime":true,"hardwareName":"hvac:fan_speed"},{"action":null,"platformName":"processTemp","realtime":false,"hardwareName":"thermostat:process_temperature"},{"action":null,"platformName":"totalActiveEnergyAminus","realtime":false,"hardwareName":"emeter:energy_aminus"},{"action":null,"platformName":"activePowerAminus","realtime":true,"hardwareName":"emeter:power_aminus"},{"action":null,"platformName":"energyAplusPeakTariff","realtime":false,"hardwareName":"smartmeter:energy_aplus_peak"},{"action":{"name":"thermostat:setpoint"},"platformName":"setpoint","realtime":false,"hardwareName":"thermostat:setpoint"},{"action":null,"platformName":"totalActiveEnergyAplus","realtime":false,"hardwareName":"emeter:energy_aplus"},{"action":null,"platformName":"activePowerAplus","realtime":true,"hardwareName":"emeter:power_aplus"},{"action":{"name":"hvac:h_swing"},"platformName":"hSwing","realtime":true,"hardwareName":"hvac:h_swing"},{"action":null,"platformName":"energyAplusOffPeakTariff","realtime":false,"hardwareName":"smartmeter:energy_aplus_offpeak"},{"action":null,"platformName":"lastCommunication","realtime":false,"hardwareName":"connectivity:last_communication"},{"action":null,"platformName":"batteryLevel","realtime":false,"hardwareName":"batteryLevel"},{"action":null,"platformName":"connectivityState","realtime":false,"hardwareName":"connectivity:state"},{"action":null,"platformName":"lowBattery","realtime":false,"hardwareName":"device:low_battery"},{"action":null,"platformName":"isDetecting","realtime":true,"hardwareName":"ias:status"}]}}

Tarifas: https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/housetariff

Dados da EDP Box (contador): https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/modules?groupsorfilter=["SMART_ENERGY_METER"]

Tomadas e controladores afins: https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/modules?groupsorfilter=["CONSUMPTION_METER","SWITCH"]&groupsnotfilter=["SMART_ENERGY_METER","PRODUCTION_METER"]

A autenticação na API está associada a um servidor na AWS: https://cognito-identity.eu-west-1.amazonaws.com/ É este servidor que dá o ‘idToken’ para autenticação em cada pedido ‘GET’ à API.

Estou disponível para auxiliar no acesso aos dados da API, para ver se conseguimos novamente pôr de pé a atual integração já defunta. :slight_smile:

Obrigado.

1 Curtiu

Quem andava de volta desse componente era o @abmantis. Talvez possa dar uma ajuda em relação a este tema.

Boa descoberta!
Da última vez que olhei para a API nova, apesar de ter encontrado forma de ler valores, não encontrei nenhuma forma de controlar as tomadas, pelo que desisti e optei pela integração local com o hub (que agora também já não funciona). Não sei se agora já existe.

Honestamente, e após falar com a malta que desenvolve o re:dy, não pretendo investir muito tempo a tentar descobrir a API, visto que a podem mudar a qualquer altura e o componente deixa de funcionar.
Mas estou disponível para ajudar, se puder. :slight_smile:

1 Curtiu

@abmantis, o componente local funciona. TEnho-o como medida de contingência, após o fecho da anterior plataforma em 19/08/2019.

Quanto ao controlo, é possível, através de: https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/modules?groupsorfilter=["CONSUMPTION_METER","SWITCH"]&groupsnotfilter=["SMART_ENERGY_METER","PRODUCTION_METER"]

Posso ajudar, mas os meus conhecimentos de python são diminutos. Daí colocar a informação para ver se mais gente se junta para contribuir para esta causa. :slight_smile:

Abraço.

1 Curtiu

@abmantis, A API usa PUT e PATCH, sobretudo o PATCH para estruturas já existentes e onde há necessidade de atualizar dados.

Creio que a estrutura do payload para PATCH poderá ser muito semelhante a esta:

{"moduleinfo":{"stateVars":{"relayState":{"action":"on_off:!action","value": "OFF"}}}}

ou

{"moduleinfo":{"stateVars":{"1":{"action":"on_off:!action","value":"0"}}}}

Neste URL (?): https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/modules/MODULE-ID

Pelo menos, é esta a filosofia de quando se atualizam os dados da tomada, por exemplo, o estado de bloqueada, ou a categoria do equipamento que alimenta:

{"moduleinfo":{"userAttributes":{"locked":true,"name":"Tomada II","category":"OTHER","subcategory":"OTHER"}}}

Também é no mesmo URL: https://uiapi.redy.edp.com/equipment/houses/HOUSE-ID/modules/MODULE-ID

É o que deduzo de GET no mesmo URL:

Podes partilhar um pouco da tua pesquisa, sff?

Obrigado.

Honestamente já não me recordo :confused: Já foi há alguns meses, e na verdade não perdi muito tempo. Até que a equipa do redy indique que podemos utilizar a API, não pretendo despender mais tempo porque podem mudar a API a qualquer altura e inutilizar a integração.

Sim, há sempre o risco de a API mudar. Tanto aqui como em qualquer outro componente do HA.

Não creio que isso venha a acontecer brevemente, tendo em conta que a migração para o novo servidor já decorre há vários meses.

Concordo que não deva quebrar brevemente. No entanto a equipa do re:dy disse explicitamente que não pretende que essa integração seja feita atualmente.

1 Curtiu

Boas! Esta abordagem morreu por completo?
Quem tem o re:dy tem uma box que comunica a informação para fora, não há forma de localmente aceder aos dados que são transmitidos, sem a outra abordagem da porta HAN?
Relativamente ao acesso à API, sei o ID da minha casa, mas quando substituo nos URLs em cima obtenho sempre com página com o resultado {“message”:“Unauthorized”}. É necessário mais alguma coisa antes ou isto não é simplesmente possível e a abordagem foi abandonada? Obrigado desde já!

Esta abordagem está parada há muito tempo.

A melhor forma atualmente, é usar o acesso à porta HAN, tal como o re:dy faz.

Quanto à API, requer autenticação com base num utilizador e password, para posterior obtenção de um token.

Como a solução de comunicação direta com o contador é muitos mais frutuosa para a finalidade de Home Assistant e obtém melhor suporte da comunidade, recomendo que possa estudar essa solução.

1 Curtiu

Muito obrigado, Tiago. Como não sou experiente em coisas mais complexas, que envolvam soldagens, programações de módulos e afins, ando a ver o que consigo sem flashar nada. Não sendo possível, ou espero que um dia seja, ou terei de me aventurar. O meu setup em casa dificulta-me muito, pois tenho o servidor na cave, e muito longe do quadro eléctrico, sem grandes hipóteses de cablar facilmente, pois a tubagem da minha casa é bastante estreita e já passaram em tempos mais cabos para outras coisas, está tudo atulhado. E depois sem garantias que conseguirei fazer isto… Ok, logo vejo…
Quanto à autenticação e token, tem a ver com os dados de acesso ao re:dy?
Muito obrigado pela(s) tua(s) implementação(ções)! É(são) genial(is)! :slight_smile:

Sim, a autenticação e token estão relacionados com o utilizador e password da conta re:dy.

Estou a tentar fazer um programa em python que vá registando os valores do contador da energia solar. Esbarrei na autenticaçao do aws cognito. Alguém consegue dar uma ajuda? Obrigado


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade