2020-04-29 (水)
さくらVPSのOSをCentOS 8にしたら,IPv6環境でbad addr or host: ::
と言われてsshdが起動しなくなった.sshd_configのAddressFamilyを無視してv4アドレスで待ち受けようとする.
結局/etc/sysconfig/sshdのOPTIPNSに"-4"が入ってた落ちだったんだけど,なんでそんな設定になってたんだろ.
* arduino-cliでESP8266/ESP32
いままでArduino for Visual Studio Codeを使ってたけど,内部でArduino IDEを呼び出してるせいで遅いので arduino-cli に乗り換える.
https://github.com/arduino/arduino-cli
だいたいドキュメントどおりだけど,3rd party coresを入れた場合の説明が大雑把すぎてわかりにくかったのでファームウェアを書き込むとこまでのメモ.
arduino-cli config init
config init
するとyamlの場所が表示されるので,ESP8266とESP32のパッケージのURLを追加しておく.
additional_urls: - https://arduino.esp8266.com/stable/package_esp8266com_index.json - https://dl.espressif.com/dl/package_esp32_index.json
arduino-cli core update-index arduino-cli core search esp8266 arduino-cli core install esp8266:esp8266 arduino-cli board listall
今回はArduino IDEで使ってたボードもインストール済みになってたので,upgrade esp8266:esp8266
した.
board listall
で使えるボード全部出てくるので,それっぽいのを探す.(board list
で接続されているやつを自動認識しそうだけど,Arduino以外はダメっぽい)
あとは適当なスケッチのある場所で comple & upload.
arduino-cli compile --fqbn esp8266:esp8266:generic
arduino-cli upload -p COM3 --fqbn esp8266:esp8266:generic:baud=256000
fqbnに色々オプションを追加する必要がありそうだけど,ESP-WROOM-02はgenericのデフォルト設定で動いた.
fqbnが変わると不要なものまで再コンパイルが走るっぽいので,通信速度とかはupload時にだけつけたほうが良さそうかも.
* IFTTT Webhook
温度計とかインターホンとかエアコンから直接IFTTTのWebhook(Makerチャンネル)でつなげば自分でサーバ立てなくていいので嬉しいと思ったけど,IFTTTのThat側になるためにhttpで待ち受けなくてはいけなくて,そうするとLANの中の機器にアクセスするにはNATが邪魔でめんどい.いまはUDPでNATに穴開けて通信してる.
今回は,通知したい値の入ったパケット1つ送るだけ,みたいな軽量なやつが欲しかった.バッテリーで動いてる温度計とかはWiFiに接続してる時間を一瞬でも減らしたい.
ただ,せっかくWebhook試したので,サーバからIFTTTに中継できるようにしておく.