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

Homely integration


kolaf

Anbefalte innlegg

  • 1 måned senere...

Takk for tips om tråden fra @berland

 

Jeg tester litt på Homely sitt API nå, både med Postman og med kolaf sin kode (takk for den!). Men responsen fra f.eks. /locations er annerledes hos meg enn det som virker å være antatt i koden. Jeg mangler gatewayserial (får kun name, role, userId, locationId) for min ene lokasjon.

 

Finnes det noe dokumentasjon på Homely sitt API?

Endret av psv021
Lenke til kommentar
Del på andre sider

Takk for godt arbeid, jeg ante ikke hvordan jeg skulle få noe ut av tilgang til API selv.

I dokumentasjonen finnes alarmState ALARM_PENDING og BREACHED. Disse hadde gjerne vært fine som binære sensorer i HA for automasjoner som f.eks skru på alle lys og notifikasjoner på google/alexa.

Lenke til kommentar
Del på andre sider

  • 4 uker senere...
  • 5 uker senere...
Traceback (most recent call last):
  File "/config/custom_components/homely/config_flow.py", line 74, in async_step_user
    info = await validate_input(self.hass, user_input)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/homely/config_flow.py", line 40, in validate_input
    locations: list[Location] = await hass.async_add_executor_job(
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/homelypy/homely.py", line 151, in get_locations
    return [
           ^
  File "/usr/local/lib/python3.11/site-packages/homelypy/homely.py", line 157, in <listcomp>
    location_data["gatewayserial"],
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'gatewayserial'
Lenke til kommentar
Del på andre sider

On 02/08/2023 at 13:47, SumMarius said:
Traceback (most recent call last):
  File "/config/custom_components/homely/config_flow.py", line 74, in async_step_user
    info = await validate_input(self.hass, user_input)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/homely/config_flow.py", line 40, in validate_input
    locations: list[Location] = await hass.async_add_executor_job(
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/homelypy/homely.py", line 151, in get_locations
    return [
           ^
  File "/usr/local/lib/python3.11/site-packages/homelypy/homely.py", line 157, in <listcomp>
    location_data["gatewayserial"],
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'gatewayserial'


samme problemet her når jeg prøver å legge til siste versjon 

Lenke til kommentar
Del på andre sider

Jeg knota litt med denne integrasjonen tidligere, men slet med å få den til å virke helt stabilt, så jeg begynte på en mqtt-basert integrasjon heller. Vet ikke om det er interessant for andre, men kan kjøres via docker. Har skrevet den med discovery i mente, så den skal i teorien kunne fange opp alle enheter som har det settet med sensorer jeg har klart å finne i apiet / dokumentasjonen. 

 

Integrasjonen bruker websockets til å oppdatere data, så er det også mulig å definere poll-interval i tillegg. Er veldig tidlig i utvikling, men den funker iallefall helt topp her hos meg. 

 

image.thumb.png.dab16da2df34d00a3ced8c0a97ba0c2c.png

 

image.thumb.png.81bc5a78b7688c8334fb9717d89a8e6b.png

  • Thanks 1
Lenke til kommentar
Del på andre sider

Dette er jo fantastisk, @Ronniehl! Mange takk!

 

Jeg har forsøkt å fyre opp en container i Unraid, men får følgende feilmelding ved start. Noen idé om hva det kan være?

 

(node:1) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
/app/dist/index.js:90
        for (const location of homes) {
                               ^

TypeError: homes is not iterable
    at /app/dist/index.js:90:32
    at Generator.next (<anonymous>)
    at fulfilled (/app/dist/index.js:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
[01:25:17.433] INFO (1): Starting service
[01:25:17.746] INFO (1): Authenticated. Token expires at 2023-08-08T08:55:17.746Z
[01:25:32.848] INFO (1): Loaded undefined homes

Lenke til kommentar
Del på andre sider

19 minutes ago, BalleClorin said:

Dette er jo fantastisk, @Ronniehl! Mange takk!

 

Jeg har forsøkt å fyre opp en container i Unraid, men får følgende feilmelding ved start. Noen idé om hva det kan være?

 

 

I alle dager.. "homes" er responsen som kommer fra homely apiet, som skal være en liste med homes. Jeg bygger nytt image nå (yusijs/homely-mqtt:dev) - la inn litt debug output der, hvis du kjører den med option "logLevel" satt til debug, og ser om det kommer ut noe mer informasjon? 

 

Kjapp edit: Er som sagt veeeldig tidlig i utvikling, så har nok masse å gå på med feilhåndtering. 🙂 

 

Ny edit:
Homely apiet har visst problemer:

[10:49:03.986] FATAL (21357): {"statusCode":500,"message":"NatsError [TIMEOUT] - request: Timeout on topic homely.integration-api.user-location.list"}
 

Endret av Ronniehl
Lenke til kommentar
Del på andre sider

Testa på de forskjellige endepunktene / websocket nå - alle gir 500 feil, bortsett fra auth-endepunktet som funker. Mulig det har med app-oppgraderingen deres å gjøre, at de migrerer noe eller noe i den duren, men 🤷‍♂️ 

 

(Fantastisk timing for at jeg skulle annonsere integrasjonen min 😂)

Lenke til kommentar
Del på andre sider

Frustrerende greier. Jeg sendte mail til homely og sutra litt nå 😅 

 

La også inn litt flere sensorer (lekkasje-sensor & HAN-måler), men har ikke testet disse selv. Har forøvrig også spurt Homely om enheter som mangler (dørlås, alarmpanel ++), så det er visst ting som er på blokka, men de har ikke en tydelig strategi/plan for apiet, annet enn at de vil "ende opp med et fullverdig API", men foreløpig er i ett tidlig beta-stadie.

 

 

Edit: 

Fikk svar:

Quote

Mye på backenden vår er nede nå som forberedelser til app-oppdateringen som slippes snart. Det vil forhåpentligvis ikke være lenge til det er oppe og gå igjen

 

Endret av Ronniehl
Lenke til kommentar
Del på andre sider

1 hour ago, Moskus said:

Hjelpe meg, tar de ned hele backend'en når de skal slippe en ny app? Ikke akkurat god reklame... 😞 

Ikke uenig 😅 håper ikke det vil være normalen! 

 

Oppe igjen nå 😄

 

For de som lurte (@ottob), har jeg lagt inn dokumentasjon på homely apiet i github repoet mitt (github.com/yusijs/homely-mqtt)

  • Like 1
Lenke til kommentar
Del på andre sider

Hei @Ronniehl,

 

Dette er antageligvis relatert til min (mangelfulle) kunnskap om oppsett av containers i Unraid, men sier denne feilen deg noe?

 

/app/node_modules/pino/lib/tools.js:71
      this[writeSym](null, format(msg, n, this[formatOptsSym]), level)
                    ^

TypeError: this[writeSym] is not a function
    at MqttClient.LOG [as log] (/app/node_modules/pino/lib/tools.js:71:21)
    at new MqttClient (/app/node_modules/mqtt/build/src/lib/client.js:87:14)
    at connect (/app/node_modules/mqtt/build/src/lib/connect/index.js:129:20)
    at Object.<anonymous> (/app/dist/utils/mqtt.js:35:58)
    at Module._compile (node:internal/modules/cjs/loader:1198:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at Module.require (node:internal/modules/cjs/loader:1100:19)
    at require (node:internal/modules/cjs/helpers:108:18)

 

Alt fungerer når jeg setter mqtt enabled til false i config-filen, så jeg forutsetter at dette har noe med oppkoblingen til Mosquitto-pluginen i HA. Kan for øvrig koble til med MQTT Explorer med samme credentials.

 

Lenke til kommentar
Del på andre sider

3 minutes ago, BalleClorin said:

Hei @Ronniehl,

 

Dette er antageligvis relatert til min (mangelfulle) kunnskap om oppsett av containers i Unraid, men sier denne feilen deg noe?

 

 

Alt fungerer når jeg setter mqtt enabled til false i config-filen, så jeg forutsetter at dette har noe med oppkoblingen til Mosquitto-pluginen i HA. Kan for øvrig koble til med MQTT Explorer med samme credentials.

 

Jeg så noe lignende når jeg feilsøkte tidligere, det er noe med debug-loggeren; hvis du setter debugLevel til info så tror jeg det løste seg for meg. Begynte å se på det, men fikk ikke helt tid til å forstå hvorfor den feilet. Ser mer i morgen, men prøv å endre logLevel så bør det funke! 

Lenke til kommentar
Del på andre sider

Har dyttet noen endringer og publisert på latest-tag. Skal være stabilisert med logging etc nå, og har lagt inn mulighet for å definere discovery/state-topic prefixer nå i config 🙂 Ellers håper jeg på litt tilbakemeldinger på om det er ting som ikke virker som det skal, eller eventuelle forbedringer 🙂 

  • Thanks 1
Lenke til kommentar
Del på andre sider

Oppgradert til latest nå.

 

Oppdatering av status i HA fungerer lynraskt - tilnærmet sanntid. 🙂

 

En liten ting: Det kan se ut til at internett har vært litt spotty i natt, og da kræsjet containeren med websocket error. Jeg løser automatisk restart med et parameter i Docker, men dette er kanskje noe du ønsker å håndtere internt?

Lenke til kommentar
Del på andre sider

43 minutes ago, BalleClorin said:

En liten ting: Det kan se ut til at internett har vært litt spotty i natt, og da kræsjet containeren med websocket error. Jeg løser automatisk restart med et parameter i Docker, men dette er kanskje noe du ønsker å håndtere internt?

 

Njaei, jeg har faktisk bevisst lagt opp til at applikasjonen kan krasje, og at restart skal håndteres av docker. Noen feil/hendelser vil uansett måtte håndteres på den måten (f.eks hvis prosessen går tom for minne, docker krasjer eller du rebooter serveren din), så det mest logiske imo er at det håndteres automatisk. 

 

Det sagt, så har websockets automatisk reconnect, så rart at det stanset hele applikasjonen. Skal se på det, og kan nok også legge inn at polling skal feile mer gracefully. Problemet da er jo hvis vi får en situasjon som i går hvor homely sitt api er nede, så vil applikasjonen kjøre som om alt er helt fint. Selv foretrekker jeg at det krasjer helt så jeg kan se at det krasj-looper og at noe er gæli 🤔 Jeg får tenke litt på det, kanskje jeg kan legge inn ett config-flagg e.l for det 🙂 

Endret av Ronniehl
  • Like 1
Lenke til kommentar
Del på andre sider

Hei Ronniehl,

 

Har prøvd å komme igang med containeren din men sliter med at den går i en restart loop "exec /usr/local/bin/docker-entrypoint.sh: exec format error". Er dette noe jeg har fucket til med configen?. Kopierte inn eksempel configen i en yaml fil i config folderen.

   
Endret av torhaala
Lenke til kommentar
Del på andre sider

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.