Config itu peta, bukan kode
Buka config solusi mana pun dan kamu akan menemukan kerangka yang sama. Kenali lima blok dan tak ada YAML yang menakutkan lagi:
1. Identitas & chip
esphome: # name, friendly_name, hook boot
esp32: # model board + framework (esp-idf atau arduino)
sdkconfig_options di bawah framework adalah sakelar chip tingkat rendah — misalnya CONFIG_ESP_WIFI_CSI_ENABLED: "y" adalah satu baris yang membuka WiFi sensing.
2. Konektivitas
wifi: # kredensial via !secret, power_save_mode
captive_portal: # hotspot cadangan saat WiFi gagal
Perhatikan power_save_mode: none di config sensing — tangkapan CSI mati kalau hemat daya menyala.
3. Bus hardware
i2c: / spi: / uart: / i2s_audio:
Ini mendeklarasikan pin. Kalau config dan kabelmu tidak cocok, config yang menang — perbaiki kabel, jangan edit pin, kecuali kamu yakin board-nya memang beda.
4. Komponen (fitur sesungguhnya)
sensor:, camera:, display:, light: — dan kadang external_components: yang menunjuk kode kustom bawaan proyek (seperti latentfield_csi). Kalau config merujuk komponen eksternal, folder itu harus ada di sebelah YAML.
5. Perilaku
interval:, script:, on_boot: — lambda C++ kecil yang berjalan terjadwal. Di config node CSI, satu interval 20 md menyiarkan beacon mesh dan satu lagi mengalirkan JSON — itulah seluruh perilaku perangkat, terbaca dalam satu layar.
Kebiasaannya
Sebelum mem-flash apa pun dari komunitas: pindai blok 1–3 untuk memastikan board + pin cocok dengan hardware-mu, lirik blok 5 untuk tahu apa yang dilakukannya. Tiga puluh detik, setiap kali.