HALBERT は小さな Node.js プロジェクトで、 Raspberry Pi上で実行されることを想定しています。シンプルで書きやすいモジュールを使用して簡単に使い捨てできるように設計されています。この名前は、『2001 年宇宙の旅』のHAL-9000コンピューターと、執事の典型的な名前であるアルバートを組み合わせたものです。
ハルバートには次のような特徴があります。
まず、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 - これは構成ファイルです。その機能はここに文書化されています。このファイルには、システム自体のメイン設定だけでなく、そのすべてのモジュールも保存されます。
modules/ - これは、独自のモジュールを配置できるフォルダーです。自分で作成することも、他のソースからダウンロードすることもできます。
node_modules/ - NPM モジュール フォルダー。
package.json - package.json ファイル。ハルバートコアの取り付けに使用します。
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 ルート、アクション、トリガーなどの基礎となるシステムへのアクセスを可能にするユーティリティです。
ビルダーは複数の異なるサブオブジェクトで構成されます。
このビルダーを使用すると、Apple の Home Kit で使用するアクセサリを作成できます。 Halbert は HomeKit-Bridge を展開しているため、構築しているものを iOS ホーム アプリ経由で制御できるようになります。
createAccessory(name, id)
-> Accessory
アクセサリーを作成して返却します。これらのアクセサリ オブジェクトをさらに操作する方法について知りたい場合は、HAP-NodeJS を参照してください。
getAccessories()
-> Array
このモジュールに登録されているアクセサリのリストを取得します。
このビルダーを使用すると、他のモジュールやウィジェットなどで使用するアクションを作成できます。これらの呼び出しを連鎖させることができます。
createAction(actionId)
-> ActionBuilder
指定された ID を使用してアクションを作成します。
setMeta(name, sentence)
-> ActionBuilder
アクションのメタデータを設定します。これはアクションのタイトルと文章を意味します。文の部分は文「トリガーの場合、[X] 」に収まる必要があります。
setCallback()
-> ActionBuilder
アクション呼び出しのコールバックを設定します。コールバックにはinput
引数が指定されます。例えば
. setCallback ( function ( input ) {
console . log ( input . temperature ) ;
} ) ;
getActions()
-> Array
このモジュールのアクションのリストを取得します。
コードは、JLongster のきれいな形式を使用してフォーマットされます。