HALBERT adalah proyek kecil Node.js, yang seharusnya dijalankan di Raspberry Pi . Ini dirancang agar mudah digunakan menggunakan modul yang sederhana dan mudah untuk ditulis. Nama tersebut merupakan kombinasi dari komputer HAL-9000 dari tahun 2001: A Space Odyssey dan nama kepala pelayan stereotip Albert .
Halbert memiliki beberapa fitur berikut:
Untuk memulai, unduh Halbert-CLI dari npm
npm install -g halbert-cli
atau menggunakan benang.
yarn global add halbert-cli
Kemudian, buat Instance HALBERT baru menggunakan. Ini akan membuat folder baru dengan nama yang diberikan, dan kemudian membuat file dan folder default.
halbert new < directory-name >
Anda kemudian dapat mengubah direktori ke direktori yang baru dibuat. Setelah itu, Anda dapat memulai sistem menggunakan halbert start
. ( Jika proses npm install
gagal, Anda mungkin harus melakukannya secara manual sebelum memulai. )
cd < directory-name >
halbert start
Saat Anda membuat Instans HALBERT baru, Anda mendapatkan struktur folder yang menyerupai ini:
your-directory
halbert.config.json
modules/
node_modules/
package.json
persist
halbert.config.json - Ini adalah file konfigurasi. Fitur-fiturnya didokumentasikan di sini. File ini menyimpan konfigurasi utama untuk sistem itu sendiri tetapi juga semua modulnya.
modul/ - Ini adalah folder tempat Anda dapat memasukkan modul Anda sendiri. Anda dapat membuatnya sendiri atau mendownloadnya dari sumber lain.
node_modules/ - Folder Modul NPM Anda.
package.json - File package.json Anda. Digunakan untuk memasang halbert-core.
persist/ - Digunakan untuk menyimpan data yang persisten selama peluncuran sistem.
Seperti inilah contoh konfigurasinya:
{
"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"
}
}
}
Segera hadir
Modul adalah sumber logika utama bagi Halbert. Ada beberapa modul bawaan, menyediakan fungsi dasar. Namun tujuan utama sistem ini adalah agar pengguna dapat membuat dan berbagi modul mereka sendiri.
Buat folder baru dengan nama modul yang diinginkan (harus menggunakan huruf kecil dan tanpa spasi). Di dalam folder itu, buat file index.js. Ini akan menjadi titik masuk Anda. File boilerplate index.js akan terlihat seperti ini:
module . exports = function ( builder ) {
// Your Code in here
} ;
Objek pembangun adalah utilitas yang memberi Anda akses ke sistem dasar seperti widget, rute api, tindakan, atau pemicu.
Builder terdiri dari beberapa sub-objek yang berbeda.
Pembuat ini memungkinkan Anda membuat aksesori untuk digunakan oleh Home Kit Apple. Sejak Halbert menerapkan HomeKit-Bridge, Anda dapat membuat hal-hal yang Anda bangun dapat dikontrol melalui Aplikasi iOS Home.
createAccessory(name, id)
-> Accessory
Buat aksesori dan kembalikan. Jika Anda ingin mengetahui cara bekerja lebih lanjut dengan Objek Aksesori ini, lihat HAP-NodeJS.
getAccessories()
-> Array
Dapatkan daftar aksesori terdaftar modul ini.
Pembuat ini memungkinkan Anda membuat tindakan untuk digunakan oleh modul lain, widget, dll. Anda dapat menyambungkan panggilan ini.
createAction(actionId)
-> ActionBuilder
Buat tindakan dengan id yang diberikan.
setMeta(name, sentence)
-> ActionBuilder
Tetapkan data meta tindakan. Artinya judul Tindakan dan kalimatnya. Bagian kalimatnya harus sesuai dengan kalimat ' Jika memicu, maka [X] '.
setCallback()
-> ActionBuilder
Atur panggilan balik untuk panggilan tindakan. Panggilan balik akan diberikan dengan argumen input
-. Misalnya
. setCallback ( function ( input ) {
console . log ( input . temperature ) ;
} ) ;
getActions()
-> Array
Dapatkan daftar tindakan modul ini.
Kode diformat menggunakan JLongster yang lebih cantik.