This repository contains firmware for HARDWARIO Generic Node.
You need to install HARDWARIO Toolchain with HARDWARIO Firmware Tool
-
Programming firmware for generic nodes:
bcf flash --dfu bigclownlabs/bcf-generic-node-battery-mini:latest bcf flash --dfu bigclownlabs/bcf-generic-node-battery-standard:latest bcf flash --dfu bigclownlabs/bcf-generic-node-power-module-rgb150:latest bcf flash --dfu bigclownlabs/bcf-generic-node-power-module-rgb300:latest bcf flash --dfu bigclownlabs/bcf-generic-node-power-module-rgbw144:latest bcf flash --dfu bigclownlabs/bcf-generic-node-power-module-rgbw72:latest
Note: Different variants of FW are optimized according to the power supply source: battery-mini: 2 x AAA, battery-standard: 4 x AAA, node-power = 5 V DC Jack or 5 V USB. You can also chose type and length of digital LED strip connected to Power Module.
Programming firmware for USB gateway:
-
USB Dongle:
bcf flash bigclownlabs/bcf-gateway-usb-dongle:latest --device "device_name"
Command for list of devices name
bcf devices -v
Example of device_name in Linux:
/dev/ttyUSB0
Example of device_name in Windows:
COM1
-
Core Module:
bcf flash --dfu bigclownlabs/bcf-gateway-core-module:latest
Show values of connected sensors and battery voltage (if Battery Module or Mini Battery Module is connected). Can be used also for chosing basic effect of LED strip (if Power Module is connected). Use left or right button on LCD Module to browse the menu.
Value | Unit | Suported modules (sensors) |
---|---|---|
temperature | °C | Temperature Tag or Climate Module (both higher priority) and TMP112 sensor at Core Module (lower priority) |
relative humidity | % | Humidity Tag R1.x (HTS221), R2.x (HDC2080), R3.x (SHT20) and Climate module (SHT20) |
CO2 concentration | ppm | CO2 Module |
light intensity | lux | Lux Meter Tag and Climate Module |
atmospheric preasure, altitude | hPa, m | Barometer Tag and Climate Module |
battery voltage and capacity | V, % | Battery Module and Mini Battery module |
LED effect setting | NA | Power Module |
MQTT Commands can be sent only from paired gateway. Use Core Module or USB Dongle with gateway firmware connected to Raspberry Pi with installed HARDWARIO Raspbian image or Computer with installed HARDWARIO Playground.
- Subscribe to read all MQTT topics:
mosquitto_sub -v -t '#'
Module | Value | Unit | Update interval | Transmit periode |
---|---|---|---|---|
Temperature Tag | temperature | °C | 5 s | 15 min or delta 2°C |
Humidity Tag | relative humidity | % | 5 s | 15 min or delta 5% |
CO2 Module | CO2 concentration | ppm | 50 s or 15 s (1) | 15 min or delta 50 ppm |
Lux Meter Tag | light intensity | lux | 5 s | 15 min or delta 50 lux |
Barometer Tag | atmospheric preasure, altitude | hPa, m | 1 min | 15 min or delta 50 hPa |
Battery Module | battery voltage and capacity | V, % | 60 min | 60 min |
Mini Battery Module | battery voltage and capacity | V, % | 60 min | 60 min |
Climate Module | temperature | °C | 5 s | 15 min or delta 2°C |
relative humidity | % | 5 s | 15 min or delta 5% | |
light intensity | lux | 10 s | 15 min or delta 50 lux | |
atmospheric preasure, altitude | hPa, m | 1 min | 15 min or delta 50 hPa |
Default update interval and transmit periode can be modified in the source code.
Note 1: Default period for Battery or Mini Battery module is 50s, for Power Module: 15s.
Module | Value |
---|---|
PIR Module | motion detection event |
Core Module | button B press event |
Button Module | button B press event |
LCD Module | left or right button press event |
Sensor Module | channel A: flood detection |
- On
mosquitto_pub -t "node/{id}/led/-/state/set" -m true
- Off
mosquitto_pub -t "node/{id}/led/-/state/set" -m false
- Get state
mosquitto_pub -t "node/{id}/led/-/state/get" -n
-
On
mosquitto_pub -t 'node/{id}/relay/-/state/set' -m true
Hint First aid: If the relay not clicked, so make sure you join 5V DC adapter to Power Module
-
Off
mosquitto_pub -t 'node/{id}/relay/-/state/set' -m false
-
Get state
mosquitto_pub -t 'node/{id}/relay/-/state/get' -n
- On
mosquitto_pub -t "node/{id}/relay/0:0/state/set" -m true mosquitto_pub -t "node/{id}/relay/0:1/state/set" -m true
- Off
mosquitto_pub -t "node/{id}/relay/0:0/state/set" -m false mosquitto_pub -t "node/{id}/relay/0:1/state/set" -m false
- Get state
mosquitto_pub -t "node/{id}/relay/0:0/state/get" -n mosquitto_pub -t "node/{id}/relay/0:1/state/get" -n
Beware, it works only on remote nodes.
- Brightness, the value is in percent of the integer:
mosquitto_pub -t 'node/{id}/led-strip/-/brightness/set' -m 50
- Color, standart format #rrggbb and non standart format for white component #rrggbb(ww)
mosquitto_pub -t 'node/{id}/led-strip/-/color/set' -m '"#250000"' mosquitto_pub -t 'node/{id}/led-strip/-/color/set' -m '"#250000(80)"'
- Compound, format is [number of pixels, fill color, ... ], example rainbow effect
mosquitto_pub -t 'node/{id}/led-strip/-/compound/set' -m '[20, "#ff0000", 20, "#ff7f00", 20, "#ffff00", 20, "#00ff00", 20, "#0000ff", 20, "#960082", 24, "#D500ff"]'
- Effects
- Test
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"test"}'
- Rainbow
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"rainbow", "wait":50}'
- Rainbow cycle
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"rainbow-cycle", "wait":50}'
- Theater chase rainbow
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"theater-chase-rainbow", "wait":50}'
- Color wipe
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"color-wipe", "wait":50, "color":"#800000"}'
- Theater chase
mosquitto_pub -t 'node/{id}/led-strip/-/effect/set' -m '{"type":"theater-chase", "wait":50, "color":"#008000"}'
- Test
- Thermometer effect
mosquitto_pub -t 'node/{id}/led-strip/-/thermometer/set' -m '{"temperature": 22.5, "min":-20, "max": 50}'
mosquitto_pub -t 'node/{id}/led-strip/-/thermometer/set' -m '{"temperature": 22.5, "min":-20, "max": 50, "white-dots": 10}'
mosquitto_pub -t 'node/{id}/led-strip/-/thermometer/set' -m '{"temperature": 22.5, "min":-20, "max": 50, "set-point": 30, "color":"#ff0000"}'
mosquitto_pub -t 'node/{id}/led-strip/-/thermometer/set' -m '{"temperature": 22.5, "min":-20, "max": 50, "white-dots": 10, "set-point": 30, "color":"#ff0000"}'
-
Write text, supported font size [11, 13, 15, 24, 28, 33], default font is 15, color can by true or false, default is true
mosquitto_pub -t "node/{id}/lcd/-/text/set" -m '{"x": 5, "y": 10, "text": "HARDWARIO"}' mosquitto_pub -t "node/{id}/lcd/-/text/set" -m '{"x": 5, "y": 40, "text": "HARDWARIO", "font": 28}' mosquitto_pub -t "node/{id}/lcd/-/text/set" -m '{"x": 5, "y": 10, "text": "HARDWARIO", "color": true}'
-
Clear
mosquitto_pub -t "node/{id}/lcd/-/screen/clear" -n
Read more here bch-gateway
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤ by HARDWARIO a.s. in the heart of Europe.