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 🙏

© 2024 – Pkg Stats / Ryan Hefner

homeduino

v0.0.71

Published

Node.js library for interfacing with the homeduino ardunio library

Downloads

48

Readme

homeduinojs

Node.js library for using homeduino.

API

connect


homeduino = require('homeduino')
Board = homeduino.Board
board = new Board('/dev/ttyUSB0', 115200)

board.connect().then( ->
  #do stuff
).done()

readDHT(type, pin)

Read a dht sensor

board.readDHT(22, 13).then( (ret) -> 
  console.log ret.temperature, ret.humidity
).done()

readDstSensors (pin)

Returns all Dallas temp sensors on [pin]

board.readDstSensors(12).then( (ret) -> 
  console.log ret.sensors
).done()

readDstSensor (pin, address)

Reads a sensor with [address] on [pin].

board.readDstSensor(12, '12312312333').then( (ret) -> 
  console.log ret.temperature
).done()

readDstAll (pin)

Reads all sensors connected to [pin]

board.readDstAll(12).then( (ret) -> 
  console.log ret.temperatures
).done()

rfControlStartReceiving(pin)


board.on "rfReceive", (event) -> 
  console.log 'received:', event.pulseLengths, event.pulses

board.on "rf", (event) -> 
  console.log "#{event.protocol}: ", event.values

board.connect().then( ->
  console.log "board ready"
  board.rfControlStartReceiving(0).then( ->
    console.log "receiving..."
  ).done()
).done()

pin read and writes

board.digitalWrite(4, 1).done()
board.analogWrite(1, 10).done()
board.digitalRead(4).then( (value) ->
  console.log value
).done()
board.analogRead(4).then( (value) ->
  console.log value
).done()
board.pinMode(1, 0).done()

REPL-Client

If a pimatic-homeduino instance is using the board make sure to shutdown pimatic as the board only allows for a single connection.

Setup:

git clone https://github.com/pimatic/homeduinojs && cd homeduinojs && npm install

Hint: If you want to use the client in a production setup you need to manually install the colors package as shown below.

cd ~/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules
npm i colors

Start the REPL-Client which is located in the lib directory:

# cd ~/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib in a production setup
cd homeduinojs/lib
sudo ./client.js /dev/ttyUSB0 115200

It will connect to the arduino and give you a prompt, where you can enter a javascript command. To start receiving RF data enter the command board.rfControlStartReceiving(0) or board.rfControlStartReceiving(1) depending on the receiving pin used in your setup

connecting to /dev/ttyUSB0 with 115200
raw data: "ready"
connected
homeduino> board.rfControlStartReceiving(0)
raw data: "ACK"
undefined
homeduino> raw data: "RF receive 516 1928 3880 9204 0 0 0 0 01020102010202020201010102010101010101010202020101010101010102010201020103"
processed: "pulseLengths":[516,1928,3880,9204],"pulses":"01020102010202020201010102010101010101010202020101010101010102010201020103"
matched proto: "weather1: {"id":120,"channel":1,"temperature":22.4,"humidity":42,"lowBattery":false}"
matched proto: "weather5: {"id":234,"lowBattery":true,"temperature":179.3,"humidity":40}"
matched proto: "weather16: {"id":234,"channel":1,"temperature":179.3,"humidity":164,"lowBattery":true}"

The output is colorized by default. You can disable colors by starting the REPL-Client with the option --no-color.