[RELEASE] HubHazard automation server

About The Project

HubHazard is a simple home-automation server that allows you to easily write automations using Typescirpt (Javascript with extra features). It's targeted towards people with basic programming skills. You don't have to be a professional developer to use it effectively.

When using HubHazard our automations can be as simple as a button toggling a light or as complex as an automated co-op escape room controller. You could even integrate an AI to help you control your house. All you need is a device that supports Node.js 10+, for example a $5 Raspberry Pi Zero W.

Project Link: https://github.com/hubhazard/core


The project documentation is available in the form of a wiki.

Getting Started

  1. Create a new project:
  2. Your first automation
  3. Setup Hubitat integration


  1. Home automation with HubHazard
  2. Starting with HubHazard

Built With


A very cool project -- I hope it catches on!!

1 Like

Release v0.1.3


  • Generic getLevel function for capabilities: MusicPlayer, SwitchLevel
  • Generic functions for capabilities: Bulb, Light, Outlet, RelaySwitch, SamsungTV, Switch:
    • isAnyOn
    • isOn
    • setSwitch
    • switchOff
    • switchOn
    • toggle
  • Generic isOpen function for ContactSensor capability.
  • Generic isPresent function for capabilities: Beacon, PresenceSensor.
  • setThermostatSetpoint function for virtual thermostats.
  • isAccelerating function for AccelerationSensor capability.
  • setAcceleration function for virtual acceleration sensors.
  • getCarbonDioxide function for CarbonDioxideMeasurement capability.
  • getCarbonMonoxide function for CarbonMonoxideMeasurement capability.
  • getIlluminance function for IlluminanceMeasurement capability.


  • Extracted Hubitat capabilities functions and types to separate files to simplify the codebase (#44)
  • Rename whichButtonIsDoubleTapped to whichButtonDoubleTapped
  • Rename whichButtonIsHeld to whichButtonHeld
  • Rename whichButtonIsPushed to whichButtonPushed
  • Rename whichButtonIsReleased to whichButtonReleased


  • Removed capability-specific functions:
    • getSwitchLevel - use getLevel
    • isAnyBulbOn - use isAnyOn
    • isAnyLightOn - use isAnyOn
    • isAnyOutletOn - use isAnyOn
    • isAnyRelaySwitchOn - use isAnyOn
    • isAnySwitchOn - use isAnyOn
    • isBulbOn - use isOn
    • isLightOn - use isOn
    • isOutletOn - use isOn
    • isRelaySwitchOn - use isOn
    • isSwitchOn - use isOn
    • isContactOpen - use isOpen
    • setBulb - use setSwitch
    • setLight - use setSwitch
    • setOutlet - use setSwitch
    • setRelaySwitch - use setSwitch
    • toggleBulb - use toggle
    • toggleLight - use toggle
    • toggleOutlet - use toggle
    • toggleRelaySwitch - use toggle
    • toggleSwitch - use toggle
1 Like

Release v0.1.4


  • Added support for DoorControl and
    GarageDoorControl capabilities by
    adding functions:
    • close
    • getDoorPosition
    • isClosed
    • open
    • setPosition
  • Added support for Valve capability by adding
    • close
    • getValvePosition
    • isClosed
    • open
    • setPosition
  • Added support for WindowShade
    capability by adding functions:
    • close
    • getWindowShadeCoverage
    • getWindowShadePosition
    • isClosed
    • open
    • setPosition
    • setWindowShadeCoverage
  • Added support for ContactSensor
    capability in virtual devices by adding functions:
    • close
    • open
  • Added support for DoorControl,
    WindowShade capabilities in isOpen
  • Added capability-related types:
    • EDoorStatus
    • EWindowShadePosition


  • Renamed EOpenStatus type to EOpenClosedPosition for greater compatibility with other capabilities.
1 Like

Cool project, but how does this compare to something like Node-RED and what makes it different?

HubHazard compared to NodeRed:

  • Automations are written in code which gives you much greater flexibility.
  • VERY easy to setup on devices like Raspberry Pi (install node.js, clone the template, edit config file)
  • Source control friendly as it's all just code.
  • Opens up a whole world of Javascript libraries which allow you to do pretty much anything.
  • Developer-friendly setup that supports modern IDEs and allows for automated testing.
  • Very easy to write and publish your own modules integrating different services (clone the module template, start coding)
  • Requires basic programming skills.
  • In the future it will provide additional features:
    • Dashboards - more flexible than those provided by Hubitat
    • Web-based editor, so you can modify your automations on-the-go
    • Hubitat simulator so you can test your automations without buying a separate Hubitat.
1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.