homeduino

    0.0.71 • Public • Published

    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.

    Install

    npm i homeduino

    DownloadsWeekly Downloads

    14

    Version

    0.0.71

    License

    GPL-3.0

    Unpacked Size

    357 kB

    Total Files

    115

    Last publish

    Collaborators

    • icesory
    • mwittig
    • sweetpi