이 프로젝트는 사과 homekit과 raspberry pi (https://github.com/KhaosT/HAP-NodeJS)의 node.js 서버를 사용하여 기기 등을 켜고 끕니다. 따라서 Light_accessory.js는 vaule이 true (1) 일 때 childprocces를 사용하여 램프 (릴레이)를 켜고 pi를 연결합니다. 또한 값이 false (0) 일 때 램프를 꺼야합니다 (gpio write 7 1). Iv는 "아마도 equals"를 추가하여 램프 (릴레이)를 끕니다. 두 개의 값을 추가하려고 시도했습니다. Google 검색 결과 및 구문 오류로 밤이되었습니다. Iv는이 프로젝트에서 제가 승인하고 싶은 것보다 더 많은 시간을 보냈습니다 .. 간단히 말해서 목표는 프로젝트와 매우 비슷합니다. PHP로.Javascript에서 "아마 같음"이라고 이해하는 데 어려움을 겪고 있습니다.
?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');
}
?>
.................................................. .................................................. .................................................. ...................
여기서 값이 true (1) 일 때 gpio가 low (gpio write 7 0)로 설정됩니다. 값이 자바 스크립트에서 0 인 경우
{
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)
을 추가하는 방법은 무엇입니까? 그렇게하면 램프 (릴레이)도 꺼집니다.
.............................................. .................................................. .................................................. ................
Light_accessory.js의 대략적인 개요; 윗부분은 실제 기능보다는 제품 설명이 대부분입니다. "OnUpdate :"아래의 "cType : types.POWER_STATE_CTYPE"은 마법이 발생하는 곳입니다.
.............................................. .................................................. .................................................. ................
전체 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: "%"
}]
}]
}
당신의'onUpdate' 기능에 if 문을 사용할 수 있습니까? "아마도 같음"이란 무엇을 의미합니까? –