- ESPHome एक ऐसा प्लेटफ़ॉर्म है जो ESP32, ESP8266, BK72xx, RP2040 जैसे बोर्डों को स्मार्टहोम डिवाइस में बदल देता है, और C++ की जगह YAML कॉन्फ़िगरेशन से डिवाइस सेटअप करता है
- यह लोकल कंट्रोल और वायरलेस अपडेट को सपोर्ट करता है, जिससे cloud पर निर्भरता कम होती है, और सेंसर, डिस्प्ले व कंपोनेंट्स को मिलाकर तरह-तरह के डिवाइस बनाए जा सकते हैं
- इसका उपयोग दायरा DIY यूज़र से लेकर प्रोफेशनल इंटीग्रेटर और Made for ESPHome प्रमाणित प्रोडक्ट बनाने वाले मैन्युफैक्चरर्स तक फैला है
- सपोर्टेड वातावरण में Espressif ESP32·ESP8266, Raspberry Pi RP2040, Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx, और कुछ कंपोनेंट्स के लिए host प्लेटफ़ॉर्म भी शामिल हैं
- शुरुआत करते समय Home Assistant वाला रास्ता सबसे आसान है, जबकि उन्नत यूज़र कमांड लाइन गाइड या पहले से कॉन्फ़िगर किए गए प्रोजेक्ट्स से शुरू कर सकते हैं
YAML से कॉन्फ़िगर होने वाले लोकल स्मार्टहोम डिवाइस
- ESPHome, ESP32, ESP8266, BK72xx, RP2040 और अन्य सपोर्टेड बोर्डों को स्मार्टहोम डिवाइस में बदल देता है
- यह जटिल C++ कोड की जगह YAML कॉन्फ़िगरेशन फ़ाइल से डिवाइस सेटअप करने का तरीका अपनाता है
-
मुख्य विशेषताएँ
- बिना कोडिंग के सेटअप: जटिल C++ के बिना सरल YAML कॉन्फ़िगरेशन का उपयोग
- वायरलेस अपडेट: डिवाइस तक भौतिक रूप से पहुँचे बिना अपडेट संभव
- मॉड्यूलर डिज़ाइन: सैकड़ों सेंसर, डिस्प्ले और अन्य कंपोनेंट्स का समर्थन
- लोकल कंट्रोल: cloud पर निर्भर हुए बिना लोकल रूप से काम करता है
-
संबंधित संसाधन
उपयोगकर्ता दायरा और शुरुआत के रास्ते
-
कौन उपयोग करता है
- DIY यूज़र: अपनी ज़रूरतों के हिसाब से सेंसर, स्विच और डिस्प्ले बनाते हैं
- स्मार्टहोम हॉबी यूज़र: कम लागत वाले कस्टम डिवाइस से होम ऑटोमेशन सिस्टम का विस्तार करते हैं
- प्रोफेशनल इंटीग्रेटर: ग्राहकों के लिए लोकल कंट्रोल वाले स्मार्ट डिवाइस तैनात करते हैं
- मैन्युफैक्चरर्स: मानकीकृत फ़र्मवेयर के साथ Made for ESPHome प्रमाणित प्रोडक्ट बनाते हैं
-
सपोर्टेड माइक्रोकंट्रोलर और रनटाइम वातावरण
- Espressif ESP32·ESP8266: कई IoT प्रोजेक्ट्स में इस्तेमाल होने वाले ESP32·ESP8266 माइक्रोकंट्रोलर्स को सपोर्ट करता है
- RP2040: Raspberry Pi के RP2040 माइक्रोकंट्रोलर को सपोर्ट करता है
- अन्य चिप्स: Nordic Semiconductor nRF52, Realtek RTL87xx, Beken BK72xx को सपोर्ट करता है
- डेस्कटॉप host प्लेटफ़ॉर्म: कई ESPHome कंपोनेंट्स को डेस्कटॉप कंप्यूटर पर भी चलाया जा सकता है
-
कैसे शुरू करें
- Home Assistant ऐप के ज़रिए शुरुआत सबसे आसान रास्ता है: Home Assistant Guide
- कमांड लाइन पसंद करने वाले उन्नत यूज़र अलग गाइड का उपयोग कर सकते हैं: Command Line Guide
- सामान्य उपयोग मामलों के लिए पहले से कॉन्फ़िगर किए गए प्रोजेक्ट्स से शुरुआत की जा सकती है: Browse Projects
1 टिप्पणियां
Hacker News टिप्पणियाँ
मैं ESPHome को लीड करने वालों में से एक हूँ। अगर कोई सवाल हो तो बताइए
पिछले शनिवार हमने घोषणा की कि ESPHome अब Open Home Foundation के स्वामित्व में है
Open Home Foundation एक संस्था है जो smart home और उसमें रहने वाले सभी लोगों के लिए privacy, choice और sustainability की रक्षा करना चाहती है: https://www.openhomefoundation.org/blog/announcing-the-open-...
सस्ते microcontroller को सीधे browser से voice assistant, Bluetooth proxy, media player में बदला जा सकता है
मैंने Espressif SDK में गहराई तक जाकर temperature sensor और MQTT वाले wireless switch का लगभग पूरा implementation बना लिया था, लेकिन ESPHome मिलते ही अब तक किया सारा काम गैरज़रूरी हो गया
जो features मैंने लिखे थे वे पहले से मौजूद थे, और उनके साथ उससे कहीं ज़्यादा features भी थे
लगता है Espressif के कुछ devices में Zigbee capability है, तो सोच रहा हूँ कि आगे चलकर सीधे Zigbee devices बनाने का रास्ता खुलेगा या नहीं
हालांकि मैं जो चाहता हूँ वह ESPHome के scope में आता है या साफ़-सुथरे ढंग से implement किया जा सकता है, यह मुझे ठीक से नहीं पता: device के अंदर fast feedback loops और ज़्यादा complex onboard algorithms चला पाना
उदाहरण के लिए, एक light sensor bulb को control करे, लगातार बहुत छोटे बदलावों से brightness adjust करे जो लगभग महसूस न हों, और Kalman filter जैसी चीज़ इस्तेमाल करके दिन के समय के हिसाब से स्थिर रोशनी और color temperature बनाए रखे
मैं air purifier, ventilation, heating, humidification, dehumidification और cooling को भी लगातार control करके environment और power usage optimize करना चाहता हूँ। Ventilation CO2/TVOC घटाता है, लेकिन PM2.5 और बाहर का temperature अंदर लाता है, और heating/cooling, ventilation और humidity जटिल रूप से जुड़े हुए हैं
सहायक heater basic heating से बहुत महंगा है, लेकिन बहुत ठंडे दिनों में ज़रूरी होता है, और जब घर पर कोई नहीं होता तो priority बदल जाती है: मौजूदगी में रहने लायक humidity चाहिए, अनुपस्थिति में humidity को minimum रखना चाहता हूँ
दूसरी बात, अच्छा होगा अगर ESPHome से Wi‑Fi ही नहीं बल्कि Zigbee devices भी बनाए जा सकें
Wi‑Fi पर logs देखना इतना simple हो सकता है, यह सोचकर भी हैरानी होती है
TV remote से audio system control करने के लिए मैंने एक mini infrared receiver/transmitter बनाया; configuration बहुत आसान था और Home Assistant integration भी शानदार है
मैं ESPHome से 20 से ज़्यादा devices चला रहा हूँ, उनमें से करीब तीन-चौथाई Home Assistant network में हैं, और लगभग 6 स्वतंत्र रूप से ESPHome के जरिए MQTT पर बाकी चीज़ों से communicate करते हैं
मैं एक सस्ते Chinese weather station को देख रहा हूँ जिसका अंदरूनी हिस्सा ESP32 से बदल दिया है, साथ ही rainwater tank monitoring, greenhouse soil moisture, घर के कई स्थानों का temperature/humidity, kitchen और बच्चों के कमरों की air quality आदि देखता हूँ
ESPHome सचमुच बहुत underappreciated project है। सच में, 5 मिनट, 10 डॉलर का hardware, और बिना programming के आप अपने घर के IoT devices खुद बना सकते हैं और property में कहीं से भी real-time data पा सकते हैं
कोई idea आते ही हाथ की पहुँच में hardware होना बहुत बड़ी freedom देता है
ये हैरानी की बात है कि काफ़ी stable हैं, और sprinkler controller जैसे modules को independent operation के लिए program किया जा सकता है, इसलिए power हो तो वे चलते रहते हैं
मुझे महीनों बाद पता चला कि Home Assistant का microSD card खराब हो गया था, क्योंकि मेरा hydroponics setup लगातार सामान्य रूप से काम करता रहा
सबसे ज़्यादा समय जिस काम में गया वह waterproof Sockitbox के अंदर relay चलाने के लिए DC/DC converter में wiring करना था
आसपास wire terminal breakout boards रखना भी बहुत काम का होता है: https://www.amazon.com/whiteeeen-Development-Expansion-ESP-W...
CloudFree भी ESPHome से reprogram किए जा सकने वाले ready-made IoT parts लेने के लिए अच्छा है: https://cloudfree.shop/
पहले मैंने 3 डॉलर वाले Wittycloud ESP8266 से solar analysis data scrape करके Home Assistant में consumption देखने के लिए ESPHome इस्तेमाल किया था
लेकिन USB adapter के अलावा अभी तक power supply का कोई elegant तरीका नहीं मिला। outdoor sensors के लिए कोई साफ़-सुथरा battery-based तरीका हो तो अच्छा होगा
लगता है आप काफ़ी high-end chip इस्तेमाल कर रहे हैं
और बचत करनी हो तो ESP8266 4 डॉलर तक में भी मिल सकता है, और वह सचमुच कमाल का है
जैसे, मेरे rented घर में कोई बिना intrusion के निशान छोड़े अंदर आ जाए
documentation में कई options हैं, लेकिन समझ नहीं आ रहा कि motion/presence detection चुनूँ या binary presence detector। कौन सा sensor बेहतर और cost-effective होगा, यह जानना चाहता हूँ
ESPHome की सबसे अच्छी बात इसका मजबूत और सक्रिय community है
हमारे बनाए open-source hardware air quality monitor [1] के लिए community के एक सदस्य ने एक sophisticated ESPHome integration [2] develop किया था
उस integration में basic open-source firmware की सारी features थीं, और कभी-कभी नए features implement करने में वह हमसे भी तेज था
एक तरह से इस open-source competition ने हमारे software version को बेहतर बनाने में मदद की और हमें motivate किया
[1] https://www.airgradient.com/
[2] https://github.com/MallocArray/airgradient_esphome
संबंधित material के तौर पर, commercial hardware के लिए ESPHome device settings का एक collection है: https://devices.esphome.io/
ऐसे devices की Tasmota settings का collection भी है जिन पर अक्सर ESPHome भी चल सकता है: https://templates.blakadder.com/
थोड़ा अलग विषय है, लेकिन मुझे ESPHome पसंद है और मैंने घर में कुछ IoT-based temperature sensors के लिए इसका इस्तेमाल किया है
लेकिन WAF, यानी wife acceptance factor, में हमेशा अटकने वाली चीज़ ESP32, sensors और तारों के उलझे हुए सेटअप को किसी अच्छे दिखने वाले container में डालकर छिपाना है
electronic parts छिपाने के लिए आप लोग क्या इस्तेमाल करते हैं, यह जानना चाहूंगा
Apollo products काफ़ी unobtrusive तरीके से अच्छे बने हैं: https://apolloautomation.com/products/sensor-stand?pr_prod_s...
temperature sensors के लिए आम तौर पर ऐसे off-the-shelf products चुनता हूं जिन्हें यह firmware support करता है: https://github.com/pvvx/ATC_MiThermometer
bonus के तौर पर battery पर 1 साल से ज़्यादा चल सकते हैं
glass bowl या transparent plastic products इस्तेमाल करें तो parts गंदे नहीं होते और अंदर भी देखा जा सकता है
wall पर लगाने के लिए board को lid के अंदर screw से fix करें, और उस lid को wall पर fix कर दें. फिर container को lid से निकालते ही आसानी से access मिल जाता है
कमी यह है कि अगर इन्हें बहुत visible जगह पर रखें तो ये बदसूरत दिख सकते हैं
आम तौर पर Thingiverse पर कोई existing design ढूंढता हूं जो लगभग fit हो जाए. common parts इस्तेमाल करें तो exact fit वाला model मिलने की संभावना भी अधिक होती है
एक सवाल है जिसका जवाब search करने पर भी नहीं मिला
एक septic tank alarm system है, और जब float switch detect करता है कि tank 3/4 भर गया है, तो sound और visual alarm चालू हो जाते हैं
इसमें NO dry contacts की एक pair है जो alarm बजने पर close होती है
जानना चाहता हूं कि इन contacts के closed या open होने को कैसे monitor करना चाहिए. GPIO pin से हो जाना चाहिए लगता है, लेकिन search करने पर कोई उपयोगी जवाब नहीं मिला
सोच रहा हूं कि हार मानकर RIB01BDC [0] packaged relay से Raspberry Pi चालू करूं, और septic tank contacts close होने पर email भेजवा दूं
[0] https://www.functionaldevices.com/product/rib01bdc/
microcontroller से GPIO pin को periodically read करवाएं; high हो तो contact open है और alarm नहीं बज रहा, low हो तो contact closed है और alarm बज रहा है
GPIO/contact/resistor/VCC configuration circuit के एक side को high logic level पर खींचने वाला pull-up circuit बनता है, और resistor contact close होने पर बहने वाले current को limit करता है
अगर microcontroller GPIO pin के internal pull-up setting को support करता है, तो extra hardware के बिना pin को सीधे contact से connect भी किया जा सकता है
उल्टा, अगर internal pull-down setting है, तो VCC को contact से जोड़कर और GPIO को दूसरी side पर सीधे जोड़कर configuration flip किया जा सकता है. available features और current limit के लिए microcontroller documentation देखें
septic tank monitoring में आपको कैसी information चाहिए, उसके हिसाब से यह भी एक useful option हो सकता है
ESPHome और M5StickC से commute punch clock बनाया था
clock in/clock out करने पर Home Assistant time को Google Sheet में भेज देता है, और यह बहुत reliably काम करता है
एक मज़ेदार बात यह है कि ESP32 कुछ pins पर capacitive touch sensing support करता है, जिससे conductive surfaces को smart home buttons या input devices में बदला जा सकता है
ESPHome में भी इसका अच्छा support है: https://esphome.io/components/binary_sensor/esp32_touch.html
एक छोटा project है जिसे मैं आज़माना चाहता था
घर के पास वाले stop पर bus arrival time को local transport API से query करके, 3 मुख्य buses के time को एक बड़े screen पर या हर bus के लिए 3 छोटे screens पर दिखाना चाहता हूँ
High-resolution होना ज़रूरी नहीं, लेकिन इतना बड़ा और bright हो कि दूर से भी family एक नज़र में देख सके। जैसे 7-segment display में bus number के 3 digits और arrival में बचे minutes के 4 digits दिखाने जैसा
Wi-Fi से update हो पाना चाहिए, और Arduino/Raspberry Pi जैसे low-power device से जुड़ा हो तो भी ठीक है। AA batteries पर चल सके तो और बेहतर
पहला काम करना आता है, लेकिन दूसरे के बारे में बिल्कुल नहीं पता, और soldering भी कभी नहीं की है। कोई जानकार direction दे दे तो अच्छा होगा
pixel grid पर draw करने वाला display component https://esphome.io/components/display/, text renderer, addressable LED driver https://esphome.io/components/light/neopixelbus के ऊपर display matrix बनाने वाला addressable_light platform https://esphome.io/components/display/addressable_light, सस्ते 8x32 LED panel https://www.google.com/search?q=8x32+ws2812b जैसी चीज़ों को combine किया जा सकता है
अगर और जगह चाहिए तो कई units बना सकते हैं या panels को जोड़ सकते हैं
बेशक wheel फिर से बनाने की ज़रूरत नहीं; ऐसी guide भी follow कर सकते हैं: https://community.home-assistant.io/t/led-matrix-with-esphom...
खासकर अगर Ulanzi जैसे existing hardware को reuse करने की direction में जाएँ, तो soldering ज़्यादा नहीं चाहिए; सही data connection और power supply ही key हैं
ESP32 को Arduino से program किया जा सकता है, और familiar libraries और Wi-Fi handling भी वैसे ही use कर सकते हैं
Adafruit से RGB matrix खरीदी जा सकती है, और वे ऐसे ESP32 boards भी बेचते हैं जो उसे सीधे drive कर सकते हैं, इसलिए यह लगभग plug-and-play level है और hardware knowledge बहुत कम चाहिए
अगर खुद बनाना चाहते हैं लेकिन guidance चाहिए, तो यह project देखें, जिसमें आपकी चाहत से मिलता-जुलता Wi-Fi connected text display device, hardware और software दोनों के साथ documented है: https://github.com/BlueAndi/esp-rgb-led-matrix
मैं personally इसे use नहीं करता, लेकिन idea सच में शानदार लगता है
पहले sensor board बनाया था और firmware खुद लिखा था; अब देखना पड़ेगा कि ESPHome को आसानी से configure करके उस board पर चला सकता हूँ या नहीं
लेकिन मेरे firmware में जो एक must-have feature पहले से है, वह है pull-based OTA updates
अभी मैं firmware को एक folder में copy कर देता हूँ, तो घर के सभी sensors HTTP server के through अपने-आप उस firmware पर update हो जाते हैं
ESPHome में हर sensor पर अलग से update push करना पड़ता है, इसलिए अगर dozens हों तो झंझट है
किसी simple backend से communicate करने वाला firmware खुद लिखना ज़्यादा आसान और तेज़ लगता था
ESP32 devices के लिए code कैसे fit होता है, यह भी curious हूँ। अगर 4MB flash device पर OTA चाहिए, तो practically program limit करीब 1MB है
GPIO, ADC, UART, Wi-Fi, HTTPS, HTTPS server, interrupts, FreeRTOS, MQTT, NVS, chip info, logs, OTA और standard library functions ही call करने वाला simple program भी 1MB limit पार कर जाता है। सिर्फ एक scanf भी 30KB ले लेता है
सारे logs बंद करके compile करने पर program लगभग 800KB तक घटाया जा सकता है, लेकिन program logic न होने पर भी limit के काफी पास है
अगली बार remote monitoring device की ज़रूरत होगी तो फिर से देखूँगा
अगर कोई device update नहीं करना हो, तो YAML file में थोड़ी देर के लिए कोई unexpected keyword डाल देता हूँ ताकि compile और update fail हो जाए
घर भर में temperature probes लगे हुए काफी ESP devices हैं, और maintenance वाला code कम करने के लिए उन्हें ESPHome पर shift करने की सोच रहा हूँ
खासकर शुरुआत में browser से flashing और बाद में wireless updates कर पाने वाली बात अच्छी है