• No results found

Etiska och samhälleliga aspekter

En stor fråga i dagens samhälle är säkerhet och anonymitet på internet.

Om Permobil skulle göra det möjligt för sina användare att koppla ihop sin stol med en extern molntjänst är det mycket möjligt att många blir skeptiska. Detta skulle innebära att information om deras elektriska rull-stol, vilket är en väsentlig del för att få deras vardagliga liv att fungera, exponeras för internet i en större utsträckning än vad den är i dag via Permobils API. Med internetbaserade tjänster kommer denna risk alltid att finnas.

Vidare kan man även tänka sig att användare skulle vara oroliga över tjänsten IFTTT i sig, där tjänsten potentiellt kan lagra data om deras stol på ett osäkert vis som riskerar att tredje part kan ta del av denna. Det finns även en risk att IFTTT säljer deras data vidare till andra företag el-ler på något annat vis använder deras data till mer än det användarna vet om. Det är därför viktigt att Permobil undersöker i detalj hur IFTTT hanterar sina användares data, för att säkerställa att detta görs på ett sätt som är acceptabelt för deras användare. Det är sedan även viktigt att Per-mobils användare informeras om IFTTTs policy kring denna fråga samt vilken information IFTTT skulle få ta del av om Permobil skulle lansera en integration i stil med den som tagits fram i detta projekt.

En positiv aspekt med detta projekt är att en lansering av ett system likt det som tagits fram skulle bidra till ökad livskvalité för Permobils använ-dare. Genom att kunna automatisera sitt smarta hem med hjälp data från sin elektriska rullstol kan personer med någon form av funktionsnedsätt-ning ytterligare underlätta sin vardag med hjälp av modern teknik.

Referenser

[1] Anställda på Permobil. Denna information har fåtts muntligen förkla-rad under projektets gång.

[2] Node.js. About Node.js.URL: https://nodejs.org/en/about/ (häm-tad 2020-04-11).

[3] Fast, unopinionated, minimalist web framework for Node.js.URL: https:

//expressjs.com/(hämtad 2020-05-16).

[4] MongoDB. What Is MongoDB? URL: https : / / www . mongodb . com / what-is-mongodb(hämtad 2020-05-11).

[5] MongoDB. NoSQL Databases Explained.URL: https://www.mongodb.

com/nosql-explained(hämtad 2020-05-11).

[6] Mongoose. Elegant mongodb object modeling for node.js. URL: https:

//mongoosejs.com/(hämtad 2020-05-11).

[7] node-cron. URL: https://github.com/kelektiv/node-cron (häm-tad 2020-05-17).

[8] npm. Build amazing things. URL: https://www.npmjs.com/ (hämtad 2020-05-16).

[9] Typescript. TypeScript is Typed JavaScript at Any Scale. URL: https:

//www.typescriptlang.org/(hämtad 2020-05-16).

[10] Angular. One framework Mobile & desktop. URL: https://angular.

io/(hämtad 2020-05-16).

[11] Git. Git.URL: https://git-scm.com/en/about/ (hämtad 2020-04-12).

[12] Postman. The Collaboration Platform for API Development.URL: https:

//www.postman.com/(hämtad 2020-05-16).

[13] Trello möjliggör att du samverkar i ditt arbete och får mer gjort. URL: https://trello.com/sv(hämtad 2020-05-16).

[14] Mitchell Anicas. An Introduction to Oauth2. URL: https : / / www . digitalocean.com/community/tutorials/an- introduction- to-oauth-2(hämtad 2020-05-16).

[15] Google. Google Home.URL: https://store.google.com/se/product/

google_home(hämtad 2020-01-23).

[16] Britta O’Boyle. What is Alexa and what can Amazon Echo do? URL: https : / / www . pocket - lint . com / smart - home / news / amazon / 138846 what is alexa how does it work and what can -amazons-alexa-do(hämtad 2020-01-23).

[17] Zigbee Alliance. Zigbee - The full-stack solution interlacing all your smart devices.URL: https://zigbeealliance.org/solution/zigbee/

(hämtad 2020-03-17).

[18] Z-Wave. URL: https://www.develcoproducts.com/technologies/

z-wave/(hämtad 2020-05-16).

[19] Learn About Bluetooth. URL: https://www.bluetooth.com/learn-about-bluetooth/(hämtad 2020-06-10).

[20] IFTTT. What is IFTTT? URL: https : / / help . ifttt . com / hc / en -us/articles/115010325748-What-is-IFTTT(hämtad 2020-01-23).

[21] IFTTT. Realtime API. URL: https : / / platform . ifttt . com / docs / api_reference#realtime-api(hämtad 2020-03-09).

[22] IFTTT. FAQ. URL: https://platform.ifttt.com/docs/faq (häm-tad 2020-03-09).

[23] What is a Raspberry Pi?URL: https://www.raspberrypi.org/help/

what-%5C%20is-a-raspberry-pi/(hämtad 2020-05-17).

[24] X. Mi, Y. Zhang, F. Qian m. fl. ”An Empirical Characterization of IFTTT: Ecosystem, Usage and Performance”. I: (2017).

[25] Mattias Axelsson. Vad är scrum?URL: https://www.happiness.se/

artiklar/vad-ar-scrum(hämtad 2020-01-23).

[26] Microsoft. Code editing. Redefined.URL: https://code.visualstudio.

