HALBERT는 Raspberry Pi 에서 실행되는 작은 Node.js 프로젝트입니다. 간단하고 작성하기 쉬운 모듈을 사용하여 쉽게 확장할 수 있도록 설계되었습니다. 이름은 2001: A Space Odyssey의 HAL-9000 컴퓨터와 전형적인 집사 이름인 Albert를 조합한 것입니다.
Halbert에는 다음과 같은 기능이 있습니다.
시작하려면 npm에서 Halbert-CLI를 다운로드하세요.
npm install -g halbert-cli
또는 실을 사용하여.
yarn global add halbert-cli
그런 다음 다음을 사용하여 새 HALBERT 인스턴스를 만듭니다. 그러면 해당 이름으로 새 폴더가 생성되고 기본 파일과 폴더가 생성됩니다.
halbert new < directory-name >
그런 다음 디렉터리를 새로 생성된 디렉터리로 변경할 수 있습니다. 그런 다음 halbert start
사용하여 시스템을 시작할 수 있습니다. ( npm install
프로세스가 실패한 경우 시작하기 전에 수동으로 설치해야 할 수도 있습니다. )
cd < directory-name >
halbert start
새 HALBERT 인스턴스를 생성하면 다음과 유사한 폴더 구조가 생성됩니다.
your-directory
halbert.config.json
modules/
node_modules/
package.json
persist
halbert.config.json - 구성 파일입니다. 그 기능은 여기에 문서화되어 있습니다. 이 파일은 시스템 자체뿐만 아니라 모든 모듈의 기본 구성을 저장합니다.
module/ - 이것은 자신의 모듈을 넣을 수 있는 폴더입니다. 직접 만들 수도 있고 다른 소스에서 다운로드할 수도 있습니다.
node_modules/ - NPM 모듈 폴더입니다.
package.json - package.json 파일입니다. Halbert-core를 설치하는 데 사용됩니다.
persist/ - 시스템 시작 시 지속되는 데이터를 저장하는 데 사용됩니다.
예시 구성은 다음과 같습니다.
{
"device": {
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"weather": {
"openWeatherMapApiKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"server": {
"port": 3000,
"cacheTemplates": false
},
"modules": {
"switches": {
"gpio": {
"remote": 15
},
"available": [
{
"id": "desk-leds",
"name": "Desk LED",
"hotwords": ["desk led", "desk leds", "leds on the desk"],
"type": "remote",
"protocol": "intertechno",
"code": "A1"
},
{
"id": "desk-light",
"name": "Desk Light",
"hotwords": ["desk light", "desk lamp", "lamp on the desk", "light on the desk"],
"type": "remote",
"protocol": "intertechno",
"code": "A2"
}
]
},
"ifttt": {
"apiKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"webhookSecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}
곧 출시 예정
모듈은 Halbert 논리의 주요 소스입니다. 기본 기능을 제공하는 여러 내장 모듈이 있습니다. 하지만 이 시스템의 주요 목적은 사용자가 자신의 모듈을 만들고 공유할 수 있도록 하는 것입니다.
원하는 모듈 이름으로 새 폴더를 만듭니다(공백이 없어야 하고 소문자여야 함). 해당 폴더 안에 index.js 파일을 만듭니다. 이것이 당신의 진입점이 될 것입니다. 상용구 index.js 파일은 다음과 같습니다.
module . exports = function ( builder ) {
// Your Code in here
} ;
빌더 개체는 위젯, API 경로, 작업 또는 트리거와 같은 기본 시스템에 대한 액세스를 제공하는 유틸리티입니다.
Builder는 다양한 하위 개체로 구성됩니다.
이 빌더를 사용하면 Apple의 홈 키트에서 사용할 액세서리를 만들 수 있습니다. Halbert는 HomeKit-Bridge를 배포하므로 iOS 홈 앱을 통해 빌드 중인 항목을 제어 가능하게 만들 수 있습니다.
createAccessory(name, id)
-> Accessory
액세서리를 만들고 반품하세요. 이러한 보조 개체를 사용하여 추가 작업하는 방법을 알고 싶다면 HAP-NodeJS를 참조하세요.
getAccessories()
-> Array
이 모듈에 등록된 액세서리 목록을 가져옵니다.
이 빌더를 사용하면 다른 모듈, 위젯 등에서 사용할 작업을 생성할 수 있습니다. 이러한 호출을 연결할 수 있습니다.
createAction(actionId)
-> ActionBuilder
제공된 ID로 작업을 만듭니다.
setMeta(name, sentence)
-> ActionBuilder
액션의 메타데이터를 설정합니다. 이는 액션 제목과 문장을 의미합니다. 문장 부분은 ' If Trigger, then [X] ' 문장에 맞아야 합니다.
setCallback()
-> ActionBuilder
작업 호출에 대한 콜백을 설정합니다. 콜백에는 input
인수가 제공됩니다. 예:
. setCallback ( function ( input ) {
console . log ( input . temperature ) ;
} ) ;
getActions()
-> Array
이 모듈의 작업 목록을 가져옵니다.
코드는 JLongster의 prettier를 사용하여 형식화되었습니다.