Tasmota TLS my_userconfig.h

※超初心者が書いた自分への備忘録です。

### Project sonoff Sonoff Version 6.4.1.19(sonoff)-2_5_0
# my_user_config.h 


```css
90行付近
#define MQTT_HOST              "ホスト名"                // [MqttHost]
#define MQTT_FINGERPRINT1      "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"  // [MqttFingerprint1]
#define MQTT_FINGERPRINT2      "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"  // [MqttFingerprint2]
#define MQTT_PORT              8883              // [MqttPort] MQTT port (10123 on CloudMQTT)
#define MQTT_USER              "DVES_USER"       // [MqttUser] MQTT user
#define MQTT_PASS              "DVES_PASS"       // [MqttPassword] MQTT password
```

```css
256行付近 USE_MQTT_TLS 1行コメント外す  +53k
// -- MQTT - TLS ----------------------------------
  // !!! TLS uses a LOT OF MEMORY so be careful to enable other options at the same time !!!
#define USE_MQTT_TLS                             // Use TLS for MQTT connection (+53k code, +15k mem)
//  #define USE_MQTT_TLS_CA_CERT                   // Use LetsEncrypt Certificate from sonoff_letsencrypt.h - Not supported with core 2.3.0
```
sonoff_letsencrypt.h    CA証明書使う場合

```css
#define MQTT_TLS_CA_CERT_LENGTH 846            // Letsencrypt
#define MQTT_TLS_CA_CERT { \
    0x30, 0x82, 0x03, 0x4a, 0x30, 0x82, 0x02, 0x32, 0xa0, 0x03, 0x02, 0x01, \
    ......
    0xee, 0x9d, 0x82, 0x35, 0x35, 0x10 }
```

## 以下ダイエット
```css
264行付近 全てコメントアウト  -66k
// -- HTTP ----------------------------------------
// #define USE_WEBSERVER                            // Enable web server and Wifi Manager (+66k code, +8k mem)
//  #define WEB_PORT             80                // Web server Port for User and Admin mode
//  #define WEB_USERNAME         "admin"           // Web server Admin mode user name
//  #define USE_EMULATION                          // Enable Belkin WeMo and Hue Bridge emulation for Alexa (+16k code, +2k mem)
```

```css
292行付近 DS18x20 使わない -1.3k
#define USE_DS18x20                              // Optional for more than one DS18x20 sensors with id sort, single scan and read retry (+1k3 code)
```

```css
ほとんどコメントアウト
```

最大1023984バイトのフラッシュメモリのうち、スケッチが568264バイト（55%）を使っています。
最大81920バイトのRAMのうち、グローバル変数が43796バイト（53%）を使っていて、ローカル変数で38124バイト使うことができます。

Verify TLS fingerprint...
Unhandled C++ exception: std::bad_alloc

orz


# 6.4.1 では TLS 接続できなかったので 5.14.0 にダウングレードして再チャレンジ
- [Tasmota-5.14.0](https://github.com/arendst/Sonoff-Tasmota/archive/v5.14.0.zip) 上記と同じ手順で配置
- Arduino IDE > ツール > ボード > ボードマネージャー > 検索 ESP8266 > 2.4.1 にダウングレード
- Arduino IDE > ツール のアップロード設定を前記と同じようにする

user_config.h

```css
#define STA_SSID1              "SSID"                // [Ssid1] Wifi SSID
#define STA_PASS1              "パスワード"                // [Password1] Wifi password


#define MQTT_HOST              "Mosquitto IP"                // [MqttHost]
#define MQTT_FINGERPRINT1      "フィンガープリントセット"  // [MqttFingerprint1]
#define MQTT_FINGERPRINT2      "フィンガープリントセット"  // [MqttFingerprint2]
#define MQTT_PORT              8883              // [MqttPort] MQTT port (10123 on CloudMQTT)
#define MQTT_USER              "ユーザー名"       // [MqttUser] MQTT user
#define MQTT_PASS              "パスワード"       // [MqttPassword] MQTT password

225行付近 コメント外す
#define USE_MQTT_TLS                             // Use TLS for MQTT connection (+53k code, +15k mem)

その他全てのサービスをコメントアウトして超ダイエット
```
- ビルド書込み

```
00:00:00 WIF: Connecting to AP1 Abo in mode 11N as sonoff-4540...
00:00:06 WIF: Connected
00:00:07 MQT: Attempting connection...
00:00:07 MQT: Verify TLS fingerprint...
00:00:07 MQT: Verified using Fingerprint1
00:00:07 MQT: Connected
00:00:07 MQT: tele/sonoff/LWT = Online (retained)
00:00:07 MQT: cmnd/sonoff/POWER = 
00:00:07 MQT: tele/sonoff/INFO1 = {"Module":"Sonoff Basic","Version":"5.14.0","FallbackTopic":"DVES_1811BC","GroupTopic":"sonoffs"}
00:00:07 MQT: tele/sonoff/INFO3 = {"RestartReason":"External System"}
00:00:09 MQT: stat/sonoff/RESULT = {"POWER":"OFF"}
00:00:09 MQT: stat/sonoff/POWER = OFF
00:00:16 MQT: tele/sonoff/STATE = {"Time":"1970-01-01T00:00:16","Uptime":"0T00:00:15","POWER":"OFF","Wifi":{"AP":1,"SSId":"Abo","RSSI":64,"APMac":"6A:3B:38:B4:C7:02"}}
00:02:00 MQT: tele/sonoff/UPTIME = {"Time":"1970-01-01T00:02:00","Uptime":"0T00:01:59"}
00:05:16 MQT: tele/sonoff/STATE = {"Time":"1970-01-01T00:05:16","Uptime":"0T00:05:15","POWER":"OFF","Wifi":{"AP":1,"SSId":"Abo","RSSI":58,"APMac":"6A:3B:38:B4:C7:02"}}
00:10:01 APP: Serial logging disabled
```

Mosquitto TLS + パスワード認証で接続成功！！