https://github.com/pimatic/homeduinojs
Node.js library for interfacing with the homeduino ardunio library
https://github.com/pimatic/homeduinojs
433mhz home-automation homeduino pimatic
Last synced: 15 days ago
JSON representation
Node.js library for interfacing with the homeduino ardunio library
- Host: GitHub
- URL: https://github.com/pimatic/homeduinojs
- Owner: pimatic
- License: gpl-3.0
- Created: 2014-08-03T19:59:37.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-05-28T20:51:38.000Z (about 6 years ago)
- Last Synced: 2024-11-14T11:11:32.980Z (7 months ago)
- Topics: 433mhz, home-automation, homeduino, pimatic
- Language: JavaScript
- Homepage:
- Size: 367 KB
- Stars: 4
- Watchers: 6
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
homeduinojs
===========Node.js library for using [homeduino](https://github.com/sweetpi/homeduino).
API
---### connect
```CoffeeScript
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
```CoffeeScript
board.readDHT(22, 13).then( (ret) ->
console.log ret.temperature, ret.humidity
).done()
```### readDstSensors (pin)
Returns all Dallas temp sensors on [pin]
```CoffeeScript
board.readDstSensors(12).then( (ret) ->
console.log ret.sensors
).done()
```### readDstSensor (pin, address)
Reads a sensor with [address] on [pin].
```CoffeeScript
board.readDstSensor(12, '12312312333').then( (ret) ->
console.log ret.temperature
).done()
```### readDstAll (pin)
Reads all sensors connected to [pin]
```CoffeeScript
board.readDstAll(12).then( (ret) ->
console.log ret.temperatures
).done()
```### rfControlStartReceiving(pin)
```CoffeeScript
board.on "rfReceive", (event) ->
console.log 'received:', event.pulseLengths, event.pulsesboard.on "rf", (event) ->
console.log "#{event.protocol}: ", event.valuesboard.connect().then( ->
console.log "board ready"
board.rfControlStartReceiving(0).then( ->
console.log "receiving..."
).done()
).done()
```### pin read and writes
```CoffeeScript
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`.