Skip to content
DecisionNodeDecisionNdedocs
  • Guides
  • API reference
  • Examples
  • Playground

start here

  • QuickstartGet startedGet an API key, send one request with three questions, and branch your code on the typed answers. Plain HTTPS, nothing to install.
  • POST /v1/decideAPI referenceAnswer typed questions about a state, optional images and video frames. One request, one buffered JSON response, one answer per question.
  • QuestionsConceptsQuestions say what to decide. Each one has a type that fixes the shape of its answer: a choice from your options, a score on your scale, a…
  • ConfidenceConceptsProbabilities are calibrated per question type, so a threshold means what it says on the data we measure.
  • ImagesConceptsSend up to 16 images and text in the same request. The model reads printed and handwritten text, amounts, dates, objects and layout, and…
  • Batch jobsPatternsSend up to 10,000 requests in one file and collect the answers later, at a lower price than live calls.
  • Pricing and billingYou pay for input tokens only. Output is free because the model generates no text.
↑↓ moveopen7 suggestions
Get API keyGet API key
DecisionNodeDecisionNde

Get started

  • Introduction
  • Quickstart
  • CLI
  • Playground
  • Console and keys
  • With coding agents
  • MCP server
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Points and boxes
  • Images
  • Video
  • Boosters
  • Collections
  • Confidence
  • Determinism

Models

  • DecisionNode MoE
  • DecisionNode Flash
  • Limits
  • Versions
  • Dedicated capacity

Fine-tuning

  • Overview
  • Prepare your dataset
  • Upload and validation
  • Start a training run
  • Watch a run
  • The quality gate
  • Use your model
  • Limits and pricing

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loops
  • Batch jobs

Integrations

  • Home Assistant
  • MQTT bridge
  • ROS 2

API reference

  • Overview
  • POST/v1/decide
  • GET/v1/models
  • POST/v1/uploads
  • /v1/collections
  • Errors
  • Safety check
  • Rate limits

Sessions API

  • Sessions overview
  • POSTOpen a session
  • WSStream frames
  • DELEnd a session

Batch API

  • The batch object
  • POSTCreate a batch
  • POSTAdd requests
  • POSTFinalize a batch
  • GETRetrieve a batch
  • GETGet batch results
  • POSTCancel a batch
  • GETList batches

Pricing and billing

  • Pricing and billing
  • Refer & earn

Policies

  • Responsible use
  • Data and privacy
  • Benchmarks
  • Pricing
  • Playground
Get API key
  • Guides
  • API reference
  • Examples
  • Playground

Get started

  • Introduction
  • Quickstart
  • CLI
  • Playground
  • Console and keys
  • With coding agents
  • MCP server
  • Examples

Concepts

  • State
  • Questions
  • Choice
  • Score
  • Truth
  • Number
  • Points and boxes
  • Images
  • Video
  • Boosters
  • Collections
  • Confidence
  • Determinism

Models

  • DecisionNode MoE
  • DecisionNode Flash
  • Limits
  • Versions
  • Dedicated capacity

Fine-tuning

  • Overview
  • Prepare your dataset
  • Upload and validation
  • Start a training run
  • Watch a run
  • The quality gate
  • Use your model
  • Limits and pricing

Patterns

  • Confidence-gated routing
  • Fan-out
  • Guardrails
  • Control loops
  • Batch jobs

Integrations

  • Home Assistant
  • MQTT bridge
  • ROS 2

API reference

  • Overview
  • POST/v1/decide
  • GET/v1/models
  • POST/v1/uploads
  • /v1/collections
  • Errors
  • Safety check
  • Rate limits

Sessions API

  • Sessions overview
  • POSTOpen a session
  • WSStream frames
  • DELEnd a session

Batch API

  • The batch object
  • POSTCreate a batch
  • POSTAdd requests
  • POSTFinalize a batch
  • GETRetrieve a batch
  • GETGet batch results
  • POSTCancel a batch
  • GETList batches

Pricing and billing

  • Pricing and billing
  • Refer & earn

Policies

  • Responsible use
  • Data and privacy
  1. docs
  2. /
  3. Integrations

Home Assistant

Ask DecisionNode about your cameras' pictures, an image or any state from Home Assistant: a decide action, standing questions as sensors, and a Frigate trigger.

