roles/hap-nodejs/files/Door_accessory.js
changeset 1 bc6a0f25a229
parent 0 30d8bcb1ebb4
child 2 3ab597628612
--- a/roles/hap-nodejs/files/Door_accessory.js	Fri Jan 19 11:48:25 2018 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-var Accessory = require('../').Accessory;
-var Service = require('../').Service;
-var Characteristic = require('../').Characteristic;
-var uuid = require('../').uuid;
-var PythonShell = require('python-shell');
-
-var door = exports.accessory = new Accessory('Door', uuid.generate('hap-nodejs:accessories:door'));
-door.username = 'C1:5D:3A:EA:54:AB';
-door.pincode = '031-45-154';
-
-door.getService(Service.AccessoryInformation)
-    .setCharacteristic(Characteristic.Manufacturer, 'Raspberry Pi')
-    .setCharacteristic(Characteristic.Model, 'Zero W')
-    .setCharacteristic(Characteristic.SerialNumber, 'A1S2NASF88EW');
-
-var DOOR = {
-    lockTimeout: 10000, // milliseconds - 10 sec
-
-    pyshell: new PythonShell('doord.py', {
-        mode: 'text',
-        pythonPath: '/usr/bin/python3',
-        pythonOptions: ['-u'],
-        scriptPath: 'python/'
-    }),
-
-    lock: function() {
-        console.log('locking door');
-        this.pyshell.send('lock');
-    },
-
-    unlock: function() {
-        console.log('unlocking door');
-        this.pyshell.send('unlock');
-    },
-
-    identify: function() {
-        console.log('identify door');
-    },
-
-    listenDoorbell: function(doorbellOnCallback, doorbellOffCallback) {
-        this.pyshell.on('message', function (message) {
-            console.log(message);
-            switch(message) {
-            case 'doorbell_on':
-                doorbellOnCallback();
-                break;
-            case 'doorbell_off':
-                doorbellOffCallback();
-                break;
-            }
-        });
-    }
-};
-
-door.on('identify', function(paired, callback) {
-    DOOR.identify();
-    callback();
-});
-
-door.addService(Service.Doorbell, 'Doorbell');
-door.addService(Service.CameraRTPStreamManagement, 'Psudo-Camera');
-door.addService(Service.Speaker, 'Psudo-Speaker');
-door.addService(Service.Microphone, 'Psudo-Microphone');
-
-door.addService(Service.LockMechanism, 'Door')
-    .setCharacteristic(Characteristic.LockTargetState, Characteristic.LockTargetState.SECURED) // force initial state
-    .setCharacteristic(Characteristic.LockCurrentState, Characteristic.LockCurrentState.SECURED)
-    .getCharacteristic(Characteristic.LockTargetState)
-    .on('set', function(value, callback) {
-        setDoorTargetState(value);
-        callback();
-    });
-
-function setDoorTargetState(value) {
-    switch(value) {
-    case Characteristic.LockTargetState.UNSECURED:
-        unlockDoor();
-        break;
-    case Characteristic.LockTargetState.SECURED:
-        lockDoor();
-        break;
-    }
-}
-
-function unlockDoor() {
-    DOOR.unlock();
-    door.getService(Service.LockMechanism)
-        .setCharacteristic(Characteristic.LockCurrentState,
-                           Characteristic.LockCurrentState.UNSECURED);
-    scheduleUnlockTimeout();
-}
-
-function lockDoor() {
-    DOOR.lock();
-    door.getService(Service.LockMechanism)
-        .setCharacteristic(Characteristic.LockCurrentState,
-                           Characteristic.LockCurrentState.SECURED);
-}
-
-function scheduleUnlockTimeout() {
-    setTimeout(function() {
-        console.log('unlock timeout door');
-        door.getService(Service.LockMechanism)
-            .setCharacteristic(Characteristic.LockTargetState,
-                               Characteristic.LockTargetState.SECURED);
-    }, DOOR.lockTimeout);
-}
-
-DOOR.listenDoorbell(
-    function() {
-        door.getService(Service.Doorbell)
-            .setCharacteristic(Characteristic.ProgrammableSwitchEvent,
-                               Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS);
-    },
-    function() {});