All Projects → baol → homely

baol / homely

Licence: other
🏠 - A bunch of mosquittos. IoT wiring and notification framework, with an unix style.

Programming Languages

go
31211 projects - #10 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to homely

Android Mqtt Alarm Panel
Android Alarm Panel for Home Assistant and Home Automation Platforms (http://thanksmister.com/android-mqtt-alarm-panel/)
Stars: ✭ 124 (+726.67%)
Mutual labels:  home-automation, mqtt
Broadlink Mqtt
MQTT client to control BroadLink devices
Stars: ✭ 169 (+1026.67%)
Mutual labels:  home-automation, mqtt
Ct Smart Home
A ready-to-use Node-RED setup for home automation
Stars: ✭ 132 (+780%)
Mutual labels:  home-automation, mqtt
Core
🏡 Open source home automation that puts local control and privacy first.
Stars: ✭ 48,265 (+321666.67%)
Mutual labels:  home-automation, mqtt
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-46.67%)
Mutual labels:  home-automation, mqtt
Cec Mqtt Bridge
A HDMI-CEC to MQTT bridge for connecting HDMI-CEC-devices to your Home Automation system.
Stars: ✭ 110 (+633.33%)
Mutual labels:  home-automation, mqtt
Homeautio.mqtt.googlehome
Stars: ✭ 168 (+1020%)
Mutual labels:  home-automation, mqtt
Frigate
NVR with realtime local object detection for IP cameras
Stars: ✭ 1,329 (+8760%)
Mutual labels:  home-automation, mqtt
Home Assistant
Home-Assistant-Config
Stars: ✭ 182 (+1113.33%)
Mutual labels:  home-automation, mqtt
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+15986.67%)
Mutual labels:  home-automation, mqtt
Loadcelloccupany
Home automation occupancy sensor using load cells
Stars: ✭ 103 (+586.67%)
Mutual labels:  home-automation, mqtt
Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (+593.33%)
Mutual labels:  notifications, mqtt
Home Assistant Main
My Main Instance
Stars: ✭ 104 (+593.33%)
Mutual labels:  home-automation, mqtt
Itead sonoff
Alternative firmware for Itead Sonoff switches, based on the MQTT protocol and a TLS connection
Stars: ✭ 115 (+666.67%)
Mutual labels:  home-automation, mqtt
Home Assistant Configuration
My Home Assistant Config. For more Information visit ->
Stars: ✭ 102 (+580%)
Mutual labels:  home-automation, mqtt
Temper Esp8266
Temper is a compact temperature sensor based on ESP8266 and SHT30 with large 13x7 pixel led display.
Stars: ✭ 155 (+933.33%)
Mutual labels:  home-automation, mqtt
Smarthome
Device integration platform for your smart home
Stars: ✭ 92 (+513.33%)
Mutual labels:  home-automation, mqtt
Psmqtt
Utility reporting system health and status via MQTT
Stars: ✭ 95 (+533.33%)
Mutual labels:  home-automation, mqtt
Home Assistant Config Fr
🏠Configuration de Home Assistant en français. 👨🏻‍💻 N'hésitez pas à ⭐ mon repo et à copier les bonnes idées ! 🇨🇵
Stars: ✭ 175 (+1066.67%)
Mutual labels:  home-automation, mqtt
Platypush
A versatile and extensible platform for home and life automation with hundreds of supported integrations
Stars: ✭ 192 (+1180%)
Mutual labels:  home-automation, mqtt

Homely

Introduction

Unix style IoT with MQTT.

Instead of developing YAMS (yet another monolithic solution) I'm trying to develop a bunch of small and independent softwares that communicate using MQTT that I call homely.

This tools are written in golang so they will not kill your Raspberry PI and should also be reasonably easy to adapt and extend in case they do not fit your exact needs.

Installation

You need to install golang first, then you can use the go tool to install homely with all the needed dependency with the following lines:

export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin

go get -u github.com/baol/homely/...
go install github.com/baol/homely/...

Prerequisites

A Unix background :)

A Linux computer (e.g. Raspberry PI) with some kind or IoT devices attached (433MHz, Z-Wave, ZigBee, or whatever).

An MQTT broker running on one of your machines (the reference implementation available at https://mosquitto.org/ will do, as should any packaged version).

In the following examples we will assume that the machine running MQTT is reachable at the address mqtt.local.

Recently services like https://www.cloudmqtt.com/ started to happear and they offer a free plan if you need to reach your broker from the public internet, but for our examples installing mosquitto on your Raspberry PI should be enough.

Example Deployment Diagram

Example Deployment Diagram

Examples

Receive a desktop notification when the main door opens

A Domoticz user wants to receive Desktop notifications every time the Main door of his apartment opens.

For this we will need the hl-telegram, hl-notify, hl-wiring and hl-domofilter modules.

First we need to configure domoticz to forward his messages to MQTT, so we go to the Hardware section and add a new "MQTT Client Gateway with LAN Interface" configured to forward all the messages to homely.local in the Flat (default) format.

Unfortunately Domoticz choice of topics does not fit well with homely so we need to run

hl-domofilter --mqtt tcp://mqtt.local:1883

To process some interesting Domoticz events and republish them as homely events. Assuming our main door sensor has id 2 (look in Domoticz Devices to know the id you are interested in), when the door will open this will publish a message to homely/status/2/On.

We also need to run the notifier

hl-notify --mqtt tcp://mqtt.local:1883

that will listen homely/notify/send for messages in the format {"message": "Main door open"} and send them to your desktop on Mac OS or Linux.

In order to wire the two together we also need hl-wiring

Edit ~/.homely/wiring.toml and write your rule there using the same id mentioned above:

[rule."homely/status/2/On"."homely/notification/send"]
payload = '{"message": "Main door open"}'

Now launch

hl-wiring --mqtt tcp://mqtt.local:1883

And enjoy your notifications!

Other tools

  • hl-telegram works the same way as hl-notify, but you first need to register your bot with the @BotFather and know the numeric userid you want to send notifications to. In order to know your id, send a message to your bot and go to

      https://api.telegram.org/bot<BOT-KEY>/getUpdates
    

    (replace <BOT-KEY> with the key received from the BotFather)

  • hl-flag works together with an Arduino powered physical notificatin devices to raise a flag on certain events, and can be controlled sending empty messages to homely/flag/up and homely/flag/down. See Materia Flag for details about the device.

    To wire your main door events to the Materia Flag add the following rules in wiring.toml

      [rule."homely/status/2/Off"."homely/flag/down"]
      [rule."homely/status/2/On"."homely/flag/up"]
    

Wiring can also be used to automate other actions, like switching off the lights when you turn on the TV: all messages sent to homely/command/<ID>/On and homely/command/<ID>/Off will be translated in Domoticz commands by hl-domofilter.

Happy hacking!

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].