on this page7 sections
  1. Install
  2. Add the repository to HACS
  3. Download it
  4. Add the integration
  5. Quickstart: a package at the door
  6. Configuration
  7. Standing questions
  8. Frigate
  9. The API key

The DecisionNode integration lets Home Assistant ask calibrated questions about a camera's picture, an image or a state, and get typed answers back: a yes-or-no probability, a choice from options you name, a score on your scale or a number. Use the answers in automations, as sensors, or on a Frigate detection.

  • A decide action, decisionnode.decide, that asks questions and returns the answers as an action response and as the event decisionnode_decision.
  • Standing questions: a question asked on a schedule about a camera, shown as a binary sensor (yes or no) or a sensor (a choice, a score or a number).
  • A Frigate trigger: a person or car detection asks your questions about that event's snapshot.

Install#

  1. 1

    Add the repository to HACS#

    Until the integration is in HACS's default list, add it as a custom repository: in Home Assistant open HACS, the three-dot menu, Custom repositories, enter https://github.com/Bynn-Intelligence/decision-node-home-assistanthttps://github.com/Bynn-Intelligence/decision-node-home-assistant, choose the type Integration and select Add.

  2. 2

    Download it#

    Find DecisionNode in HACS, select Download, and restart Home Assistant.

  3. 3

    Add the integration#

    Go to Settings, Devices & services, Add integration, pick DecisionNode, and paste an API key from your console. The model defaults to decisionnode-moe; decisionnode-flash is the fast, lower-cost model.

Quickstart: a package at the door#

Questions are written as the API takes them: an id, then a type (truth, choice, score, number, point or box) and instructions. The decide action, its response, and an automation that turns on the porch light when a package is likely there:

action: decisionnode.decide
data:
  camera_entity_id: camera.front_door
  questions:
    package:
      type: truth
      instructions: Is a package on the doorstep?
    visitor:
      type: choice
      instructions: Who is at the door?
      criteria:
        courier: a delivery driver
        guest: someone visiting
        nobody: no one is there
response_variable: decision

Instead of a camera, pass image_url (an https URL that DecisionNode fetches) or image_path (a file in a directory listed in allowlist_external_dirs). Add state to give the questions text or data beside the picture. Every decision also fires decisionnode_decision, with source (service, standing or frigate) and the same fields.

Configuration#

Standing questions#

In the integration's Configure dialog, list standing questions as YAML. A truth question becomes a binary sensor, on when the probability reaches threshold (0.5 when left out). A choice, score or number question becomes a sensor whose state is the choice, the score or the number. interval is in seconds: 60 by default and at least 10. Each account sends at most two requests at a time, at least one second apart.

Standing questions
- name: Package at the door
  camera: camera.front_door
  question:
    type: truth
    instructions: Is a package on the doorstep?
  interval: 120
  threshold: 0.8

Frigate#

The Frigate trigger needs Home Assistant's MQTT integration connected to the broker Frigate publishes on. When Frigate reports an event of one of the labels, the integration reads its snapshot from Frigate and asks the questions; the answers arrive as decisionnode_decision (with source: frigate, event_id, camera and label) and on the sensor Last Frigate decision.

Frigate
enabled: true
frigate_url: http://frigate.local:5000
topic: frigate/events
labels: [person, car]
cameras: []        # all cameras; or list the ones to watch
event_type: new    # new, update or end
cooldown: 30       # seconds between two decisions for the same camera
questions:
  courier:
    type: truth
    instructions: Is this person a delivery driver?

The API key#

The key is kept in the integration's configuration and never written to the log. If DecisionNode refuses it later, Home Assistant asks you for a new one. Nothing is sent until a decide action runs, a standing question is due or a Frigate event matches your labels; then the picture goes to the API with your questions.

The source, the full README and the issues are in the repository. MIT licence.

previousBatch jobsnextMQTT bridge

DecisionNode is built and run by Bynn Intelligence, Inc.

  • Home
  • Playground
  • Examples
  • Console
  • Responsible use
  • Terms
  • Acceptable use
  • Privacy
  • Data processing
  • Defence addendum
  • Cookies
  • Affiliate program

on this page

  1. Install
  2. Add the repository to HACS
  3. Download it
  4. Add the integration
  5. Quickstart: a package at the door
  6. Configuration
  7. Standing questions
  8. Frigate
  9. The API key