hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog

徒然日記 nao-pon's blog RSS of nao-pon/blog anchor.png

Page Top

徒然なるままに・・・ anchor.png

<< 2021.9 >>
[nao-pon/blog]
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Page Top

タグクラウド anchor.png

001HT 16bit 64GB Aichi Prefecture Amazon Android Apache APC Biglobe BIND BLE BLHeli Bug Bugfix ca.crt CanonFD Canon FD Cat CCS811 Chrome ckeditor4 Copy.com CSS CVS更新 DesireHD DIY Draw e-Tax eBay Eclipse EGit elFinder Enbug ESP-32 ESP32 ESP8266 ESPHome ESXi exiftran favicon FCKeditor ffmpeg Flickr getID3() Git GitHub Google Analytics GoogleAnalytics GoogleDrive GoogleMapsAPI GPG Hass.io HA端子 HDD換装 HomeAssistant HTTPタイムアウト HypCommon HypCommonFunc HypCommonPreLoad HypConf HypRss2Html HypSimpleAmazon i-name IE9 IP iPad iPhone4 iPod IPv6 IR-Remote Japan JavaScript jQuery jQuery mobile Kitanagoya LED電球 LINE Lipo Lipoバッテリ Lollipop make Meter MicroSD Mobile Moblog Moblog.001HT mod_xsendfile NEX-5 Nginx OpenID OSC Panasonic PCRE PGP PHP PHP 5.6 PHP 7 Picnik PPPoE Preload QuickPic RaspberryPI RATOC RC REMOTE_ADDR rooted RS-WFIREX4 setup SmartPhone SoftBank SoloMaxxRevolution SoloRevo SoroRevo SpamAssassin SPF SSD SSL Stagefright SVN SwitchBot Tasker Tasmota Tasmota-IRHVAC Theme Tips Toshiba TVネタ USB UTF-8 V6プラス Vine VW Web WebWatch Webサーバー WiFi Windows WizMobile X-elFinder X-Road X-Sendfile XCL XCL2.2 xelFinder XOOPS XOOPS X XoopsX XOOPSコアハック Xperia XperiaZ Xperia Z xpWiki xpWikiレンダラー YouTube おいしい おすすめ おもちゃ お勧め お気に入り お正月 お店 お土産 たぐめも ねこ ほにゃゃらら アーカイブ アニメ アフィリエイト アプリ イオンカード イベント イルミネーション インターネット インテリア エアコン オススメ カスタマイズ キャッシュバック クリスマス グッズ紹介 コマンド コミック コミット サーバー サムネイル シェルスクリプト ショッピング ジョーク スナップ スパム スパムアサシン スパム対策 スマホ セキュリティ センサー センター ソロレボ タブレット チケットエラー テーマ テスト テレビ デザート デジカメ トイヘリ トラブル ドライブレコーダ ドライブレコーダー ドラマ ドラレコ ナショナル ネタ ネット ネットワーク ノート バグ修正 パソコン ブックマーク ブラウザ ブラシレス プリロード プログラミング プロポ ヘリ ホームオートメーション マイクロヘリ マウス メールサーバー メモ メモ書き モジュール ユーザー専用エリア ラジコン ラジヘリ ランチ リバースプロキシ リリース リリース情報 ルンバ ログイン 暗号化 映画 温湿度計 仮想サーバ 家IoT 家電 花 @new 海外通販 絵文字 開発 確定申告 覚え書き 覚書 管理用 寄稿 岐阜 気になるモノ 気候 気象 疑問 魚眼 共有サーバー 携帯 携帯対応 携帯対応レンダラー 計画 軽井沢 健康 健康食品 健忘録 検索ワードハイライト 玄関飾り 工作 今週の切花 差分 作業 雑記 仕事 試験用頁 自宅サーバ 自宅サーバー 自転車 社会ネタ 車載カメラ 趣味 修理 重要伝統的建造物群保存地区 出張カキコ 障害 新製品 世界遺産 政治 正規表現 脆弱性 赤外線リモコン 設定 扇風機 中国製 天気 天候 天体ショー 電飾 東京スカイツリー 東芝 桃ラー 動画 独り言 南砺市 年中行事 年末年始 買い物 美味しい 病院 富山県 分解 文字化け 本職 名古屋 夜景 遊び 欲しい 旅行 料理
Page Top

最近書いた日記 anchor.png

 
RSS of nao-pon/blog

HomeAssistant 統合の Tasmota-IRHVAC の不具合修正 anchor.png

210701-195557.png

HomeAssistant のサービス呼び出しで、エアコンの温度設定があるけど、ここのモード設定が効いていないことに気づいたのでその修正をした。


 
RSS of nao-pon/blog

