文書の表示以前のリビジョンバックリンクPDF の出力全て展開する/折り畳むODT 出力文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== TASMOTA ====== 中国で購入できるWEBスマートスイッチSONOFFシリーズは、一部中国語の専用ソフトをインストールしないと使えない。 またSONOFFのサーバーを経由して通信する為、安全性にも問題がある。 このSONOFFにTASMOTAというESPxxシリーズ用のカスタムファームウェアを入れれば、完全にローカルでコントロールできるようになり、コマンドを駆使して色々な事ができるようになる。 ===== インストール手順 ===== カスタムしない標準ファームウェアの場合、Tasmotizerを使うのが早い。使い方は以下の通り。 (要別途記述) ===== カスタムファームウェア ===== TASMOTAの標準ファームウェアには、基本的に電源をON/OFFするだけのものと、それに加えて1つ追加機能があるものしかない。下記例: * リモコンの送受信を行いたい場合は、tasmota-ir.binを使用する。 * 温湿度モジュールを使いたい場合は、tasmota-sensor.binを使用する。 上記2つを同時に使用したい場合は、どうしてもファームウェアを自分でコンパイルする必要がある。 下記に最も簡単に作成できる手順と設定を記録する。 - **前条件:Githubのアカウントをあらかじめ作成しておくこと。** - [[https://github.com/benzino77/tasmocompiler|tasmocompiler]]を使用する。まず[[https://gitpod.io/#https://github.com/benzino77/tasmocompiler|このリンク]]をクリックする。 - Gitpodというオンラインで使用するVisual Studio Codeのようなものが開き、自動的に必要なものを拾ってコンパイルを開始する。ここでGithubアカウントのユーザー名とパスワードを問われるので用意すること。 - (Chromeブラウザの場合)1~2分後にURL欄にポップアップブロックがありましたと表示されるので、アイコンをクリックして、URLを開く。(その他のブラウザの場合)勝手に別タブが開く。\\ {{imgpaste:202510:htmikan-20251019-070354.png}}\\ {{imgpaste:202510:htmikan-20251019-070404.png}} - Download Sourceを押下して、Nextを押下する。 - WiFIのSSIDとパスワードを入力してNextを押下する。(正直言ってなぜ必要なのかわからない)\\ {{imgpaste:202510:htmikan-20251019-070434.png}} - Generic ESP8266を選択して、機能としては下記を選択してNextを押下する。\\ {{imgpaste:202510:htmikan-20251019-070446.png?500}} - Custom Parametersには何も記載せずNextを押下する。 - バージョンの指定が表示されるので、Developから最新バージョンに変更してCompileをクリックする。 - コンパイルが完了すると、下記のように表示されるので、Firmware.binをクリックしてダウンロードする。\\ 必要ならばplatformio_override.iniもダウンロードする。(後で何の機能を選択したかを追うことができる)\\ {{imgpaste:202510:htmikan-20251019-070506.png?500}} ===== 自動化の方法 ===== tasmotaで自動化するには3つの方法がある。 * コマンド操作 * Script * Rule 3つのうち後者2つは、カスタムファームウェアを自作する必要がある。めんどい。 また、ScriptとRuleは排他仕様なので、どちらかしか選択できない。 コマンド操作はBacklogを使って、最大30命令までのバッチ処理を行う事ができる。 ===== ScriptとRuleの違い ===== * RuleはTASMOTA同様、ESPシリーズ用カスタムファームの[[https://espeasy.readthedocs.io/en/latest/|ESP Easy]]に実装されているRuleと互換のあり、標準ファームウェアの殆どは、Ruleが使える。\\ 設定時間おき(ArduinoでいうTicker)とか、センサーの温度が上回ったり下がったり等をトリガーとして、指定したルールを実行するという設定をする。\\ [[https://tasmota.github.io/docs/Rules/|Rules - Tasmota]]\\ [[https://www.letscontrolit.com/wiki/index.php/Tutorial_Rules|Tutorial Rules - Let's Control It]] * ScriptはTASMOTAオリジナルの機能。夜間だけライトをつけてカメラの顔検出を有効にしたり、センサー値から体積を計算してアームの角度を変更したりなど、高度な処理ができる。\\ コマンドの追加と廃止があり、エラーログも最小限しか出力されないので、完全にプロ用。\\ [[https://tasmota.github.io/docs/Scripting-Language/|Scripting - Tasmota]] ==== コマンド ==== 基本的には次のように入力する。 **注意:スペースや特殊文字は、ASCII 16進コードに置き換えて、前に%を付けること。 よく使うのは半角スペース(commandとvalueを切り分ける)が%20、セミコロン(次に実行するcommand)が%3Bとなる。 [[https://www.urlencoder.org/|ここのサイト]]で正しいエンコード値を所得したほうが良い。** WEB経由: <code>http://<deviceIP>/cm?cmnd=<command>%20<value> 例:Switch1のモードを変更する http://192.168.100.1/cm?cmnd=switchMode1%202 → JSONフォーマットで返す {"SwitchMode1":2} </code> MQTT経由: <code>Topic: cmnd/<deviceName>/<command> Payload:<value> 例:Switch1のモードを変更する Topic: cmnd/Switch1/SwitchMode1 Payload:2 → JSONフォーマットで返す{"SwitchMode1":2} </code> コマンドが正しく実行されるかどうかは、consoleを開いて、Enter Commandに次のように入力する。 これは各種設定を行うときも同様。 <code> <command> <value></code> 使用するコマンドの一覧は下記参照。 [[https://tasmota.github.io/docs/Commands/|Commands - Tasmota]] 個人的に設定しておくべき、もしくは使いそうな内容は以下の通り === BacklogとDelay(★必須) === 30桁までのバッチ処理を実施したい時、Backlogと入力してからコマンドを入れる。 コマンドとコマンドの区切りは;(セミコロン)、最終行にセミコロンは不要。 待つときはDelayを使う。単位は0.1秒なので、1秒は10、1分は600となる。最大3600(6分)。 ※時間はあまり正確ではないらしい 例:(電源OFF、10秒待ってから電源ON) Backlog Power off; Delay 100; Power on === タイムゾーンの設定(★必須) === 初期値はグリニッジ標準時になっているので、日本なら+9時間にしないといけない。 現在日時はstatus 7と入力すれば表示される。 例: Timezone +9 === NTPサーバーの設定 === 初期で登録されているNTPサーバー3つは遠いので、国内サーバーに変更する。しなくても別段問題はない。 3つ指定ができるので、先頭に数字を入れる必要がある。 例: NtpServer1 ntp.jst.mfeed.ad.jp === Latitude(緯度)とLongitude(経度) === Timerの設定でsunrise(日の出)とsunset(日の入り)時刻を指定できるが、この計算に使用する。 要するに日が落ちたらライトをつけ、日が昇ったらライトを消す等の運用に使用する。 googleマップで目的地にピンを刺し、右クリックメニューにて緯度経度の順で表示されるので、その値を代入する。 {{imgpaste:202510:htmikan-20251019-070528.png}} 注:TASMOTAは利用状況の確認としてこの情報を送るので、最寄りの県庁所在地等、自宅以外が望ましい。 例: Latitude 35.68963 Longitude 139.69218 34.49190, 133.94605 === 自分のMACアドレスを調べる === Status 5と入力する。 === 電源投入時の動作 === 停電等で一時的に電源が落ちた後に復旧した場合、どのように動作するかを指定するには、PowerOnStateを使用する。 0:常にオフ 1:常にオン 2:最後に保存した状態の反対 3:最後に保存した状態(初期値)4:オンにした後、以降の操作は無効 5:PulseTime秒後にオン 現在の状態はSetOption 0で確認、PulseTimeは1~111までは0.1秒単位だけど、112以降は100足して1秒単位となる。例:113 → 13秒、460 → 360秒で6分 ==== 導入時にすること ==== SONOFFテスト 20210803 ON用: [[http://192.168.1.106/cm?cmnd=Power%201]] OFF用: [[http://192.168.1.106/cm?cmnd=Power%200]] 再起動試験用(OFFして5秒後にON)→ OK! [[http://192.168.1.106/cm?cmnd=Backlog%20Power%200%3B%20Delay%2050%3B%20Power%201]] NTPサーバー設定用 [[http://192.168.1.106/cm?cmnd=Backlog%20Timezone%20%2B9%3B%20NtpServer1%20ntp.jst.mfeed.ad.jp%3B%20]] ===== デバイスの回復 ===== 原文はこちら: [[https://tasmota.github.io/docs/Device-Recovery/|Device Recovery - Tasmota]] [[https://tasmota.github.io/docs/Getting-Started/#initial-configuration|Getting Started - Tasmota]] まずデフォルトでは、TASMOTAはOTAアップグレードによる自動更新を行うために、既存の設定を保持しようとする。 それでもWifiがつながらない等の適切な操作が出来なくなった場合、電源のOFF/ONでデバイスをリカバリーすることができる。 これをFast Power Cycle Device Recoveryという。 この機能はSetOption65にて確認できる。初期値は0で有効だが、電源が不安定で再発する場合は、これを1にして無効にすることができる。 作業手順は以下の通り。 - デバイスの電源を30秒以上オフにする。 - 10秒未満の間隔でデバイスの電源を6回オン、オフして、7回目にオンにしたままにする。 - デバイスが初期化されて、WiFiがホストモードで起動するので、スマホなどで接続する。\\ その時のAP名はtasmota_XXXXXX-####となる。(例 tasmota_3D5E26-7718)\\ ※ホストモードは起動後3分間のみ有効で、また無効になる。 - WiFi接続後、192.168.4.1をブラウザで開くと、初期設定画面になる。\\ 有効なWifiとパスワードを指定してSaveすると、TASMOTAが取得したIPアドレスが表示される。 elechobby/esp/tasmota.txt 最終更新: 2025/10/19 07:06by htmikan