npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

signalk-daly-bms

v1.0.0

Published

Daly Smart BMS integration via RS485 for SignalK

Readme

signalk-daly-bms

A SignalK plugin that reads data from a Daly Smart BMS via RS485 serial connection and publishes it to the SignalK data model.

Features

  • Total voltage, current and state of charge (SOC)
  • Individual cell voltages (4S, 8S, 16S — auto-detected)
  • Battery temperature
  • Fault/alarm flag
  • Configurable serial port, poll interval and battery instance name
  • Works with any USB-to-RS485 adapter

Hardware requirements

  • Daly Smart BMS with RS485 port (all cell configurations supported)
  • USB-to-RS485 adapter connected to the SignalK host (e.g. Raspberry Pi)
  • RS485 cable wired to the BMS: connect A, B and GND

Wiring — Daly USB-RS485 cable

The Daly USB-RS485 cable has a 5-pin JST GH connector. With the contacts facing you, pin 1 is on the right (JST standard).

  contacts facing you, locking latch on top

  ┌─────────────────────────┐
  │  5    4    3    2    1  │
  │  TX   RX   GND  A    B  │
  └─────────────────────────┘
       ←————————————————————

| Pin | Colour | Signal | Connect to RS485 adapter | |-----|--------|--------|--------------------------| | 1 | White | B (RS485−) | B | | 2 | Green | A (RS485+) | A | | 3 | Black | GND | GND | | 4 | — | RX (UART) | not used | | 5 | — | TX (UART) | not used |

Note: if you get no response, swap A and B — some adapters label them in reverse.

Installation

From the SignalK app store

Search for signalk-daly-bms in the SignalK server app store and click Install.

Manual

cd ~/.signalk
npm install signalk-daly-bms

Restart the SignalK server after installation.

Configuration

Open the SignalK server web UI → Server → Plugin Config → Daly BMS (RS485).

| Setting | Default | Description | |---|---|---| | Serial port | /dev/ttyUSB0 | Serial device of the RS485 adapter | | Baud rate | 9600 | Must match BMS setting (9600 is standard) | | Poll interval | 5 | Seconds between data requests | | Battery instance | house | Instance name used in the SignalK path |

On Linux the port is typically /dev/ttyUSB0 or /dev/ttyUSB1.
On Windows use COM3, COM4 etc.

The pi user may need to be added to the dialout group for serial port access:

sudo usermod -a -G dialout pi

SignalK paths

All values are published under electrical.batteries.<instance>.*:

| Path | Unit | Description | |---|---|---| | electrical.batteries.house.voltage | V | Total pack voltage | | electrical.batteries.house.current | A | Current (negative = discharging) | | electrical.batteries.house.capacity.stateOfCharge | ratio | State of charge (0–1) | | electrical.batteries.house.temperature | K | Battery temperature | | electrical.batteries.house.cells.1.voltage | V | Cell 1 voltage | | electrical.batteries.house.cells.N.voltage | V | Cell N voltage (N = 1 … cell count) | | electrical.batteries.house.alarm | boolean | True if any fault flag is set |

Cell count is read automatically from the BMS on startup.

Compatibility

Tested on:

  • Daly Smart BMS 4S 12V 500A

Should work with any Daly Smart BMS that supports the standard RS485 protocol (all cell counts).

License

MIT