com/(hämtad 2020-05-11).

[27] Studio 3T. Release the full power of MongoDB.URL: https://studio3t.

com/(hämtad 2020-05-11).

[28] SSH (Secure Shell). URL: https : / / www . ssh . com / ssh/ (hämtad 2020-05-11).

[29] Microsoft. Remote Development using SSH. URL: https : / / code . visualstudio.com/docs/remote/ssh(hämtad 2020-05-11).

[30] draw.io. We Love Diagrams. URL: https://drawio-app.com/ (häm-tad 2020-05-20).

[31] Those Icons. Those Icons.URL: https://www.flaticon.com/authors/

those-icons(hämtad 2020-05-20).

[32] IFTTT. Testing.URL: https://platform.ifttt.com/docs/testing#

oauth(hämtad 2020-05-18).

[33] IFTTT. Testing. URL: https://platform.ifttt.com/docs/testing (hämtad 2020-05-18).

[34] IFTTT. Getting started with Node.js. URL: https://platform.ifttt.

com / docs / example _ services # getting - started - with - node - js (hämtad 2020-03-09).

[35] glitch. Glitch is the friendly community where everyone builds the web.

URL: https://glitch.com (hämtad 2020-03-09).

[36] IFTTT. General API requirements. URL: https: / /platform .ifttt . com/docs/api_reference(hämtad 2020-04-29).

[37] Angular. Validating form input. URL: https://angular.io/guide/

form-validation(hämtad 2020-05-18).

[38] What is the unix time stamp? URL: https : / / www . unixtimestamp . com/index.php(hämtad 2020-05-17).

[39] Moment Timezone.URL: https://momentjs.com/timezone/ (hämtad 2020-05-20).

[40] Sam Quinn. Bulletproof node.js project architecture. URL: https : / / softwareontheroad.com/ideal-nodejs-project-structure/ (häm-tad 2020-05-11).

A Enkät

Figur A.1: Fråga 1

Figur A.2: Fråga 2

Figur A.3: Fråga 3

Figur A.4: Fråga 4

Figur A.5: Fråga 5

Figur A.6: Fråga 6

Figur A.7: Fråga 7

Figur A.8: Fråga 8

Figur A.9: Fråga 9

Figur A.10: Fråga 10

B Triggers

Tabell B.1: Prototypens triggers och när de aktiveras

Triggernamn Aktiveras när?

starts_charging När stolen börjar ladda stops_charging När stolen slutar ladda fully_charged När stolens batteri når 100%

battery_low När stolens batteri går under 15%

battery_level När stolens batteri går över / under en gräns satt av användaren.

need_service Stolen rapporterar en felkod med varningsnivå error.

chair_is_moving När tre GPS-uppdateringar har skett inom 10 minu-ter.

adjustments_before_time Om användaren inte har gjort ett försatt antal sittpo-sitionsändringar före ett bestämt klockslag.

sitting_still_long Om användaren inte har ändrat sittposition på ett försatt antal minuter.

Tabell B.2: Ingredienser för samtliga triggers

Triggernamn Ingredienser

starts_charging • created_at: ISO 8601 timestamp

• percentage: Batterinivå när eventet utlöstes stops_charging • created_at: ISO 8601 timestamp

• percentage: Batterinivå när eventet utlöstes fully_charged • created_at: ISO 8601 timestamp

battery_low • created_at: ISO 8601 timestamp battery_level • created_at: ISO 8601 timestamp

• battery_level: Den försatta gränsen för batterinivån

• above_or_below: Om den ska aktiveras när nivån går över eller under den satta gränsen

need_service • created_at: ISO 8601 timestamp chair_is_moving • created_at: ISO 8601 timestamp

• longitude: Senast kända

• latitude: Senast kända

• altitude: Senast kända

adjustments_before_time • created_at: ISO 8601 timestamp

• adjustments: Antalet sittpositionsändringar

• time: Den satta tiden

sitting_still_long • created_at: ISO 8601 timestamp

• duration: Antalet minuter användaren har suttit still

Tabell B.3: Trigger-fält för battery_level

Namn Förklaring Validering

battery_level Gränsen för vid vilken batterinivå triggern ska aktiveras.

Regex: ^([1-9]|[1-9][0-9])$

above_or_below Om triggern ska aktiveras när nivån går över eller under den satta gränsen, väljs från en lista.

Väljs från en lista.

Tabell B.4: Trigger-fält för adjustments_before_time

Namn Förklaring Validering

adjustments Antalet sittpositionsändringar som ska ha gjorts innan den satta tiden.

Regex: ^[0-9]*$

time Tiden det satta antalet ändringar ska ha gjorts innan.

Regex:

^([0-1][0-9]|[2][0-3]):([0-5][0-9])$

Tabell B.5: Trigger-fält för sitting_still_long

Namn Förklaring Validering

duration Hur länge användaren ska ha suttit still innan triggern aktiveras

Regex: ^[0-9]*$

C Projekt- och databasstruktur

Projektets filstruktur är i grunden uppdelat i två delar, en för server-delen och en för frontend-delen. Figur C.1 visar projektets filstruktur.

root

Figur C.1: Filstruktur för projektet. Endast mappar visas.

Ett UML-diagram över projektets databasstruktur presenteras i figur C.2.

Figur C.2: UML-Diagram för prototypens databas.

Related documents