Tasmota を 9.4.0 から 9.5.0 へアップデート anchor.png

210620-214752.png

エアコンのWiFi化は、Tasmota をカスタマイズした独自ビルドを使っているけど、Tasmota 9.5.0 がリリースされたので、アップデートした。

次に実行するときは、多分忘れているだろうから、自分用の覚書を書いておく。

Page Top

自前 GitHub リポジトリ anchor.png

IRremoteESP8266 は、とにかく最新版を使うようにしている。

master ブランチは upstream の master を参照している。

1
2
3
4
5
6
git diff > _diff1.txt
git checkout master
git pull
git checkout mitsu_pana_custom
git rebase master
git diff > _diff2.txt

で、_diff1.txt と _diff2.txt を比較して、問題なくカスタマイズ分が反映されているか確認する。

 diff _diff1.txt _diff2.txt > _diff3.txt
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2c2
< index f194430..9284250 100644
---
> index 316d756..4a05193 100644
75c75
< @@ -1375,12 +1429,13 @@ void IRac::midea(IRMideaAC *ac,
---
> @@ -1367,12 +1421,13 @@ void IRac::midea(IRMideaAC *ac,
90c90
< @@ -1394,10 +1449,12 @@ void IRac::mitsubishi(IRMitsubishiAC *ac,
---
> @@ -1386,10 +1441,12 @@ void IRac::mitsubishi(IRMitsubishiAC *ac,
105c105
< @@ -1613,8 +1670,8 @@ void IRac::panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
---
> @@ -1605,8 +1662,8 @@ void IRac::panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
116c116
< @@ -1626,6 +1683,11 @@ void IRac::panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
---
> @@ -1618,6 +1675,11 @@ void IRac::panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
128c128
< @@ -2304,11 +2366,11 @@ bool IRac::sendAc(const decode_type_t vendor, const int16_t model,
---
> @@ -2296,11 +2358,11 @@ bool IRac::sendAc(const decode_type_t vendor, const int16_t model,
142c142
< @@ -2609,7 +2671,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
---
> @@ -2601,7 +2663,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
151c151
< @@ -2665,7 +2727,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
---
> @@ -2657,7 +2719,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
160c160
< @@ -2827,7 +2889,7 @@ bool IRac::cmpStates(const stdAc::state_t a, const stdAc::state_t b) {
---
> @@ -2819,7 +2881,7 @@ bool IRac::cmpStates(const stdAc::state_t a, const stdAc::state_t b) {
227c227
< index 99b103f..4cfb3d6 100644
---
> index 20fd7d0..0cbc259 100644
248c248
< index 3ec5303..523ebd0 100644
---
> index 5d16c85..acf57a5 100644
251c251
< @@ -551,6 +551,8 @@ namespace irutils {
---
> @@ -552,6 +552,8 @@ namespace irutils {

問題ない。

1
2
3
4
git checkout development
git pull
git checkout irremote_full_custom
git marge master

今回は大丈夫だったけど、lib/lib_basic/IRremoteESP8266 でコンフリクトが生じるかも知れない。
そんなときは、次のようにとりあえず development 側を適用しておけばいいかな。知らんけど。

Everything is expanded.Everything is shortened.
1
2
3
 
 
 
git checkout --theirs lib/lib_basic/IRremoteESP8266
git add lib/lib_basic/IRremoteESP8266
git commit

違った!そういえば、platformio_override.ini で lib_extra_dirs を違うディレクトリを指定してあり、IRremoteESP8266 の Git ディレクトリにシンボリックを張ってあった。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[env:tasmota-ircustom]
build_flags             = ${common.build_flags} ${irremoteesp_full.build_flags} -DFIRMWARE_IR_CUSTOM
 
[env:ir_jema_bridge]
extends                     = env:tasmota-ircustom
lib_extra_dirs              = lib/lib.bak
 
[env:ir_jema_bridge_ccs811]
extends                     = env:tasmota-ircustom
lib_extra_dirs              = lib/lib.bak, lib/lib_i2c
;build_flags                 = ${env:tasmota-ircustom.build_flags} -DUSE_CCS811_V2
;build_flags                 = ${env:tasmota-ircustom.build_flags} -DUSE_CCS811_V2_10SEC
build_flags                 = ${env:tasmota-ircustom.build_flags} -DUSE_CCS811_V2_60SEC

xdrv_05_irremote_full.ino をカスタマイズした、xdrv_05_irremote_full_custom.ino をビルドに使っているので、内容を確認してカスタマイズ分が反映されているか確認する。

今回は Settings.param が Settings->param に変更になっていたので、それを WinMerge でさくっと修正した。

同様に、カスタマイズで使用している xsns_31_ccs811_v2_10sec.ino と xsns_31_ccs811_v2_60sec.ino も確認。
今回、こちらは大丈夫だった。

lib/lib_basic/IRremoteESP8266 を nao-pon/IRremoteESP8266 の mitsu_pana_custom で上書きする。

git commit

これで OK かな。

とりあえず、

pio run

でビルドしてみる、大丈夫っぽい。

OTA で更新可能にしてるので、試しに一台アップデートしてみたところ、問題ないようだったので全台アップデートした。

  • OTA URL は下記で公開しています。よろしければ使ってください。ただし、自己責任でお願いします。

    Panasonic, Mitsubishi, Toshiba のエアコンが有効になっています。

    HomeAssistant との統合は、Tasmota-IRHVAC をこの拡張分に対応させた nao-pon/Tasmota-IRHVAC を使用してください。

    • http://hypweb.net/tasmota/firmware/ir_jema_bridge.bin.gz
    • http://hypweb.net/tasmota/firmware/ir_jema_bridge_ccs811.bin.gz (CCS811 1分間隔更新)

 
RSS of nao-pon/blog

ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った :-D anchor.png

Google Home や Alexa と HomeAssistant を統合しているので、声で大体のことはできる・・・けど。
声を発声して、アシスタントに認識させるのが、面倒くさいと感じる。なんてわがままな! :lol:
だって、正しく認識してくれないと、もう一度言い直したり、見当違いのスイッチを ON/OFF されたり・・・

そこで、やっぱり物理ボタンですよ!

ちょうど手元にミンティアとESP-32が転がっていて・・・。ん?これ入るんじゃね?って思ったところ。

おぉー!やっぱりピッタリじゃないですか!厚みが若干きついけど。

で、結果こうなりました。やっぱりボタンで操作できるのは快適です。USB電源はいるけどね。

DSC_3857.JPGDSC_3856.JPG

ボタンの穴あけを少し失敗したけど、今度作るときはもう少しきちんと作ろう!

ボタンを押すと青いLEDが光ります。

Page Top

いるもの *1 anchor.png

Page Top

ESPHome の設定 anchor.png

esp32_ble_tracker は、手元に Qmote-S があったので、うまく使えないかな?と思って試してみたけど、検知範囲が狭くてほぼ使えなかった。残念。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
substitutions:
  devicename: switch_box_11
 
esphome:
  name: $devicename
  platform: ESP32
  board: wemos_d1_mini32
  on_boot:
    - priority: 1000
      then:
        - while:
            condition:
              not:
                api.connected:
            then:
            - switch.turn_on: led
            - delay: 500ms 
            - switch.turn_off: led
            - delay: 500ms
 
wifi:
  networks: !include common/wifi.networks.yaml
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap: !include common/wifi.ap.yaml
 
  manual_ip:
    static_ip: 192.168.1.xx
    gateway: 192.168.1.1
    subnet: 255.255.255.0
 
captive_portal:
 
# Enable logging
logger:
 
# Enable Home Assistant API
api:
 
ota:
 
esp32_ble_tracker:
  id: ble_tracker
 
  on_ble_manufacturer_data_advertise:
    - mac_address: 88:4A:XX:XX:DE:52
      manufacturer_id: 004C
      then:
        - lambda: |-
            if (id(qmote_de52_click).state == false) {
              id(qmote_de52_click).publish_state(true);
              id(qmote_de52_click).publish_state(false);
            }
    - mac_address: 88:4A:XX:XX:99:BB
      manufacturer_id: 004C
      then:
        - lambda: |-
            if (id(qmote_99bb_click).state == false) {
              id(qmote_99bb_click).publish_state(true);
              id(qmote_99bb_click).publish_state(false);
            }
    - mac_address: 88:4A:XX:XX:9F:03
      manufacturer_id: 004C
      then:
        - lambda: |-
            if (id(qmote_9f03_click).state == false) {
              id(qmote_9f03_click).publish_state(true);
              id(qmote_9f03_click).publish_state(false);
            }
  
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO23
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn1"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: gpio
    pin:
      number: GPIO19
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn2"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: gpio
    pin:
      number: GPIO18
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn3"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: gpio
    pin:
      number: GPIO33
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn4"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: gpio
    pin:
      number: GPIO05
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn5"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: gpio
    pin:
      number: GPIO26
      inverted: True
      mode: INPUT_PULLUP
    name: "$devicename btn6"
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: template
    id: qmote_de52_click
    name: "$devicename Qmote de52 Click"
    filters:
      delayed_off: 800ms
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: template
    id: qmote_99bb_click
    name: "$devicename Qmote 99bb Click"
    filters:
      delayed_off: 800ms
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
  - platform: template
    id: qmote_9f03_click
    name: "$devicename Qmote 9f03 Click"
    filters:
      delayed_off: 800ms
    on_press:
      then:
        - switch.turn_on: led
    on_release:
      then:
        - switch.turn_off: led
 
sensor:
  - platform: wifi_signal
    name: "$devicename WiFi"
    update_interval: 60s
    unit_of_measurement: "%"
    filters:
      - lambda: x = 2 * (x + 100); if (x < 0) {x = 0;} else if (x > 100) {x = 100;} return x;
 
switch:
  - platform: restart
    name: "$devicename Restart"
  - platform: gpio
    pin:
      number: GPIO2
    name: "$devicename LED"
    id: led

 
RSS of nao-pon/blog

SwitchBot 温湿度計を ESP32 でモニタリング anchor.png

SwitchBot の温湿度計は、リーズナブルで家庭で使うには問題のない精度があるので、なかなか便利です。

この温湿度計は、公式の API (Meter BLE open API) が公開されていて、BLE Advertisement パケットをリッスンすることで、温湿度データを取得できます。

これを、ESP32 を使い HomeAssistant で利用できるようにしました。ESP32 のファームには ESPHome を使用しています。

210317-224349.png210317-224648.png

Page Top

ESPHome 用 yaml の該当部分の抜粋 anchor.png

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
substitutions:
  devicename: switchbot_meter
 
sensor:
  - platform: template
    name: "$devicename Humidity"
    id: humidity0
    unit_of_measurement: '%'
    accuracy_decimals: 0
    icon: "mdi:water-percent"
  - platform: template
    name: "$devicename Temperature"
    id: temperature0
    unit_of_measurement: '°C'
    accuracy_decimals: 1
    icon: "mdi:thermometer"
  - platform: template
    name: "$devicename BT RSSI"
    id: rssi0
    unit_of_measurement: 'dB'
    accuracy_decimals: 0
    icon: "mdi:bluetooth"
  - platform: template
    name: "$devicename Battery"
    id: battery0
    unit_of_measurement: '%'
    accuracy_decimals: 0
    icon: "mdi:battery"
 
esp32_ble_tracker:
  scan_parameters:
    duration: 60s
  on_ble_advertise:
    - mac_address: f4:42:fa:b4:72:2a
      then:
        - lambda: |-
            for (auto data : x.get_service_datas()) {
                if(data.data.size() == 6) {
                  float temperature = (float)(data.data[4] & 0b01111111) + ((float)(data.data[3] & 0b00001111) / 10);
                  if (!(data.data[4] & 0b10000000)) {
                    temperature = -temperature;
                  }
                  int8_t humidity= data.data[5] & 0b01111111;
                  int8_t battery = data.data[2] & 0b01111111;
                  int8_t rssi=x.get_rssi();
                  id(humidity0).publish_state(humidity);
                  id(temperature0).publish_state(temperature);
                  id(rssi0).publish_state(rssi);
                  id(battery0).publish_state(battery);
                }
            }

シンプルですね。カスタムコンポーネントを作るまでもないので、lambda を使いました。


 
RSS of nao-pon/blog

東芝エアコンのエントリーモデルもWiFi化 anchor.png

家中のエアコンのWiFi化を進めています。先日は東芝のエントリーモデルのエアコンRAS2558VをWiFi化しました。

いつものように、IRremoteESP8266 ですぐできると思ったのですが、IRremoteESP8266 が東芝エアコンのリモコンのIR信号を認識しません。

調べていくと、kToshibaAcMinGap で指定している値が大きすぎることに気付きました。この値を調整することで、正常に認識できるようになります、

Issue を立てました。

開発者の crankyoldgit はすぐに対応してくれました。素晴らしい!

他にも気になるところがあったので、次の Issue も立てましたが、全て解決してくれました。素晴らしい!

おかげで、いつもの通りHA端子ブリッジを備えた、IRコントローラを作成して、無事に Tasmota 経由で HomeAssistant からコントロールできるようになりました。

Tasmotaの設定は、いつもの通り -> 2021-02-11


テンプレート

テンプレート(Moblog)

#pagecss


*1 価格は購入時のもの
*2 Aliexpress で買ったけど、技適マークはついていました。

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1287, today: 2, yesterday: 1
Princeps date: 2004-08-20 (Fri) 16:51:07
Last-modified: 2008-10-03 (Fri) 23:57:20 (JST) (4736d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
141 人のユーザが現在オンラインです。 (5 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 141

もっと...
サイト情報