Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Anbefalte innlegg

Skrevet

Vet ikke hvorfor jeg ikke har lagt merke til det før, men ser at en av panelovene på hytta er en Beha "PV6 Wi-Fi".   Før jeg kaster bort mer tid på å prøve å finne ut av hvilket språk den snakker:  Er det noen som kjenner til at dette er gjort før?

 

Jeg gjorde noen eksperimenter med Behas app, mitmproxy og litt snooping, og det ser overkommelig ut å få denne til å styres lokalt.  Mangler detaljer om hvordan appen konfigurerer WiFi.  Den bruker åpenbart multicast på en særdeles kreativ måte med pakker til en drøss multicast-adresser.  Innholdet er mystisk nok stort sett et antall "1".  Det ser nesten ut som om de koder data inn som varierende antall/pakkestørrelse.  Elns.  Må forskes mer på.

 

Men når oven først har passordet så klarer den seg ganske bra.  Kjører DHCP og NTP og poster deretter en json-blob og en DeviceDrive-Header med litt personlige til https://agent.devicedrive.com/api/agent  Glad og fornøyd selv om det sitter en proxy der, slik at sertifikater ikke kan valideres i noen retning....

 

Men det den får tilbake er det som er mest interessant.  Body er bare "{"response":"OK"}" så den er ikke nyttig.  Men i headerne finner vi

 

auth_token_receive: SharedAccessSignature sr=BehaIotHubProd.azure-devices.net%2Fdevices%2F<mac>&sig=<sig>%3D&se=<sn>
auth_token_send: SharedAccessSignature sr=BehaIotHubProd.azure-devices.net%2Fdevices%2F<mac>&sig=<sig>%3D&se=<sn>
url_format_receive: https://BehaIotHubProd.azure-devices.net/devices/<mac>/messages/devicebound/%s?api-version=2021-04-12
url_format_send: https://BehaIotHubProd.azure-devices.net/devices/<mac>/messages/devicebound/%s?api-version=2021-04-12

 

med <mac> som 12 lc hex siffer uten skilletegn, og sn som 10 desimale siffer

 

Nå står det https der.  Men det kom aldri noen GET eller POST i den retningen.  Skjønte ikke bæret før jeg la merke til at det gikk pakker i retning av tcp port 8883 på BehaIotHubProd.azure-devices.net

 

Så det der konfigurerer rett og slett ovnen til å bruke MQTT over TLS.  Og enda bedre:  Fremdeles uten å validere sertifkater! Så da er det bare å fyre opp sin egen broker og leke i veg.

 

mitmproxy, som jeg har brukt så langt, er ikke så velegnet til å dekode MQTT.  Men jeg ser ihvertfall at det utveksles JSON blober med svært så lesbart innhold.  Slik som
 

{
  "com.beha.heater": {
    "sw_rev": "1.2",
    "child_lock": 0,
    "heater_mode": 2,
    "alarm_flags": 0,
    "current_triac_temperature": 60.7,
    "current_ext_temperature": 0,
    "current_NTCtemperature": 33.1,
    "current_model": 25.2,
    "target_temperature": 30,
    "current_nrf_temperature": 36.5,
    "current_TriacDutyCycle": 39,
    "max_triac_diff": 35.4,
    "max_triac_delta": 6.07
  },
  "com.devicedrive.heater": {
    "target_temperature": 30,
    "current_temperature": 25.2,
    "week_program_name": "",
    "week_program_id": "",
    "last_programmed": 1726494495
  }
}

 

Trenger bare å finne en fornuftig måte å samle inn topics og meldings-eksempler

 

Men så var det spørsmålet i starten da.  Dette er jo 5(?) år gammel hardware.  Noen må vel ha gjort tilsvarende før?

Skrevet

Fant meg https://github.com/nikitastupin/mitmproxy-mqtt-script og dette synes ganske så rett fram ut:
 

info: Loading script /usr/local/src/git/mitmproxy-mqtt-script/mqtt_message.py
info: Proxy server listening at *:9192
info: 192.168.15.136:21645: client connect
info: 192.168.15.136:21645: server connect 13.74.108.192:8883
info: [CONNECT]

Client Id: <mac>
Will Topic: None
Will Message: None
User Name: BehaIotHubProd.azure-devices.net/<mac>
Password: <innholdet fra auth_token_receive ovenfor>

info: [SUBSCRIBE] sent topic filters: 'devices/<mac>/messages/devicebound/#'
info: [PUBLISH] '<json blob med device data ala den jeg postet ovenfor>'  to topic 'devices/<mac>/messages/events/DeviceDrive%2DHeader=%7B%22mac%22 <osv med hele "DeviceDriver-Header fra første HTTPS POST url-kodet>'

 

Deretter kommer det en del kommandoer til topic 'devices/<mac>/messages/devicebound/%24.mid=<en eller annen uuid>&%24.to=%2Fdevices%2F<mac>%2Fmessages%2Fdevicebound'.  Som f.eks
 

info: [PUBLISH] '{"com.beha.heater": {"enable_notify": ["300"]}}'
info: [PUBLISH] '{"com.devicedrive.heater": {"target_temperature": "22.0"}}'
info: [PUBLISH] '{"com.beha.heater": {"heater_mode": "0"}}'
info: [PUBLISH] '{"com.beha.heater": {"heater_mode": "3"}}'

 

Selvsagt med stadige rapporter tilbake fra ovnen.

Skrevet
21 hours ago, Bjørn Mork said:

Mangler detaljer om hvordan appen konfigurerer WiFi.  Den bruker åpenbart multicast på en særdeles kreativ måte med pakker til en drøss multicast-adresser.  Innholdet er mystisk nok stort sett et antall "1".  Det ser nesten ut som om de koder data inn som varierende antall/pakkestørrelse.  Elns.  Må forskes mer på.

Rart at dette skulle være så vanskelig å google seg fram til.  Det ser ut til å være "ESP Touch" protokollen fra espressif.  Med manual på
https://www.espressif.com.cn/sites/default/files/documentation/esp-touch_user_guide_en.pdf

og eksempel-kode på

https://github.com/EspressifApp

 

Så da burde det være overkommelig å sette samme hele greia fra factory reset til lokal MQTT broker.  Forutsetter riktignok et system for å redirigere https://agent.devicedrive.com/api/agent  til en lokal webserver.  Men det funker nok både med DNS og forskjelige varianter av IP redirect.  Ikkeno DNSSEC i veien her heller.

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.