Homekit, scripts, Git och Json

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Malmö
  • 2016-09-23 11:46

Spännande rubrik, va?

Jag har länge sökt med ljus och lykta efter något som skulle ge mig möjligheten att från macOS interagera med Homekit och de produkter man har. Detta främst för att ges möjligheten att scripta actions, vilket i sig skulle öppna oändliga möjligheter.

Så igår, då snubblar jag äntligen över något som skulle kunna vara just detta! Det jag då hittade var Ben Dodsons blogg och därifrån information om NodeJS. Det är alltså mjukvara helt utan GUI, installeras via terminalen.

När denna väl var installerad så kunde jag från github installera Homebridge som är en NodeJS-server som emulerar iOS Homekit-API. Till denna installerar man plugins, också från github eller bygga egna, där man förslagsvis börjar med Applescript-pluginen för Homebridge.

När detta väl är färdigt så editerar jag den aktuella config.json-filen för att i denna definiera egna fejkade Homekit-accessories och vad de ska ha för toggles samt vilka actions som ska tas när state för en aktuell toggle ändras. Se nedanstående exempel:

Citat:

"accessories": [
{
"accessory": "Applescript",
"name": "Ditt påhittade namn för enheten",
"on": "/Users/<username>/YourFolder/YourScript_ON.scpt",
"off": "/Users/<username>/YourFolder/YourScript_OFF.scpt"
}
]

När config-filen är editerad så att den innehåller iaf en accessory så startar jag upp Homebridge som kickar igång den emulerade bryggan och ger mig en nyckel som jag använder för att lägga till bryggan i Homekit-appen jag använder. Pang, bom, klart!
Direkt så hittas också denna accessory och visar de toggles (on/off i detta exemplet) som jag har valt att den ska ha. Då sätter jag denna i läge ON och vipps - mitt script exekveras. Kanon!

I just mitt fall så testade jag att skapa förutsättningar för den rörelsesensorn som Philips snart kommer att släppa. Det jag gjorde då var att jag skapade en scen som vid aktivering kommer sätta denna fejkade accessoryi läge ON. Därefter så skapade jag en trigger som ställdes in så att när en viss lampa tändes så skulle den aktuella scenen aktiveras. När väl denna scenen aktiveras så kommer ett script att exekveras som i sin tur kommer att skicka en notis till min iOS-enhet. Givetvis är valet av att använda just en lampa i min trigger bara tillfälligt, denna kommer ersättas av Philips rörelsesensor när jag väl har en.

Jag testade då, slog på vald lampa så att den tändes och pang - där fick jag en notis i min telefon! Givetvis fungerar allt detta med Siri också.

Detta är, ursäkta franskan, så jävla gytt! Detta öppnar så enorma möjligheter, du kan plötsligt kan du få actions som inte tidigare var möjliga och även med produkter som inte har native Homekit-stöd.

Fler som är sugna på detta?

Intressant

Bygg en webbservice istället vettja

  • Medlem
  • Malmö
  • 2016-09-23 13:47
Ursprungligen av barbapappa_86:

Bygg en webbservice istället vettja

Huh? Varför?

Ursprungligen av zinned:

Huh? Varför?

Köra det via en webbläsare är smidigare tänker jag.

  • Medlem
  • Malmö
  • 2016-09-23 16:00
Ursprungligen av barbapappa_86:

Köra det via en webbläsare är smidigare tänker jag.

Att köra vad via webbläsare är smidigare? Och smidigare än vad?

Förstår inte alls vad du menar nu faktiskt

Ursprungligen av zinned:

Att köra vad via webbläsare är smidigare? Och smidigare än vad?

Förstår inte alls vad du menar nu faktiskt

Jag kanske missförstår helt och hållet, men som jag förstår det så har du en server lokalt som du sedan kör skript mot så att den genererar och returnerar en nyckel/värde vilket du sedan matar in i din klient (tror du nämnde en app). Varför lägga det på webben? Jo, mer användarvänligt tänker jag. Och framförallt så är det nördigare

Senast redigerat 2016-09-23 17:30

NodeJS är ju liksom rätt lämpat för en webbserver...

Ursprungligen av BlackSmp:

NodeJS är ju liksom rätt lämpat för en webbserver...

Yepp!

  • Medlem
  • Malmö
  • 2016-09-25 11:41

