Трудно понять "Вероятно, равно" в Javascript

Этот проект включает и выключает устройства и такие устройства с помощью homekit Apples и сервера node.js на raspberry pi ( https://github.com/KhaosT/HAP-NodeJS). Так, Light_accessory.js, когда vaule имеет значение true(1), включает лампу (реле), используя дочерние процессы и проводку pi. Также необходимо выключить лампу (gpio write 7 1), когда значение равно false(0). Iv попытался добавить "вероятно, равно" к нему, чтобы он также выключил лампу (реле). Попытка добавить Два результата, полученные мной, и ночь поиска в Google и синтаксических ошибок. Я потратил гораздо больше времени на этот проект, чем мне хотелось бы признать. Проще говоря, цель очень похожа на проект, с которым я работал некоторое время назад. PHP.

?php 
    if(isset($_GET['trigger']) && $_GET['trigger'] == 1) {
        error_reporting(E_ALL);
        exec('gpio write 7 0');
    }
    if(isset($_GET['trigger']) && $_GET['trigger'] == 2) {
        error_reporting(E_ALL);
        exec('gpio write 7 1');
    }
?>

..................................................................................................................................................................

Здесь значение gpio установлено на низкое значение (запись gpio 7 0), когда значение равно true(1).

{
            cType: types.POWER_STATE_CTYPE,
            onUpdate: function(value) {
                exec('gpio write 7 0' + value,function(error, stdout, stderr) {}
                );
            },
            perms: ["pw", "pr", "ev"],
            format: "bool",
            initialValue: false,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Turn On the Light",
            designedMaxLength: 1
        }, {

Как вы добавляете

exec('gpio write 7 1'(error, stdout, stderr)

когда значение равно 0 в JavaScript? Таким образом, лампа (реле) также выключается.

..................................................................................................................................................................

Общий обзор Light_accessory.js; Верхняя часть в основном описание продукта, а не фактическая функция. "cType: types.POWER_STATE_CTYPE" в разделе "OnUpdate:" - это место, где происходит волшебство.

..................................................................................................................................................................

Полный Light_accessory скрипт

// HomeKit types required
var types = require("./types.js")
var exports = module.exports = {};
var exec = require('child_process').exec;

var execute = function(accessory, characteristic, value) {
    console.log("executed accessory: " + accessory + ", and characteristic: " + characteristic + ", with value: " + value + ".");
}

exports.accessory = {
    displayName: "Light 1",
    username: "1A:2B:3C:4D:5E:FF",
    pincode: "031-45-154",
    services: [{
        sType: types.ACCESSORY_INFORMATION_STYPE,
        characteristics: [{
            cType: types.NAME_CTYPE,
            onUpdate: null,
            perms: ["pr"],
            format: "string",
            initialValue: "Light 1",
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Bla",
            designedMaxLength: 255
        }, {
            cType: types.MANUFACTURER_CTYPE,
            onUpdate: null,
            perms: ["pr"],
            format: "string",
            initialValue: "Oltica",
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Bla",
            designedMaxLength: 255
        }, {
            cType: types.MODEL_CTYPE,
            onUpdate: null,
            perms: ["pr"],
            format: "string",
            initialValue: "Rev-1",
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Bla",
            designedMaxLength: 255
        }, {
            cType: types.SERIAL_NUMBER_CTYPE,
            onUpdate: null,
            perms: ["pr"],
            format: "string",
            initialValue: "A1S2NASF88EW",
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Bla",
            designedMaxLength: 255
        }, {
            cType: types.IDENTIFY_CTYPE,
            onUpdate: null,
            perms: ["pw"],
            format: "bool",
            initialValue: false,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Identify Accessory",
            designedMaxLength: 1
        }]
    }, {
        sType: types.LIGHTBULB_STYPE,
        characteristics: [{
            cType: types.NAME_CTYPE,
            onUpdate: null,
            perms: ["pr"],
            format: "string",
            initialValue: "Light 1",
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Bla",
            designedMaxLength: 255
        }, {
            cType: types.POWER_STATE_CTYPE,
            onUpdate: function(value) {
                exec('gpio write 7 0' + value,function(error, stdout, stderr) {}
                );
            },
            perms: ["pw", "pr", "ev"],
            format: "bool",
            initialValue: false,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Turn On the Light",
            designedMaxLength: 1
        }, {
            cType: types.HUE_CTYPE,
            onUpdate: function(value) {
                console.log("Change:", value);
                execute("Test Accessory 1", "Light - Hue", value);
            },
            perms: ["pw", "pr", "ev"],
            format: "int",
            initialValue: 0,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Adjust Hue of Light",
            designedMinValue: 0,
            designedMaxValue: 360,
            designedMinStep: 1,
            unit: "arcdegrees"
        }, {
            cType: types.BRIGHTNESS_CTYPE,
            onUpdate: function(value) {
                console.log("Change:", value);
                execute("Test Accessory 1", "Light - Brightness", value);
            },
            perms: ["pw", "pr", "ev"],
            format: "int",
            initialValue: 0,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Adjust Brightness of Light",
            designedMinValue: 0,
            designedMaxValue: 100,
            designedMinStep: 1,
            unit: "%"
        }, {
            cType: types.SATURATION_CTYPE,
            onUpdate: function(value) {
                console.log("Change:", value);
                execute("Test Accessory 1", "Light - Saturation", value);
            },
            perms: ["pw", "pr", "ev"],
            format: "int",
            initialValue: 0,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Adjust Saturation of Light",
            designedMinValue: 0,
            designedMaxValue: 100,
            designedMinStep: 1,
            unit: "%"
        }]
    }]
}

2 ответа

Решение
{
            cType: types.POWER_STATE_CTYPE,
            onUpdate: function(value) {
                if(value == 1){
                    exec('gpio write 7 0')
                    setTimeout(function() {exec('gpio write 7 1')},250)

                }
                if(value == 0){
                    exec('gpio write 6 0')
                    setTimeout(function() {exec('gpio write 6 1')},250)
                }
            },
            perms: ["pw", "pr", "ev"],
            format: "bool",
            initialValue: false,
            supportEvents: false,
            supportBonjour: false,
            manfDescription: "Turn On the Light",
            designedMaxLength: 1
        }, 

Фромм сам возился с этим пакетом. Я заметил, что значение "true" или "false", а не 1 или 0

Попробуйте проверить на истину, затем запишите 1

value == true ? 1 : 0

Согласно запросу, здесь используется ваш пример. { cType: types.POWER_STATE_CTYPE, onUpdate: function(value) { exec('gpio write 7 0 ' + (value == true ? 1 : 0) ,function(error, stdout, stderr) {} ); }, perms: ["pw", "pr", "ev"], format: "bool", initialValue: false, supportEvents: false, supportBonjour: false, manfDescription: "Turn On the Light", designedMaxLength: 1 }

Другие вопросы по тегам