|
|
@@ -0,0 +1,212 @@
|
|
|
+substitutions:
|
|
|
+ name: varvusensor
|
|
|
+ friendly_name: Varvusensor
|
|
|
+ mqtt_prefix: varvus
|
|
|
+ gain_num: 256
|
|
|
+
|
|
|
+esphome:
|
|
|
+ name: ${name}
|
|
|
+ friendly_name: ${friendly_name}
|
|
|
+
|
|
|
+esp32:
|
|
|
+ board: esp32-c6-devkitc-1
|
|
|
+ variant: esp32c6
|
|
|
+ framework:
|
|
|
+ type: esp-idf
|
|
|
+
|
|
|
+logger:
|
|
|
+ level: DEBUG
|
|
|
+ hardware_uart: USB_SERIAL_JTAG
|
|
|
+
|
|
|
+api:
|
|
|
+ encryption:
|
|
|
+ key: !secret api_key
|
|
|
+
|
|
|
+ota:
|
|
|
+ - platform: esphome
|
|
|
+ password: !secret fallback_ap_password
|
|
|
+
|
|
|
+wifi:
|
|
|
+ networks:
|
|
|
+ - ssid: !secret wifi_ssid
|
|
|
+ password: !secret wifi_password
|
|
|
+ - ssid: "SIPELGAS"
|
|
|
+ password: "misonminuwifinimi"
|
|
|
+ - ssid: "Ristumine peateega"
|
|
|
+ password: "Mikihiir"
|
|
|
+ ap:
|
|
|
+ ssid: "${friendly_name} Fallback"
|
|
|
+ password: !secret fallback_ap_password
|
|
|
+
|
|
|
+captive_portal:
|
|
|
+
|
|
|
+# Avalik MQTT broker edge-serveril (TLS 8883) — toimib igast võrgust.
|
|
|
+mqtt:
|
|
|
+ broker: mqtt.odamus.com
|
|
|
+ port: 8883
|
|
|
+ username: !secret mqtt_user
|
|
|
+ password: !secret mqtt_pass
|
|
|
+ certificate_authority: |-
|
|
|
+ -----BEGIN CERTIFICATE-----
|
|
|
+ MIICizCCAhGgAwIBAgIQXd1w3TH4AchcGGp6BLgK/jAKBggqhkjOPQQDAzAuMQsw
|
|
|
+ CQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZRTAeFw0y
|
|
|
+ NTA5MDMwMDAwMDBaFw0yODA5MDIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYD
|
|
|
+ VQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZRTEwdjAQBgcqhkjOPQIBBgUr
|
|
|
+ gQQAIgNiAAQHZVB1/mimla2hfSurylScjPMZaOJXLz/NnAc2sylm8WDyhU9Ccp+z
|
|
|
+ ASQi5vSwGGJjSGklkD9fdPR8GpyDIOIjCEfrnbt/v+ZSEPLLEGbaM6EccDbN7p9x
|
|
|
+ teIm2Avf+ryjge4wgeswDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF
|
|
|
+ BwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLsgykcL/tflnPmPCSqj
|
|
|
+ jDdFsbzYMB8GA1UdIwQYMBaAFKPIJlqOoUzQNWP8myPIOq5W809WMDIGCCsGAQUF
|
|
|
+ BwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3llLmkubGVuY3Iub3JnLzATBgNV
|
|
|
+ HSAEDDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veWUuYy5s
|
|
|
+ ZW5jci5vcmcvMAoGCCqGSM49BAMDA2gAMGUCMQDgjUEahFT/h3DRakqiPZpLvPgf
|
|
|
+ Zwkt6K2EOMmh1nvEzl83eMLYcod4GCl3b0J1Nn0CMBNYmEQJb4CEG5WoOe7aRn/L
|
|
|
+ VKu6saHmHEynI7ysIPd8zQsK1HdmhlHKlw9Z5GpGvA==
|
|
|
+ -----END CERTIFICATE-----
|
|
|
+ -----BEGIN CERTIFICATE-----
|
|
|
+ MIICpjCCAiugAwIBAgIRAIchZfw0tuX7qK3Vs3BftTowCgYIKoZIzj0EAwMwTzEL
|
|
|
+ MAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNo
|
|
|
+ IEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDIwHhcNMjYwNTEzMDAwMDAwWhcN
|
|
|
+ MzIwOTAyMjM1OTU5WjAuMQswCQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4G
|
|
|
+ A1UEAxMHUm9vdCBZRTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDwS/6vhrcVqcbBo
|
|
|
+ +wgdI3fwn9x7DNJJOY/lTOti0vkwuRN87RhEhTH17E7XyFjWsPYhIPt/wzOqxTd2
|
|
|
+ b+4ZJNy9ID04YywF9U5zasDVyGSNErVNtz8uSGh5izW87j77GaOB6zCB6DAOBgNV
|
|
|
+ HQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB
|
|
|
+ /zAdBgNVHQ4EFgQUo8gmWo6hTNA1Y/ybI8g6rlbzT1YwHwYDVR0jBBgwFoAUfEKW
|
|
|
+ rt5LSDv6kviejM9ti6lyN5UwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZo
|
|
|
+ dHRwOi8veDIuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcGA1Ud
|
|
|
+ HwQgMB4wHKAaoBiGFmh0dHA6Ly94Mi5jLmxlbmNyLm9yZy8wCgYIKoZIzj0EAwMD
|
|
|
+ aQAwZgIxAMU19WCtmxVND8UHBZRoma49Z7jPs64Dma0eTu1OChVbB/2J7GV3nvYK
|
|
|
+ Ax54uk1G9QIxAO0miLVJu8PLNiXXXkiE/gsK3CTRTF/aeo4bMX42Zw40csRU6AC2
|
|
|
+ 6hSW1/IWaas6dg==
|
|
|
+ -----END CERTIFICATE-----
|
|
|
+ -----BEGIN CERTIFICATE-----
|
|
|
+ MIIEcDCCAligAwIBAgIQbI8dxyfHEX97r4U6yYD5zTANBgkqhkiG9w0BAQsFADBP
|
|
|
+ MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
|
|
|
+ Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNjA1MTMwMDAwMDBa
|
|
|
+ Fw0zMjA5MDIyMzU5NTlaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5l
|
|
|
+ dCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgy
|
|
|
+ MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H
|
|
|
+ ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7
|
|
|
+ AlF9ItgKbppbd9/w+kHsOdx1ymgHDB/qo4H1MIHyMA4GA1UdDwEB/wQEAwIBBjAd
|
|
|
+ BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAd
|
|
|
+ BgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwHwYDVR0jBBgwFoAUebRZ5nu2
|
|
|
+ 5eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRw
|
|
|
+ Oi8veDEuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcGA1UdHwQg
|
|
|
+ MB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcNAQELBQAD
|
|
|
+ ggIBAD2/e9frmMxNpCV03qUHegg+MV2wz9644YoXdqtH8RyWYcBO7xfjjGEXdU1e
|
|
|
+ /o0OkEFiynUCOSIk/vLLo7ttz6CPAeNlWfC0XNkoGeWgK6jjXvozBaGuGH5n0Ufo
|
|
|
+ shMeWTuURqNN5G00sSXDTBrpp2+mgvdZQjb8K11TYMA25QA+YHNfbIEL0BniAhKS
|
|
|
+ 2gsnJjSzrdZLI+EZ7SEyqdR2rkjd1KutLDU+n3TFyxjniZVGur4YlhMP3mY/dV95
|
|
|
+ IruAkkjOZier6hGBdEgZXXvaCz9u9iVEadsIE75pAGL8oHV5vxdARDiotRpul1IN
|
|
|
+ /UZwzAbrfUFcw1HkAcYD/mlZfnQ2ieCF2MS7j3Vhv7JPDKp45fmykmzYNSrumRW0
|
|
|
+ upFFKDBOoF7hsOb7oLyHS+Uft6jOUfOrogj8YUx38hKb2K20r42OgsSdDdxdeYWc
|
|
|
+ MS3Sb6mwJeSZEYxJ2gaXnDSPaKhhrNkYwljyVQyr4Nq+MEJytXNTnHqaAcrNwZlV
|
|
|
+ pcJL1KBnMrMjP7eanvUwL3FYj3cF17jtboLt7gLoi4+2rWZFvn+w54jmd/FIuhhZ
|
|
|
+ cEaU/wvU6BUNMtcVquVGHp7itQeDth5j+XL3j4WJ2SABwzUl6OeYdgpIt/ITZa+p
|
|
|
+ TT0mQ/r5XyA4MEAiabn7XJjvCERlF2dcn2wqJw+CreTkkQ2R
|
|
|
+ -----END CERTIFICATE-----
|
|
|
+ -----BEGIN CERTIFICATE-----
|
|
|
+ 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
|
|
|
+ -----END CERTIFICATE-----
|
|
|
+
|
|
|
+i2c:
|
|
|
+ sda: GPIO6
|
|
|
+ scl: GPIO7
|
|
|
+ scan: true
|
|
|
+ frequency: 100kHz
|
|
|
+
|
|
|
+sensor:
|
|
|
+ # AS7341 saadab madala baidi esimesena (little-endian), aga ESPHome i2ctohs
|
|
|
+ # vahetab baidid -> lisame lambdas vahetuse tagasi, et saada toelised 16-bit vaartused.
|
|
|
+ - platform: as7341
|
|
|
+ gain: X256
|
|
|
+ f1:
|
|
|
+ name: "${friendly_name} F1 415nm"
|
|
|
+ id: ch_f1
|
|
|
+ filters: &as7341_swap
|
|
|
+ - lambda: |-
|
|
|
+ uint16_t v = (uint16_t) x;
|
|
|
+ return (float) (uint16_t) ((v >> 8) | ((v & 0xFF) << 8));
|
|
|
+ f2:
|
|
|
+ name: "${friendly_name} F2 445nm"
|
|
|
+ id: ch_f2
|
|
|
+ filters: *as7341_swap
|
|
|
+ f3:
|
|
|
+ name: "${friendly_name} F3 480nm"
|
|
|
+ id: ch_f3
|
|
|
+ filters: *as7341_swap
|
|
|
+ f4:
|
|
|
+ name: "${friendly_name} F4 515nm"
|
|
|
+ id: ch_f4
|
|
|
+ filters: *as7341_swap
|
|
|
+ f5:
|
|
|
+ name: "${friendly_name} F5 555nm"
|
|
|
+ id: ch_f5
|
|
|
+ filters: *as7341_swap
|
|
|
+ f6:
|
|
|
+ name: "${friendly_name} F6 590nm"
|
|
|
+ id: ch_f6
|
|
|
+ filters: *as7341_swap
|
|
|
+ f7:
|
|
|
+ name: "${friendly_name} F7 630nm"
|
|
|
+ id: ch_f7
|
|
|
+ filters: *as7341_swap
|
|
|
+ f8:
|
|
|
+ name: "${friendly_name} F8 680nm"
|
|
|
+ id: ch_f8
|
|
|
+ filters: *as7341_swap
|
|
|
+ clear:
|
|
|
+ name: "${friendly_name} Clear"
|
|
|
+ id: ch_clear
|
|
|
+ filters: *as7341_swap
|
|
|
+ nir:
|
|
|
+ name: "${friendly_name} NIR"
|
|
|
+ id: ch_nir
|
|
|
+ filters: *as7341_swap
|
|
|
+
|
|
|
+interval:
|
|
|
+ - interval: 5s
|
|
|
+ then:
|
|
|
+ - mqtt.publish_json:
|
|
|
+ topic: ${mqtt_prefix}/spectral
|
|
|
+ payload: |-
|
|
|
+ if (!isnan(id(ch_f1).state)) root["f1"] = id(ch_f1).state;
|
|
|
+ if (!isnan(id(ch_f2).state)) root["f2"] = id(ch_f2).state;
|
|
|
+ if (!isnan(id(ch_f3).state)) root["f3"] = id(ch_f3).state;
|
|
|
+ if (!isnan(id(ch_f4).state)) root["f4"] = id(ch_f4).state;
|
|
|
+ if (!isnan(id(ch_f5).state)) root["f5"] = id(ch_f5).state;
|
|
|
+ if (!isnan(id(ch_f6).state)) root["f6"] = id(ch_f6).state;
|
|
|
+ if (!isnan(id(ch_f7).state)) root["f7"] = id(ch_f7).state;
|
|
|
+ if (!isnan(id(ch_f8).state)) root["f8"] = id(ch_f8).state;
|
|
|
+ if (!isnan(id(ch_clear).state)) root["clear"] = id(ch_clear).state;
|
|
|
+ if (!isnan(id(ch_nir).state)) root["nir"] = id(ch_nir).state;
|
|
|
+ root["gain"] = ${gain_num};
|