homebridge http advanced accessoryの使い方

投稿者: | 9月 18, 2023

まあ、このプラグインを使うような玄人は私の拙い解析の記事はいらないと思いますが、自分の備忘録として残しておきます。

導入

鉛蓄電池の放電コントローラ用にプラグインを探していたところ、このプラグイン日本語の使用例のサイトを見つけました。まあ、使い方はなんとなくわかりますが、一応詳しく書いておこうかなと思います。あと、サービス名やオプション変数、単位については、こちらのページが日本語で書いてあって参考になります(ちょっと情報が古いのが難点ですが)。

Jsonはコメント書けないので直書きしてます。
使用する際は適宜消去してください。
{
    プラグイン名
    "accessory" : "HttpAdvancedAccessory",
    サービス名(デバイスのタイプ)
    https://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/definitions/ServiceDefinitions.ts を参照
    "service"   : "HumidifierDehumidifier",加湿器
    表示名
    "name"      : "Humidifier",
    ポーリング間隔
    "forceRefreshDelay": 300,
    デバッグ
    "debug" : false,
    オプションの変数、サービス名と同じようにhttps://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/definitions/ServiceDefinitions.ts を参照
    "optionCharacteristic" : [
        "RelativeHumidityHumidifierThreshold",相対加湿度の目標
        "WaterLevel" ], 水の量
    
    不明 書かなくてもいいのかなぁ
    各数字の定義?
    https://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/definitions/CharacteristicDefinitions.ts を参照
    "props" : {
        加湿の状態
        "CurrentHumidifierDehumidifierState": {
            "validValues": [
                0,電源OFF
                2 ]加湿中
        },
        加湿器の機能
        "TargetHumidifierDehumidifierState": {
            "validValues": [
                1 除湿機能がないため
            ]
        },
        目標とする相対加湿
        "RelativeHumidityHumidifierThreshold": {
            "Format": "float", 
            "Permissions": [
                "pr", NOTIFY
                "pw", PAIRED_READ
                "ev" PAIRED_WRITE
            ],
            "maxValue": 100, 最大値
            "minStep": 1, 最小単位
            "minValue": 0, 最小値
            "unit": "percentage" 単位
        },
        水の量
        "WaterLevel": {
            "Format": "float",
            "Permissions": [
                "pr", NOTIFY
                "ev" PAIRED_READ
            ],
            "maxValue": 100, 最大値
            miniStepは省略している?
            "minValue": 0, 最小値
            "unit": "percentage" 単位
        }
    },

    値を得るときのもの
    "urls" : {
        現在の相対湿度
        "getCurrentRelativeHumidity": {
            "url" : "http://localhost:801/httpadv/humi/state",値を得るためのURL
            "mappers" : [
                {
                    "type": "jpath", JSON形式
                    "parameters": {
                        "jpath": "$.CurrentRelativeHumidity",JSONの変数名
                        "index": 0
                    }
                }
            ]
        },
        加湿しているかしていないか(加湿中2、待機で1、電源OFFで0)
        "getCurrentHumidifierDehumidifierState": {
            "url" : "http://localhost:801/httpadv/humi/state",
            "mappers" : [
                {
                    "type": "jpath",
                    "parameters": {
                        "jpath": "$.CurrentHumidifierDehumidifierState",
                        "index": 0
                    }
                }
            ]
        },
        加湿器の機能(1のみ返す)
        "getTargetHumidifierDehumidifierState": {
            "url" : "http://localhost:801/httpadv/humi/state",
            "mappers" : [
                {
                    "type": "jpath",
                    "parameters": {
                        "jpath": "$.TargetHumidifierDehumidifierState",
                        "index": 0
                    }
                }
            ]
        },
        目標値
        "getRelativeHumidityHumidifierThreshold": {
            "url" : "http://helen.maidlab.jp:801/httpadv/humi/state",
            "mappers" : [
                {
                    "type": "jpath",
                    "parameters": {
                        "jpath": "$.RelativeHumidityHumidifierThreshold",
                        "index": 0
                    }
                }
            ]
        },
        水の量
        "getWaterLevel": {
            "url" : "http://localhost:801/httpadv/humi/state",
            "mappers" : [
                {
                    "type": "jpath",
                    "parameters": {
                        "jpath": "$.WaterLevel",
                        "index": 0
                    }
                }
            ]
        },
        電源(ONで1、OFFで0)
        "getActive": {
            "url" : "http://localhost:801/httpadv/humi/state",
            "mappers" : [
                {
                    "type": "jpath",
                    "parameters": {
                        "jpath": "$.Active",
                        "index": 0
                    }
                }
            ]
        },

        値を設定する部分
        ON、OFFにする
        "setActive": {
            "url" : "http://localhost:801/httpadv/humi/set?active=${value}",
            "httpMethod":"GET",
            "body" : "{value}",
            "mappers" : []
        },
        加湿の目標値を設定する
        "setRelativeHumidityHumidifierThreshold": {
            "url" : "http://localhost:801/httpadv/humi/set?target=${value}",
            "httpMethod":"GET",
            "body" : "{value}",
            "mappers" : []
        }
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)