Jag tror du har missförstått helt

Jag kör servern, som emulerar iOS HomeKit, på min iMac. Denna kör sedan de fejkade HomeKit-produkter som jag vill ha tillgängliga inom mitt HomeKit-hem. För dessa produkters olika lägen (on, off, brightness, etc) styr jag vad som ska ske och där har jag ställt in att olika script ska köras beroende på läge. Plötsligt oändliga möjligheter.

Så nej, jag kör inga script MOT NodeJS och jag matar inte in något i någon klient. Detta handlar om automatisering och framför allt om HomeKit. De produkter som jag ser till att skapa i config-filen dyker ju upp som legitima HomeKit-produkter i valfri HomeKit-app, t ex Apples egen, där jag sedan kan styra dem. Manuellt eller via triggers.

Jag ser ingen poäng att blanda in någon form av webbinterface, vet faktiskt inte alls hur du tänker där.

Ursprungligen av zinned:

Jag tror du har missförstått helt

Jag kör servern, som emulerar iOS HomeKit, på min iMac. Denna kör sedan de fejkade HomeKit-produkter som jag vill ha tillgängliga inom mitt HomeKit-hem. För dessa produkters olika lägen (on, off, brightness, etc) styr jag vad som ska ske och där har jag ställt in att olika script ska köras beroende på läge. Plötsligt oändliga möjligheter.

Så nej, jag kör inga script MOT NodeJS och jag matar inte in något i någon klient. Detta handlar om automatisering och framför allt om HomeKit. De produkter som jag ser till att skapa i config-filen dyker ju upp som legitima HomeKit-produkter i valfri HomeKit-app, t ex Apples egen, där jag sedan kan styra dem. Manuellt eller via triggers.

Jag ser ingen poäng att blanda in någon form av webbinterface, vet faktiskt inte alls hur du tänker där.

Jag tror att vi helt enkelt inte förstår varandra. Tex, "kör skript MOT NodeJS" - NodeJS är en miljö för att bygga diverse webblösningar etc:

Citat:

Node.js is an open source, cross-platform runtime environment for developing server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, and Linux.

Ingen diskussion jag orkar ge mig in i, men tackar för informationen Visste inte att det gick att emulera HomeKit

Källan till missförstånden är kanske att det inte är uppenbart att Homebridge är en Homekit server implementerad i Javascript som kör plugins som är script skrivna i Javascript.

Men vi behöver nog inte brotta ner oss i de detaljerna.

Hade tänkt mig att använda Philips nya sensor för att få en påminnelse när posten kommit och lagt ngt i min brevlåda....

Ser ljus i tunneln och det är (troligen) inte ett tåg som kommer....

  • Medlem
  • Malmö
  • 2016-09-26 23:19
Ursprungligen av barbapappa_86:

Jag tror att vi helt enkelt inte förstår varandra. Tex, "kör skript MOT NodeJS" - NodeJS är en miljö för att bygga diverse webblösningar etc:

Jag är fullt medveten om detta. Du har nog bara missförstått det fantastiska i det jag skrev

Att man kan skapa icke-fysiska HomeKit-produkter som genereras ur det man har konfat i en Json-fil i Homebridge-pluginen. Denna kan man sedan styra till att köra egna Applescripts vid olika statusförändringar på denna fejkade HomeKit-produkt. Som jag gjorde, att när en viss lampa tänds (eller släcks om man så vill) så ska ett visst script köras som skickar en notis till mina iOS-enheter med en text jag har definierat.

När Philips motion sensor kommer så kommer den inte att native kunna skicka notiser vid statusförändringar. Nu kommer jag att göra detta möjligt, tack vare Homebridge. Självklart behöver man inte trigga notiser, det kan ju vara vad man vill genom sina script eller andra plugins till Homebridge. Sätta på tv:n och till en viss kanal, spela en viss låt eller spellista i iTunes som också automatiskt ansluter till en viss Airplay-enhet etc etc. Gränserna har plötsligt suddats ut.

Ursprungligen av Sixten:

Hade tänkt mig att använda Philips nya sensor för att få en påminnelse när posten kommit och lagt ngt i min brevlåda....

Ser ljus i tunneln och det är (troligen) inte ett tåg som kommer....

Se där, ytterligare ett utmärkt exempel på en praktisk tillämpning

1
Bevaka tråden