elg0nz / serverless-slack-status-light

Slack controlled light to show your availability. No servers run/harmed in the process

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Serverless IoT Slack Status Light

A light controlled by Slack to communicate your availability. Powered by AWS IoT

Demo gif

More details available here: Blog

Directory Structure:

  • aws-lambda - AWS Lambda functions powered by Chalice
  • firmware - Source code our ESP8266 Firmware powered by Mongoose OS

Requirements:

*Affiliate Links

Instructions:

  1. Follow the Firmware setup in firmware/README.md
  2. Navigate to AWS IoT dashboard and head over to settings
  3. Write down the Custom Endpoint
  4. Modify aws-lambda/.chalice/config.json and change "CUSTOM_AWS_IOT_ENDPOINT" to the url you wrote down on the step before
  5. Follow the Lambda setup in aws-lambda/README.md
  6. Execute $ chalice url and write down the URL displayed
  7. Follow Slack setup instructions below

Slack Setup

  1. Navigate to Slack API Apps
  2. Click on "Create New App"
  3. Select your App Name & Workspace
  4. Navigate to Features > Slash Commands
  5. Create New Command
  6. Set command to "/set_status"
  7. Update request URL to CHALICE_URL.amazonaws.com/api/slack_command where CHALICE_URL is the URL you stored on step 6 above
  8. Set Usage hint to: "available | away | busy"
  9. Save and test!

MQTT commands & responses

Set Color Request

topic: "/commands/write/blinker" Sample request:

{"time": "2020-05-24T06:59:02+00:00", "red": 255, "green": 0, "blue": 0}

Parameters:

  • time: Timestamp of the request in ISO8601 format with timezones.
  • red: 0-255 value
  • green: 0-255 value
  • blue: 0-255 value

About

Slack controlled light to show your availability. No servers run/harmed in the process


Languages

Language:Python 63.2%Language:C 36.8%