All Projects → KI-labs → Hodor

KI-labs / Hodor

Licence: MIT License
Hodor is a an automation application that is used to open the door controlled by an intercom system from Slack using a custom slash command.

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hodor

aws-iam-slack-notifer
Notifies slack when an IAM policy is created, changed or assigned to a role
Stars: ✭ 35 (+66.67%)
Mutual labels:  slack, aws-lambda
Terraform Aws Notify Slack
Terraform module which creates SNS topic and Lambda function which sends notifications to Slack
Stars: ✭ 290 (+1280.95%)
Mutual labels:  slack, aws-lambda
Aws To Slack
Forward AWS CloudWatch Alarms and other notifications from Amazon SNS to Slack.
Stars: ✭ 261 (+1142.86%)
Mutual labels:  slack, aws-lambda
Aws Maintenance Lambda
A lambda function to send alerts (to Slack, HipChat) on AWS maintenance events.
Stars: ✭ 133 (+533.33%)
Mutual labels:  slack, aws-lambda
Papercups
Open-source live customer chat
Stars: ✭ 4,554 (+21585.71%)
Mutual labels:  slack, intercom
Claudia Bot Builder
Create chat bots for Facebook Messenger, Slack, Amazon Alexa, Skype, Telegram, Viber, Line, GroupMe, Kik and Twilio and deploy to AWS Lambda in minutes
Stars: ✭ 1,717 (+8076.19%)
Mutual labels:  slack, aws-lambda
super-serverless-sample
Backend serverless que simula o sistema de votação do BBB
Stars: ✭ 30 (+42.86%)
Mutual labels:  aws-lambda
bref-symfony-demo
[DEPRECATED] Demo of a Symfony application deployed on AWS lambda using Bref
Stars: ✭ 32 (+52.38%)
Mutual labels:  aws-lambda
burnout-barometer
A simple Slack tool to log, track, and assess you or your team's stress and work-life
Stars: ✭ 29 (+38.1%)
Mutual labels:  slack
MarsRoverHardware
PCB designs for the University of Waterloo Robotics Team
Stars: ✭ 61 (+190.48%)
Mutual labels:  hardware
node-slack-events-api
Slack Events API for Node
Stars: ✭ 93 (+342.86%)
Mutual labels:  slack
nestjs-graphql-serverless
Boilerplate for using NestJS with GraphQL (Code-First) on serverless environment (AWS Lambda)
Stars: ✭ 64 (+204.76%)
Mutual labels:  aws-lambda
lucidgloves
Arduino/ESP32 based DIY VR Haptic gloves. Compatible with SteamVR via OpenGloves.
Stars: ✭ 1,149 (+5371.43%)
Mutual labels:  hardware
amazon-ivs-ecommerce-web-demo
This repository shows how you can build a compelling eCommerce experience with Amazon IVS.
Stars: ✭ 19 (-9.52%)
Mutual labels:  aws-lambda
zappa-slack-inviter
A server-less Slack inviter
Stars: ✭ 32 (+52.38%)
Mutual labels:  slack
HardwareInformation
.NET Standard Cross-Platform Hardware Information Gatherer
Stars: ✭ 37 (+76.19%)
Mutual labels:  hardware
tamagotchi-tech-specs
Tamagotchi Tech Specs
Stars: ✭ 29 (+38.1%)
Mutual labels:  hardware
KCSviewer
Kansas City Standard tape decoder/viewer made with discrete transistors
Stars: ✭ 25 (+19.05%)
Mutual labels:  hardware
whats-your-name
Sample app for AWS Serverless Repository - uses Amazon Rekognition to recognize person on the photo
Stars: ✭ 17 (-19.05%)
Mutual labels:  aws-lambda
serilog-sinks-slackclient
Slack Sink for Serilog
Stars: ✭ 24 (+14.29%)
Mutual labels:  slack

Hodor

Hodor is a an automation application that is used to open the door controlled by an intercom system from Slack using a custom slash command.

How it Works

Once a command /door open is sent from slack, it is processed by the slack bot service and validated before triggering the door_service to activate the switch on the intercom system through the relay. Hodor in action

Wiring the Hardware

We imitate a button press on the intercom by short-circuiting the physical button on the intercom. This is done by using a simple relay which is controlled by the Raspberry Pi as shown in the figure. Hodor wiring

Components

Hodor architecture

  • door_service(nodejs_rpi): Raspberry Pi running a Node.js server that is connected to the intercom switch using a relay.
  • slack_bot: Slack integration with a custom slash command /door which is handled by a serverless Python web service running on AWS Lambda

How to Run?

Door Service

$ npm install 
$ node app.js

Deployment

If the server is run on port 80 of Raspberry Pi, it can be available on the internet using Dataplicity.

Cron jobs can be added to automatically restart the service on restart of the device.

@reboot /path/to/node /path/to/the/app.js &

Slack Bot

$ export VERIFICATION_TOKEN=<Verification Token for App from Slack>
$ export CHANNEL_ID=<Identifier for the Slack Channel in which command should be accessible>
$ export DOOR_SERVICE=<URL end point for the Node.js server running on Raspberry Pi>
$ pip install -r requirements.txt
$ python slack_bot.py

Deployment to AWS Lambda

$ zappa init
$ zappa deploy

Note: Your AWS credentials need to be configured for Zappa to work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].