Smart HomeをDIYする

Apple HomeKit は対応製品が少なくて高価なのでHomebridgeでがんばります

mqttthing の検索結果:

HomeKitアクセサリの履歴をグラフ表示する

Eve for HomeKitというiPhoneアプリは、ホーム.appと同じくHomeKitアクセサリを操作するアプリです。純正アプリの機能に加えて、温度センサーなどの履歴をグラフ表示する機能があります。グラフ化はEve社製品限定の機能ですが、Mqttthingプラグインを使うと、MQTTデバイスの履歴もグラフ表示できます。 (続きはこちら) diysmartmatter.com

MqttthingとZigbee2MQTTプラグインを使い分ける

Homebridgeのプラグインは多数用意されていますが、手元の環境で一番活躍しているのは、 Homebridge MQTT-Thing と Homebridge Zigbee2MQTT の2個です。その構成と使い分けについて説明します。 (続きはこちら) diysmartmatter.com

Zibgee方式のスマート赤外線リモコン

…しくお願いします。 MQTTThingプラグインで設定 上記の赤外線パターンをHomeKitから発信するには、以下のようにHomebridgeを設定します。 { "type": "switch", "name": "エアコン", "topics": { "setOn": "zigbee2mqtt/FRIENDLY_NAME/set" }, "onValue": "{\"ir_code_to_send\": \"D7UNtQ2SA3YKQQOSA0EDdgpABQNBA3YK4…

三菱エアコン用スマートリモコンをDIYする

…OPIC[] = "mqttthing/irOffice/set/#"; //subscribe const char PUBTOPIC[] = "mqttthing/irOffice/get"; //publish temp const char DEBUG[] = "mqttthing/irOffice/debug"; //for debug //base values for the IR Remote state (Mitsubishi AC) uint8_t coo…

赤外線リモコン受信モジュールでリモコン生データを得てHomeKitから使う

…OPIC[] = "mqttthing/irOffice/set/#"; (略) IRsend irsend(kIrLed); //for sending raw IR data //ceiling light on/off pattern const uint16_t kCeilingOnOff[35]= { 6929, 4539, 371, 1316, 369, 494, 342, 1345, 344, 514, 368, 1319, 369, 492, 345, 134…

エアコンリモコンのHomeKitアクセサリをDIYする (後編:温度センサ他)

…omebridgeのMqttthingプラグインを使って、MQTTメッセージで動作するHeater Coolerアクセサリを作りました。また、ESP32には、MQTTクライアント機能を追加しました。これで、HomeKitからエアコンが操作できるようになりました。 今回の目標〜室温表示と赤外線強化 前回までで、一応動作するようになりました。ただ、温度測定機能を作り込んでいませんでした。Heater Coolerアクセサリは、温度センサも兼ねてます。前回までの実装では、室温を取得…

エアコンリモコンのHomeKitアクセサリをDIYする (中編:MQTT対応)

…eにインストールしたMqttthingプラグイン github.com でダミーのエアコンをデフォルト設定で作ってみました。アクセサリのタイプはHeater Coolerを選びます。iPhoneやMacのホームには、こんな形で現れます。 気温の表示をクリックするとon/offします。それ以外の部分をクリックすると、On/off、温度調整、動作モード切り替え(冷房・暖房・自動)を行うウィンドウが開きます。 また、このウィンドウの歯車アイコンをクリックする(もしくは上にスクロール…

エアコンリモコンのHomeKitアクセサリをDIYする (前編:赤外線送出)

…omebridgeのMqttthingプラグインがMQTT経由でメッセージを出し、 このMQTTメッセージをESP32が受け取って、 ESP32が赤外線LEDからリモコン信号を送り、エアコンをコントロール することを目指します。今回はこのステップの最後の部分、ESP32が赤外線LEDを点灯してエアコンをコントロールする部分を作ります。 残りの右半分の部分、つまり、ESP32がMQTTに接続して、HomeKitのエアコンアクセサリを構成する部分は、また後日進めます。 赤外線リモ…

Arduino IDEからESP32をOTAアップデート(改訂版)

…OPIC[] = "mqttthing/test"; void setup() { client = new EspMQTTClient(SSID,PASS,MQTTADD,MQTTUSER,MQTTPASS,CLIENTID,MQTTPORT); } void onConnectionEstablished() { } void loop() { client->publish(PUBTOPIC,"hello"); client->loop(); delay(1000); …

温度湿度センサDHT20をESP32に接続してHomeKitから使う

…OPIC[] = "mqttthing/dht20/get"; //mqtt topic const char SUBTOPIC[] = "mqttthing/dht20/set"; //mqtt topic const char DEBUG[] = "mqttthing/dht20/debug"; //mqtt topic void onConnectionEstablished() { Serial.println("MQTT connection established…

ESP32で赤外線リモコンを作ってHomeKitから使う

…omebridgeのMqttthingプラグインからも利用できて便利です。MQTTブローカには、いつものようにRaspberry Piで動かしているMosquittoを使います。同じRaspberry PiでHomebridgeも動いてます。 ESP32には、「MQTTの特定のトピックにメッセージがやってきたら、プログラムで用意した赤外線パターンを送出する」という機能を実現したいと思います。 部品を集める 秋月電子のページを見ながらLEDとFETを選びました。 赤外線LED:…

温度湿度センサDHT20をRaspberry Piに接続してHomeKitから使う

…ログラム、MQTT、Mqttthingプラグインの組み合わせで進めることにしました。 追記:DHT11とDHT21をネット上で見つけたのですが、なんとI2C方式じゃないのですね。シリアルでデータが出てくるだけのようでした。GNDピンの位置も違います。どうりで使えなかったはずです。秋月にはDHT11も売っているようです(DHT20よりも高い)。そのうち試したいと思います。 Pythonでセンサ値を読む こちらを参考にさせていただき、Pythonでセンサ値を読むプログラムを作りま…

ミリ波を使ったZigbee人感センサー FP1 をHomeKitから使う

…idgeプラグインのMQTTThingを使います。MQTTThingを使えば、Zigbee2MQTTが出してくれるMQTTメッセージを利用できます。 そこで、MQTTThingの設定メニューからMotion Sensorを1個追加します。モーションセンサの名前をFP1_approachとしました。最終的なconfig設定は以下のようにしました。 { "type": "motionSensor", "name": "FP1_approach", "url": "mqtt://l…

HomeKitでZigbeeを使う:Zigbee2MQTTを導入する

….com で紹介したMqttthingを使うことも可能です。ただ、Zigbee2MQTTが出すMQTTメッセージに特化したプラグインがあるので、それを使ったほうが楽です。Homebridge z2mというプラグインで、Mqttthingを元に、Zigbee2MQTT向けに機能拡張されたプラグインだそうです。 z2m.dev このプラグインの設定項目はほとんどありません。上で設定したMQTTブローカーのアドレスやbase topicなどを設定するだけです。他は全部未設定でokで…

品薄Raspberry Pi 4が買えたのでHomebridgeを引越した

…bridge本体と Mqttthingプラグイン Zigbee2MQTTプラグイン Mosquitto Zigbee2MQTT をインストールしました。補助記憶にはUSBメモリを使い、電源とファンも強化しました。 Homebridgeサーバ遍歴 Homebridgeなどのサーバー用に、最初はRaspberry Pi Zero Wを使ってました。実用的に動作しましたが、再起動に時間がかかるので、後にRaspberry Pi 4 (2GB)に移行しました。起動が高速になって快適で…

電気錠のJEM-A端子にESP32を接続してHomebridge / HomeKitで使う

…来たら追記します。 MQTTThingを設定する ハードウェアは出来上がったので、今度はHomebridge側を構築します。Homebridgeで鍵 (Lock Mechanism) アクセサリを作れるプラグインはたくさんあります。今回はMQTTThingを使いました。MQTTを使えば動作の確認やデバッグが簡単ですし、将来、Apple HomeKit以外のシステム(例えばHome Assistant)で使うことになっても対応できます。 MQTTについてはこちらをご覧ください。…

Arduino IDEからESP32をOTAアップデート

…OPIC[] = "mqttthing/seton"; //sub topic const char PUBTOPIC[] = "mqttthing/geton"; //pub topic const char DBGTOPIC[] = "mqttthing/debug"; //debug topic void setup() { pinMode(LED, OUTPUT); client = new EspMQTTClient(SSID,PASS,MQTTADD,MQTTUS…

HomeKitでスマホ通知機能付きセキュリティシステムを作る

…omebridgeのmqttthingプラグインはセキュリティシステムアクセサリをサポートしているので、これを入れて、MQTTブローカに色々メッセージを送って、アクセサリの機能を調べてみました。 その結果、HomeKitのセキュリティシステムとは、以下のような製品を想定しているのだと理解できました。(写真をクリックするとAliExpressのページに飛びます。) この製品は、壁に取り付けるコントローラに、無線接続の人感センサ6個、ドア開閉磁石センサ8個、警報ブザー、リモコンス…

set, get と target, current の違い

…lse)を表します。mqttthingプラグインでは、この変数を取得して設定するトピックスとして、 getOn(on/offの状態をgetするためのトピック) setOn(on/offの状態をsetするためのトピック) の2種類のトピックスを指定します。例えばsetOnのトピックとして、mqttthing/myswitch/setOnと指定しておけば、このトピックにtrueまたはfalseのメッセージを流すことで、PowerStateをon/offに設定します。一方、getO…

家庭用エアコンに付いてたJEM-A HA端子をHomeKitから使う

…TTブローカーから、mqttthing/fan/setOnトピックにtrueかfalseが来たら、JEM-AのC1, C2端子を250ms間短絡する。(その結果エアコンがon/offします) また、JEM-AのM1, M2端子の電圧が変化したら、MQTTのmqttthing/fan/getOnトピックにtrueかfalseを流す。(その結果HomeKitのon/off表示が更新されます) さらに10分に1回、C1, C2端子の様子をmqttthing/fan/getOnトピッ…

Intel NUCにHome Assistantをインストールする

…mebridgeにはmqttthingプラグインが入れてあります。今回のyamlファイルに合わせて設定すると、Homebridgeのconfigファイルのmqttthingプラグインの部分は以下になりました。MQTTブローカーはHomebridgeと同じマシンで動いているので、こちらのIPアドレスはlocalhostになってます。topicsはyamlファイルに現れる名前をつなげたものです。topics名が不明な場合は、Home AssistantでESP32を操作しながら、…

ESPHome を Apple HomeKit で使う

…omebridgeのMQTTThingプラグインで使用することができました。 ESPHomeを手動インストール ESPHomeはPythonで書かれたプログラムですが、Home Assistantからはアドインとして使えるようです。なのでインストールもGUIベースで簡単です。Home Assistantを使わない場合は、コマンドラインでインストールします。以下、macOSで作業しました。 esphome.io Pythonが必要です。Linuxはそのまま使えますが、MacやW…

MQTTブローカーMosquittoを設置する

…omebridge Mqttthingプラグインを使ってこのLEDをon/offしました。今回は、LAN内の新しいMosquittoブローカを使うように変更します。 公衆MQTTブローカーを指定していたHomebridgeのコンフィグを、以下のように変更して、今回設定したLAN内のMosquittoを使用するように設定します。 { "type": "lightbulb-OnOff", "name": "MQTT Light", "url": "mqtt://192.168.x…

公衆MQTTサーバでLチカする

…omebridge Mqttthingというプラグインを使ってみます。このプラグインで、HomeKitで定義されるほとんどのデバイスを作ることができ、その動作をMQTTトピック・メッセージに紐付け設定できます。このプラグインをインストールし、設定画面を開きます。アクセサリを追加するボタンを選び、Light bulb - on/offというアクセサリを作ってみます。名前はMQTT Lightにします。 URLには公衆MQTTブローカーのアドレスを入れておきます。ユーザ名やパスワ…