doorbell/bellpush.js

changeset 0
e8ccd40d0ef6
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doorbell/bellpush.js	Thu Jun 04 14:50:33 2015 +0200
     1.3 @@ -0,0 +1,58 @@
     1.4 +#! /usr/bin/env node
     1.5 +//
     1.6 +//  Doorbell - Door Bell Gateway for Mesh Networks
     1.7 +//  Copyright © 2015 Michael Schloh von Bennewitz <michael@schloh.com>
     1.8 +//
     1.9 +//  Permission to use, copy, modify, and/or distribute this software for
    1.10 +//  any purpose with or without fee is hereby granted, provided that the
    1.11 +//  above copyright notice and this permission notice appear in all copies.
    1.12 +//
    1.13 +//  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
    1.14 +//  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
    1.15 +//  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
    1.16 +//  AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
    1.17 +//  DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
    1.18 +//  PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
    1.19 +//  ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
    1.20 +//  THIS SOFTWARE.
    1.21 +//
    1.22 +//  This file is part of Doorbell, a smart door bell IoT gateway
    1.23 +//  which can be found at http://dev.europalab.com/doorbell/
    1.24 +//
    1.25 +//  bellpush.js: ECMA JavaScript implementation
    1.26 +//
    1.27 +
    1.28 +/***********************************************************
    1.29 +|              _                  _          _ _           |
    1.30 +|           __| | ___   ___  _ __| |__   ___| | |          |
    1.31 +|          / _` |/ _ \ / _ \| '__| '_ \ / _ \ | |          |
    1.32 +|         | (_| | (_) | (_) | |  | |_) |  __/ | |          |
    1.33 +|          \__,_|\___/ \___/|_|  |_.__/ \___|_|_|          |
    1.34 +|                                                          |
    1.35 +| Requirements: MQTT broker with standard configuration    |
    1.36 +|               NodeJS and NPM modules (see package.json)  |
    1.37 +|                                                          |
    1.38 +| Execute: To start this application, launch it with the   |
    1.39 +|          script named bellpush.js: $ ./bellpush.js       |
    1.40 +|                                                          |
    1.41 +| Support: http://list.europalab.com/mailman/doorbell/     |
    1.42 +|                                                          |
    1.43 +| Test: mosquitto_sub -t door/bell                         |
    1.44 +|                                                          |
    1.45 +***********************************************************/
    1.46 +
    1.47 +// Simple doorbell publish client
    1.48 +var mqtt = require('mqtt')
    1.49 +var locli = mqtt.connect('mqtt://localhost/');
    1.50 +var args = process.argv.slice(2).length;  // Argc
    1.51 +var prog = process.argv.slice(1)[0];  // Program name
    1.52 +var parm = process.argv.slice(2)[0];  // Parameter cmd
    1.53 +
    1.54 +// Either activate or deactivate the doorbell
    1.55 +if (args > 1 || parm != 'ON' && parm != 'OFF')
    1.56 +    console.error('usage: %s <ON|OFF>', prog);
    1.57 +else
    1.58 +    locli.publish('/door/bell', parm);
    1.59 +
    1.60 +// Close connection
    1.61 +locli.end();

mercurial