1 पॉइंट द्वारा GN⁺ 2025-04-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह एक ऐसा उदाहरण है जिसमें किराए के अपार्टमेंट में कोई डिवाइस बदले बिना या electrician बुलाए बिना, मौजूदा thermostat के wireless signal replay से Home Assistant heating control लागू किया गया
  • thermostat 868MHz बैंड पर boiler से संचार करता था और protocol encrypted था, लेकिन Replay Attack packet की सामग्री जाने बिना भी काम कर सकता था
  • rtl_433 विश्लेषण से यह Honeywell परिवार जैसे protocol जैसा लगा, और demand मान boiler के on/off को दिखाता था, जबकि boiler acknowledgement response भेजता था
  • अंतिम सेटअप में HackRF One clone और hackrf_transfer से signal record/playback किया गया, और Docker web server को Home Assistant के command_line, average, generic_thermostat से जोड़ा गया
  • यह 2024 के दिसंबर की शुरुआत से बिना समस्या के उपयोग में है, लेकिन 868MHz transmission स्थानीय नियमों के अनुसार अवैध हो सकता है, और साधारण on/off control के लिए HackRF का उपयोग कुछ ज़्यादा ही है

किराए के घर में heating automation करना मुश्किल क्यों है

  • किराए के अपार्टमेंट का boiler मकान-मालिक द्वारा लगाए गए एक wireless thermostat से नियंत्रित होता था
  • thermostat अपने built-in temperature sensor से target temperature के अनुसार heating को on/off करता था
  • वास्तविक उपयोग में तीन असुविधाएँ थीं
    • sensor अपार्टमेंट के सिर्फ एक कमरे का तापमान मापता था, इसलिए हर कमरे में heating समान नहीं थी
    • जिस कमरे में control unit हो, उसके अनुसार बिस्तर या living room से इस्तेमाल करना असुविधाजनक था
    • बाहर जाने से पहले heating बंद न करें तो महंगी energy बेकार जाती थी
  • घर में automation पहले से Home Assistant से हो रहा था, और heating को भी उसी तरह नियंत्रित करना चाहा गया
  • बाज़ार में उपलब्ध समाधान थे, लेकिन उनमें मकान-मालिक के सहयोग और electrician की visit की ज़रूरत पड़ सकती थी, इसलिए मौजूदा thermostat को वैसे ही रखने का रास्ता चुना गया

protocol को समझने की जगह replay attack चुना गया

  • शुरुआत इस तथ्य से हुई कि thermostat और boiler wireless protocol से संचार करते हैं
  • protocol को शुरू से reverse engineer करना उपलब्ध radio knowledge के हिसाब से बहुत जटिल था
  • चुना गया तरीका Replay Attack था
    • boiler और thermostat के बीच signal की कॉपी बनाई जाती है
    • कॉपी किए गए signal को फिर से transmit करके हमलावर thermostat जैसा दिखाई देता है
    • protocol की सामग्री समझे बिना भी यह काम कर सकता है
  • इस तरीके में डिवाइस implementation पर कुछ हद तक किस्मत भी निर्भर करती है
    • अगर संचार में बढ़ता हुआ counter हो, तो पुराने signal को अनदेखा करके replay attack रोका जा सकता है
    • इस thermostat में ऐसा तरीका नहीं था, इसलिए replay संभव था

signal band की पहचान और शुरुआती अवलोकन

  • online सटीक thermostat model की जानकारी मिली, और datasheet के RF Communication सेक्शन से पुष्टि हुई कि यह 868MHz के आसपास का band इस्तेमाल करता है
  • datasheet में Protocol: Encrypted लिखा था, लेकिन replay method में यह बड़ी समस्या नहीं थी
  • 868MHz signal cloning पर सामग्री बहुत कम थी
    • LoRa/Meshtastic से जुड़ी सामग्री काफी थी
    • ceiling fan या garage door जैसे डिवाइस clone करने की कोशिश वाले Reddit पोस्ट बहुत थे, लेकिन जवाब कम मिले
    • अनुमान था कि अगर यह 433MHz होता तो consumer tools कहीं अधिक मिलते
  • signal देखने के लिए Software-Defined Radio का उपयोग किया गया
    • सस्ता RTL-SDR V4 खरीदा गया
    • SDR++ में thermostat का button दबाने पर waterfall में signal दिखाई दिया
  • Flipper Zero इस स्थिति के लिए उपयुक्त नहीं था
    • Flipper Zero SDR नहीं है
    • इसकी workable frequency range सीमित है, इसलिए इस डिवाइस पर इसे उपयोग नहीं किया जा सका

protocol के संकेत और असफल transmission प्रयास

  • rtl_433 से यह जाँचा गया कि thermostat कोई ज्ञात protocol उपयोग करता है या नहीं
    • नाम के विपरीत, यह अन्य frequencies पर भी काम करता है
    • अधिक दुर्लभ डिवाइस पहचाने नहीं भी जा सकते
  • नतीजे में यह thermostat अन्य Honeywell डिवाइस के समान protocol इस्तेमाल करता हुआ लगा
  • संचार में demand property boiler की स्थिति दिखाती थी
    • 1 मतलब boiler on
    • 0 मतलब boiler off
    • boiler acknowledgement response भेजता था, जो शायद यह जाँचने के लिए था कि thermostat range से बाहर तो नहीं है
  • इसके बाद packet सीधे बनाकर transmit करने की कोशिश की गई, लेकिन असफल रही
    • URH से packet को manually reverse engineer और reconstruct करने की कोशिश की गई
    • सस्ते 868MHz microcontroller board से transmit करने की कोशिश हुई
    • वे board एक-दूसरे के साथ संचार के लिए अधिक उपयुक्त थे, और आगे बढ़ने के लिए radio registers को सीधे संभालना पड़ता
    • यह काम अपनी technical capability से बाहर लगा

HackRF से signal को ज्यों का त्यों record और play करना

  • अंत में HackRF का उपयोग करके signal की सामग्री समझे बिना उसे जस का तस replay करने का तरीका चुना गया
  • मौजूदा RTL-SDR केवल receive कर सकता था, इसलिए transmission के लिए उपयोगी नहीं था
  • HackRF One आमतौर पर 400 डॉलर से अधिक का होता है, लेकिन AliExpress पर लगभग 40 डॉलर का clone मिला
    • बाद में AliExpress पर “HackRF” खोजने से मिलने वाली अधिकतर listings गायब हो गईं
    • नए clone OpenSourceSDRLab से खरीदे जा सकते हैं, लेकिन अब वे पहले जितने सस्ते नहीं हैं
    • अगर संभव हो, तो Great Scott Gadgets के HackRF One जैसे मूल hardware project को support करना बेहतर है
  • hackrf_transfer से on/off signal अलग-अलग record किए गए
# We set the frequency to 868.3Mhz and the sample rate to 2000000.
hackrf_transfer -r turn_off.raw -f 868300000 -s 2000000
hackrf_transfer -r turn_on.raw -f 868300000 -s 2000000
  • उसी configuration से signal को replay करके CLI से boiler को on/off किया जा सका
# We use -a to turn on the amplifier and -x to increase the gain a tad.
hackrf_transfer -t turn_off.raw -f 868300000 -s 2000000 -a 1 -x 23
hackrf_transfer -t turn_on.raw -f 868300000 -s 2000000 -a 1 -x 23
  • command चलाने के बाद boiler के अंदर के physical relay के on/off होने की आवाज़ सुनी जा सकती थी

Home Assistant से जोड़ने का तरीका

  • HackRF को powered USB hub में लगाया गया और उसे Home Assistant server से जोड़ा गया
  • Docker container के अंदर transmission command चलाने वाला एक साधारण web server लिखा गया
  • Home Assistant में Average Sensor Plugin का उपयोग किया गया, और command_line, average, generic_thermostat configuration को जोड़ा गया
command_line:
- switch:
name: Boiler
command_on: "curl http://docker-vm:1111/api/on";
command_off: "curl http://docker-vm:1111/api/off";
sensor:
- platform: average
name: "Average Temperature"
entities:
- sensor.bedroom_thermostat_temperature
- sensor.kitchen_thermostat_temperature
climate:
- platform: generic_thermostat
name: Boiler Thermostat
heater: switch.boiler
target_sensor: sensor.average_temperature
  • इस configuration से bedroom और kitchen temperature sensor के औसत तापमान के आधार पर boiler नियंत्रित करने वाला thermostat बनाया गया
  • implementation काफी हद तक अस्थायी जुगाड़ जैसा था
    • dedicated Home Assistant plugin लिखना बेहतर होता
    • CLI को shell से बुलाने की बजाय radio को सीधे नियंत्रित करना अधिक साफ़ तरीका होता
    • curl पर heating निर्भर होना कुछ असुविधाजनक है

वास्तविक उपयोग के परिणाम और बाकी सीमाएँ

  • यह setup 2024 के दिसंबर की शुरुआत से अपार्टमेंट heating control के लिए उपयोग में है, और उसके बाद कोई समस्या नहीं आई
  • फ़ोन से तापमान समायोजित करना सुविधाजनक है
  • automation के उदाहरण इस प्रकार हैं
    • सोते समय तापमान कम करना
    • सुबह उठने के समय के अनुसार तापमान बढ़ाना
    • शहर की ओर निकलने पर heating बंद करना
    • घर लौटने से कुछ stops पहले heating फिर चालू करना ताकि पहुँचने पर घर गर्म मिले
  • सबसे खटकने वाली बात यह है कि साधारण boiler on/off switch के लिए HackRF जैसे शक्तिशाली radio को लगातार इस्तेमाल करना पड़ता है
  • छोटे radio को जबरन फिट करने में और समय लगाने के बजाय, कुछ ज़्यादा भारी समाधान होते हुए भी ठीक से काम करने वाले विकल्प को चुना गया

wireless transmission और blog comments पर कानूनी सावधानी

  • wireless signal transmit करने से पहले स्थानीय नियमों की जाँच ज़रूर करनी चाहिए
  • लेख में इस्तेमाल किया गया 868MHz band अमेरिका में बिना license transmission के लिए अवैध है
  • 16 मार्च 2025 से ब्रिटेन का Online Safety Act पूरी तरह लागू होने के साथ, blog comments जैसे user-to-user content चलाने का बोझ बढ़ गया
  • regulator Ofcom के व्यक्तिगत blog तक enforcement पहुँचने की संभावना कम है, लेकिन उल्लंघन पर 1.8 करोड़ पाउंड के जुर्माने का जोखिम होने से comment section हटा दिया गया
  • self-hosted blog पर इस कानून के प्रभाव पर संबंधित कानूनी व्याख्या और hobbyist internet पर चर्चा भी साथ दी गई है

1 टिप्पणियां

 
GN⁺ 2025-04-23
Hacker News की राय
  • अगर लक्ष्य energy या cost बचाना है, तो ऐसा सिस्टम उल्टा कम पसंद आएगा जो 20 मिनट में ठंडे घर को गरमा दे
    इसकी बजाय heating water circulation temperature को काफी कम पर चलाना बेहतर है, ताकि non-heated spaces में होने वाला loss घटे और पूरे कमरे में गर्मी ज्यादा समान रूप से फैले। अगर condensing boiler है, तो सिर्फ target flow temperature कम करके भी यह किया जा सकता है
    इसके ऊपर outdoor temperature compensation (weather compensation) जोड़ दें, तो बाहर के तापमान के हिसाब से flow temperature adjust किया जा सकता है, ताकि building बस इतना ही चले कि target temperature तक मुश्किल से वापस पहुँचे
    सही तरह से tune करने पर thermostat एक upper limit की तरह काम करता था, और दिन में 22~24 घंटे heating मांगता था, लेकिन overheat नहीं होने देता था। आम तौर पर flow temperature गर्म दिनों में 110°F और शून्य से नीचे के मौसम में 135°F के आसपास था, और पिछली सर्दियों के fixed 160°F flow की तुलना में gas usage 8~15% कम हुआ, साथ ही आराम भी काफी बेहतर था। हालांकि इस तरीके में recovery time लंबा होता है, इसलिए यह बड़े setback settings के साथ अच्छी तरह नहीं चलता; इसके लिए ज्यादा smart control चाहिए जो सामान्य समय में low temperature पर precision से चलाए और सिर्फ recovery phase में ज्यादा गर्म पानी इस्तेमाल करे

    • यह काफी हद तक घर के अंदर heating layout पर निर्भर करता है। क्या ज्यादा efficient है, यह इस बात पर टिका है कि गर्मी घर के अंदर कहाँ डाली जा रही है, insulation का स्तर क्या है, वगैरह
      गर्मी temperature difference के अनुसार गर्म जगह से ठंडी जगह की ओर रैखिक रूप से चलती है। मान लें कि pipe temperature indoor temperature के बराबर है, तो transfer हुई सारी heat building envelope के बाहर निकल जाएगी, और pipe जितना ज्यादा गर्म होगा, यह अनुपात उतना बेहतर होगा। Pipe का कितना प्रतिशत envelope के अंदर है, उससे फर्क नहीं पड़ता
      लेकिन अगर heating खिड़कियों के नीचे जैसी बाहरी दीवारों के साथ की जा रही है, तो indoor thermostat की तुलना में बाहरी दीवारें ज्यादा गर्म हो जाती हैं और बाहर की ओर loss बढ़ता है। वहीं radiant heating आम तौर पर इस प्रभाव से बचती है
    • सहमत। on/off तरीका सबसे खराब heating तरीका है। ISO 7730 के अनुसार comfort का बड़ा हिस्सा ऐसी दीवारों से आता है जो ठंडी न हों: https://de.wikipedia.org/wiki/ISO_7730
      यानी, उचित रूप से insulated घर में लगभग 20°C का कम लेकिन स्थिर तापमान बनाए रखना comfort के लिहाज से सबसे अच्छा है, और इससे heating water temperature भी कम रखा जा सकता है, जिससे heat pump या boiler की efficiency बेहतर होती है
    • मैंने पढ़ा था कि घर पर न होने पर heating बंद कर देना और लौटते समय फिर चालू करना हमेशा ज्यादा efficient होता है। यहाँ 22~24 घंटे चालू रखने का कारण क्या यह है कि desired temperature तक लौटने में बहुत समय लगता है, इसलिए व्यवहार में कुछ समय तक ठंड सहनी पड़ती है?
    • मुझे water-based systems की ज्यादा जानकारी नहीं है, इसलिए पूरी तरह निश्चित नहीं हूँ, लेकिन heat pump के मामले में यह दावा गलत साबित हुआ है
      fixed temperature पर छोड़ने और बाहर जाते समय ऊपर-नीचे करने या बंद करके घर लौटने से पहले वापस पहले जैसा करने की तुलना में लगभग कोई फर्क नहीं मिला, और power consumption भी लगभग समान था
      अच्छा होता अगर लिंक होता, लेकिन उन tests में reheating की inefficient situations भी शामिल थीं। इसमें “emergency heating” भी शामिल था
    • “ठंडी हालत से 20 मिनट में आरामदेह गर्मी देने वाला सिस्टम नहीं चाहिए” यह हर स्थिति में सही नहीं है। जैसा दूसरे comment में समझाया गया, कुछ कमरों में underfloor heating और radiator दोनों हैं, और अगर target temperature, current temperature से 1°C से ज्यादा अलग हो, तो दोनों चलते हैं, नहीं तो सिर्फ underfloor heating इस्तेमाल होती है
  • बढ़िया hack है
    इससे आसान तरीका शायद thermostat के नीचे Peltier heating/cooling element रखना और उसे remotely control करना होगा, ताकि thermostat जो temperature महसूस करे उसे अपने नियंत्रण में लिया जा सके
    thermostat के exact model का लिंक काम नहीं कर रहा, इसलिए यह approach design के हिसाब से कितना फिट बैठता है, कहना मुश्किल है, लेकिन मैंने जिन thermostats का इस्तेमाल किया है वे आम तौर पर wall-mounted होते थे, इसलिए नीचे heat source या cold source रखना बहुत मुश्किल नहीं था। बस यह सुनिश्चित करना होता है कि गर्म और ठंडा हिस्सा एक साथ thermostat तक न पहुँचे, और वह तो सिर्फ placement की समस्या है

    • बढ़िया idea है। इतना inefficient device इतने efficient काम में इस्तेमाल हो रहा है, इसमें irony है
    • ऐसे boiler के लिए सबसे अच्छा control system वह है जो outdoor temperature के हिसाब से heating water temperature तय करने वाली heating curve को control करे। लक्ष्य जितना संभव हो उतना कम heating water temperature रखना हो, तो system response काफी धीमा हो जाता है। उसके बाद हर कमरे की ओर जाने वाले पानी के flow को adjust करके temperature difference ठीक किया जा सकता है। हालांकि यह लंबे समय की manual optimization process है और पूरा होने में 1~2 साल लगते हैं
  • लगता है toolbox ही solution space को सच में तय करता है। मैं RF के बारे में बिल्कुल नहीं जानता, इसलिए यह लेख पढ़ते समय मेरे tools के हिसाब से एक दूसरा हमला तुरंत दिमाग में आया। क्या thermostat को किसी box में रखकर उस box का temperature mechanically control नहीं किया जा सकता?

    • wall controller के अंदर वाला thermistor निकालकर उसकी जगह digital potentiometer wire किया गया। इससे sensor को physically गरम या ठंडा किए बिना वही असर मिलता है
    • या फिर boiler control board पर ESP32 जोड़कर dry contact circuit बंद क्यों न कराया जाए?
    • सुनने में ठीक approach लगती है, लेकिन box को cool करना समस्या है। heating चालू कराने के लिए temperature sensor को कम value पढ़नी चाहिए
      फिर भी अगर thermostat के अंदर तक पहुँचा जा सकता है, तो temperature sensor को circuit से replace करके जरूरत के समय बहुत ऊँचा या बहुत नीचा reading दिलाना शायद मुश्किल नहीं होगा
    • सही। असल में ऐसा किया जा सकता है। CoolBot देखिए। वह मौजूदा thermostat को बस गर्म करके ठीक यही करता है
    • अगर combi boiler तक physical access है, तो receiver हटाकर उसे Home Assistant-friendly combi boiler thermostat से बदलना भी एक तरीका है
      पहली बार करने पर भी शायद 30 मिनट का काम है, और थोड़ा double-sided tape हो तो आसानी से वापस original हालत में लाया जा सकता है। Tracy Island बना चुके किसी ब्रिटिश व्यक्ति के लिए यह परिचित चीज होगी। electric shock का जोखिम सच में है, लेकिन boiler की power बंद कर दें तो उसे लगभग पूरी तरह घटाया जा सकता है
      फिर भी यह मजेदार hack है, और अच्छी तरह implement किया गया है
  • मुझे यह जानने की जिज्ञासा है कि एक सामान्य-purpose thermostat का आदर्श रूप क्या होगा
    हमारे अपार्टमेंट के thermostat में वह “feature” है जो आजकल कई अमेरिकी उत्पादों में होता है: आपको चार क्रमबद्ध समय—जागना, बाहर जाना, घर लौटना, और सोना—और हर अवधि के लिए इच्छित तापमान सेट करना पड़ता है। मैं लगभग किसी भी ऐसे परिवार को नहीं जानता जहाँ घर के सभी लोग हर दिन एक ही समय पर उठते हों, निकलते हों, लौटते हों और सोते हों
    मैं घर से काम करता हूँ, इसलिए मैं बस एक ही तापमान सेट करके उसे अनिश्चित समय तक बनाए रखना चाहता हूँ, लेकिन इस सिस्टम में मनचाहा तापमान चार बार दबाकर दर्ज करना पड़ता है और चारों अवधियों को जाँचना भी पड़ता है
    आखिरकार, शायद ऐसा ज़्यादा programmable thermostat बेहतर होगा जिसे पुराने dial thermostat की तरह व्यवहार करने के लिए सेट किया जा सके

    • मुझे अब भी लगता है कि dial ही सबसे अच्छा है। खासकर आधुनिक घरों में, कम से कम यूरोप में तो ऐसा मानते हैं कि thermostat को हमेशा एक ही तापमान पर रखना बेहतर है। सिद्धांत यह है कि सुबह ठंडे हो चुके घर को फिर से गर्म करने में, स्थिर तापमान बनाए रखने की तुलना में, ज़्यादा ऊर्जा लगती है
      आदर्श व्यवस्था यह होगी कि घर के सभी radiators पर smart thermostatic valves लगे हों, ताकि कमरे में कोई न हो तो उन्हें हाथ से कम किया जा सके या गतिविधि/खिड़की खुलने का अपने-आप पता लगाकर समायोजित किया जा सके। लेकिन केवल लिविंग रूम का मुख्य thermostat ही boiler चालू करने वाला न हो; ज़रूरत पड़ने पर हर valve के पास केंद्रीय boiler चालू करने का अधिकार होना चाहिए
    • मैं Ecobee इस्तेमाल करता हूँ और मुझे यह पसंद है। डिफ़ॉल्ट रूप से Home, Away, Sleep होते हैं, लेकिन आप चाहें तो इससे ज़्यादा या कम भी जोड़ सकते हैं। आप तापमान को manually बदल सकते हैं, और यह भी तय कर सकते हैं कि manual setting कितनी देर तक बनी रहे—जब तक आप रद्द न करें, या अगला scheduled change होने तक
      मुझे रात में थोड़ा ठंडा पसंद है, इसलिए मैंने इसे ऐसे सेट किया है कि सामान्य सोने के समय के आसपास तापमान बदल जाए, और अगर मैंने दिन का तापमान समायोजित भी किया हो, तब भी यह अपने-आप वापस लौट आता है। मैं smart thermostat इसलिए इस्तेमाल करता हूँ क्योंकि मैं इसे फिर से बदलना याद नहीं रखना चाहता। जब मैं घर से निकलता हूँ तो यह पहचानकर Away पर चला जाता है, और छुट्टी पर होने पर मैं इसे ऐसे सेट कर सकता हूँ कि घर सुरक्षित रहे लेकिन आरामदायक न बनाया जाए, फिर विमान के उतरने के समय के आसपास इसे वापस किया जा सकता है
      जब तक आपकी दिनचर्या पूरी तरह पागलपन भरी random न हो, या आप सोते समय, जागते समय, या घर से बाहर होने पर हमेशा एक ही तापमान नहीं चाहते, तब तक बस एक basic schedule बना लें और ज़रूरत पड़ने पर manual adjustment करें। अगर आप एक घंटा पहले उठ जाते हैं तो खुद बदल लें, और अगर समय पर उठते हैं तो कुछ भी सोचने की ज़रूरत नहीं
    • सच कहूँ तो पुराना तरीका बेहतर था। हमारा वाला भी programmable है, लेकिन हम इसे program नहीं करते और बस हमेशा वही तापमान रखते हैं जो चाहिए। ठंड के दिन थोड़ा सर्द लगे तो 1 degree बढ़ा देते हैं, और अगर धूप अच्छी हो और सबको गर्मी लगे तो 1 degree घटा देते हैं
    • क्या ये thermostats पहले से ही लगभग यही अनुमति नहीं देते? मैं नया Honeywell thermostat इस्तेमाल कर रहा हूँ, और मूल रूप से यह वही करता है जो मेरा 20 साल पुराना पिछला मॉडल करता था, बस UI सुविधा थोड़ी बढ़ी हुई है। हर दिन के लिए wake/leave/return/sleep समय हैं, और विकल्प के तौर पर leave/return की दूसरी जोड़ी भी जोड़ी जा सकती है। इसके अलावा एक विकल्प है जो दिन के कार्यक्रम को holiday से override कर देता है, जैसे आठवाँ programmable day जिसे आप कभी भी सक्रिय कर सकते हैं
      आप जिस तरह इस्तेमाल करना चाहते हैं, वह भी संभव है। standard program को 15°C पर रखें, और जब ज़रूरत हो तो अपने मनचाहे तापमान वाला holiday चालू कर दें। अगर इसे शाम के किसी ठीक-ठाक समय पर 15°C पर लौटने के लिए सेट कर दें, तो भूल जाने पर भी यह हमेशा चालू नहीं रहेगा
    • साफ़ समाधान यह है कि wake 8:00, leave 8:01, return 8:02, sleep 8:03 कर दें। फिर sleep तापमान को अपनी इच्छित सेटिंग पर रखें, और बाकी को क़रीबी उचित मान पर छोड़ दें, या अगर आपका सिस्टम heating और cooling को अपने-आप switch नहीं करता, तो उन 3 मिनटों के लिए मौसम के हिसाब से “कुछ न करने” वाला मान सेट कर दें। उदाहरण के लिए, गर्मियों में संभव सबसे ऊँचा तापमान, और सर्दियों में संभव सबसे नीचा तापमान
  • Flipper Zero बेहतरीन है, और अगर आप custom firmware इंस्टॉल करें तो hacking और investigation वाला सारा हिस्सा यह संभाल सकता है
    मूल उत्पाद समझ में आने लायक कई सीमाओं वाले firmware के साथ आता है। शायद इसका मकसद कंपनी पर आने वाली आलोचना कम करना है। लेकिन Flipper Unleashed जैसी चीज़ इंस्टॉल करना बहुत आसान है, और फिर वे सीमाएँ हट जाती हैं और बहुत-से अतिरिक्त features मिल जाते हैं
    केवल ऐसा tool रखना जिसे अपराध में इस्तेमाल किया जा सकता है, अपने-आप में अपराध नहीं है। लेकिन आप उससे क्या करते हैं, इस बारे में सावधान रहना चाहिए, और देश के अनुसार सूट पहने लोग आपके दरवाज़े पर दस्तक भी दे सकते हैं
    व्यक्तिगत रूप से, मैं अपने उपकरणों—जैसे electric gate, roller door, roller shutter वगैरह—के “encrypted” 433MHz signals को replay करना चाहता था, लेकिन जब Flipper की region setting Australia पर थी, तब यह disabled था

    • “केवल ऐसा tool रखना जिसे अपराध में इस्तेमाल किया जा सकता है, अपने-आप में अपराध नहीं है” से मैं 1000% सहमत हूँ, लेकिन अतीत में कुछ मामूली परेशानियाँ झेलने के बाद मैं कहूँगा कि इस सोच के साथ सावधानी रखनी चाहिए। आपको हमेशा मानकर चलना चाहिए कि सवाल पूछने वाला अधिकारी अपनी पसंद की कहानी बना सकता है, वह कहानी स्वीकार भी कर ली जाएगी, और आपकी तर्कशृंखला उल्टा आपके खिलाफ इस्तेमाल हो सकती है
      तकनीकी खोजबीन और जिज्ञासा हमेशा प्रोत्साहित की जानी चाहिए, लेकिन Flipper Zero के उदाहरण में भी, jurisdiction चाहे जो हो, कुछ बातों को ध्यान में रखना चाहिए। अगर इस्तेमाल करने का इरादा नहीं है तो उसे साथ लेकर न घूमें। अभ्यास करने से पहले सारे दस्तावेज़ पढ़ें, और नज़र में आए बिना काम करने का अभ्यास करें। outdoor गतिविधियों से सीखा हुआ “कोई निशान न छोड़ो” वाला रवैया अपनाएँ। इस बात का ध्यान रखें कि आपकी मौजूदगी और आपके काम का वातावरण और लक्ष्य पर क्या असर पड़ेगा, और बाहरी देखने वाले उसे कैसे समझेंगे, और शक कम करने के उपाय करें
      ये सिद्धांत disposable smartphones से लेकर Temu के सस्ते RFID card cloners तक बहुत-से उपकरणों पर लागू होते हैं
      खासकर शुरुआती लोग अक्सर उत्साह में सीधे उस चरण पर कूदना चाहते हैं जहाँ वे TV और गेम के hackers जैसे दिखें। वे काल्पनिक पात्र हैं, इसके पीछे वजह है। आपका काम हानिरहित था या नहीं, आखिर में महत्वपूर्ण यह होता है कि सवाल पूछने वाला अधिकारी उसे कैसे देखता है
  • अगर आप decode करना चाहते हैं, तो शायद यह इतना कठिन नहीं होगा। मैंने बहुत पहले यह किया था, और transmitter side भी implement करने की कोशिश की थी, लेकिन घर बदलने के कारण पूरा नहीं कर पाया
    https://blog.habets.se/2017/04/Decoding-FSK.html

  • मैं होता तो radio signal से छेड़छाड़ करने के बजाय thermostat को ही गर्म या ठंडा करने का तरीका अपनाता। उसके ऊपर एक छोटा डिब्बा चढ़ा दें, और किसी छोटे Peltier element जैसी चीज़ से उस डिब्बे के अंदर का तापमान नियंत्रित करें। heating चालू करनी हो तो डिब्बे के अंदर ठंडा करें, और बंद करानी हो तो गर्म करें
    हालाँकि, हो सकता है कि hobby के तौर पर thermal control devices बनाने के कारण मुझे यह तरीका कहीं ज़्यादा आसान लग रहा हो

    • इस तरह का काम करने वाला X-10 device [0] बहुत पहले से मौजूद था। मैंने ऐसे काफ़ी sophisticated setups भी देखे हैं जिन्हें landline phone से नियंत्रित किया जा सकता था
      [0]: https://thex10shop.com/products/x10-powerhouse-th2807-thermo...
  • अगर मूल पोस्ट लिखने वाला यहाँ आए, तो संभव है कि बॉयलर के साथ compatible thermostat लगाकर ही कम पैसे और कम सिरदर्द में काम चल जाता। सिर्फ इस बात से कि उसे किसी random open source project में Honeywell signal मिला और वह काम भी कर गया, यह दिखता है कि बॉयलर बाज़ार काफ़ी हद तक प्रतिस्पर्धा के लिए खुला है
    आगे के apartment customization के लिए शुभकामनाएँ

    • लगता है आप वह हिस्सा चूक गए जिसमें बताया गया था कि apartment किराये का है, इसलिए उसमें कुछ भी बदला नहीं जा सकता
  • शानदार project है
    अगर हीटर अपेक्षाकृत नया natural gas(CH4) heater है, तो उसमें OpenTherm/eBus जैसे protocol के ज़रिये modulating thermostat फीचर होना चाहिए। अगर इसे outdoor temperature sensor वाले thermostat के साथ जोड़ा जाए, तो system efficiency कुछ प्रतिशत बढ़ सकती है, और thermostat व installation cost की भरपाई में मदद मिलती है। आखिरकार इससे ज़्यादा efficient आधुनिक heating system मिलता है
    यही बात heat pump system पर भी लागू होनी चाहिए

    • OpenTherm एक अच्छा विचार है, लेकिन नई installation में भी हमेशा उसके हिसाब से wiring नहीं की जाती। जब मैंने नया smart thermostat लगाया, तो पता चला कि पुरानी installation S Plan के मुताबिक wired थी, और बॉयलर की जगह व valve की जगह के बीच जो थोड़ी-सी cable थी, वह पहले से पूरी इस्तेमाल हो चुकी थी। अगर पहले से तैयारी न हो, तो काम का दायरा बहुत बड़ा हो जाता है
  • मैं एक नए apartment में नहीं, बल्कि घर में शिफ्ट हुआ, और उसे पूरी renovation की ज़रूरत थी। आधुनिक insulation नहीं था, लेकिन मैंने हिसाब लगाया कि फिलहाल insulation में निवेश का ROI सही नहीं बैठता। यह कई मंज़िलों वाला semi-detached house था, इसलिए मैं जितना संभव हो उतना comfortable और economical heating चाहता था
    खासकर bedroom और living room में स्थिर और अलग-अलग नियंत्रित होने वाला तापमान, कुछ कमरों में underfloor heating, कुछ में radiator heating, और कुछ कमरों में कड़ाके की सर्दी में सिर्फ underfloor heating काफ़ी न हो सके इसलिए underfloor heating + radiator का combination चाहता था
    मुझे लगा कि पैसे देकर किसी से control system configure करवा लूँगा। क्या यह आसान काम नहीं होना चाहिए था?
    मैं पूरी तरह ग़लत था। “विशेषज्ञों” द्वारा सुझाए गए configuration को कुछ घंटे समझने के बाद ही मुझे ऐसे edge case मिल गए जहाँ बर्बादी होती या असुविधा पैदा होती। जैसे अनावश्यक और टाली न जा सकने वाली temperature overshoot या undershoot। Honeywell, Tado, Siemens आदि से कई बार बात की, लेकिन सबमें बड़ी खामियाँ थीं
    इसकी वजह से renovation थोड़ी रुक गई, लेकिन piping तैयार थी, और मैं कम से कम यह देखना चाहता था कि piping और pump काम करते हैं या नहीं। इसलिए मैंने pump और valve को Zigbee-controlled smart plug से जोड़कर देखा कि वे ऑन होते हैं या नहीं। यह काम कर गया, और वहीं से विचार आगे बढ़ा
    अब घर भर में 20 डॉलर वाले Zigbee temperature sensor लगे हैं, 30 डॉलर वाले smart plug और relay valve, pump और बॉयलर चलाते हैं, और Home Assistant सब कुछ control करता है। सब कुछ पूरी तरह काम करता है, और मैंने ऐसे फीचर भी बनाए हैं जो off-the-shelf system में संभव नहीं थे। उदाहरण के लिए, जिन कमरों में underfloor heating और radiator दोनों हैं, वहाँ अगर target temperature से फ़र्क ज़्यादा हो तो तेज़ी से गर्म करने के लिए दोनों heating चलती हैं, और target के पास पहुँचने पर radiator बंद हो जाता है ताकि underfloor heating मुख्य भूमिका निभाए। यह ज़्यादा comfortable है और radiator की तुलना में energy efficient भी। radiator वाले कमरे target के ±0.4°C के भीतर रहते हैं, और underfloor heating वाले कमरे ±0.1°C के भीतर

    • automatic और remote-controlled heating system की दुनिया और doorbell की दुनिया, दोनों ही लगभग बहुत बड़े धोखे जैसे लगते हैं। क्योंकि यह बस पहले से ही संदिग्ध क्षेत्रों का अपडेटेड रूप है। जब मैंने Tado device पर बहुत पैसे दिए थे, तो रोना आ गया था; बेवकूफ़ bTicino device भी कई सौ euro का था, जबकि असल में वह सिर्फ sensor, छोटा LCD, और नरक में डिज़ाइन किया गया menu system भर है। IP-based doorbell भी बिल्कुल ऐसे ही हैं। Doorbird असल में एक webcam है जिस पर ठीक-ठाक metal case और खराब software चढ़ा दिया गया है, और उसकी कीमत कई सौ euro है; analog system जो fiber cable इस्तेमाल करते हैं, वे भी लगभग उतनी ही या उससे ज़्यादा कीमत पर बिकते हैं
    • off-the-shelf system सिर्फ efficiency के लिए optimize नहीं किए जाते। उन्हें इस तरह बनाया जाता है कि installer आधे दिन की training लेकर, कुछ multiplication और addition करके, तय equipment constraints के भीतर optimal के कुछ क़रीब स्वीकार्य नतीजा देने वाले parameters सेट कर सके। और अगला व्यक्ति भी उसे समझ सके
      इसलिए वे लगभग हमेशा थोड़ा oversized और inefficient होते हैं, ताकि वे उन चीज़ों को भी संभाल लें जिन्हें simple model नज़रअंदाज़ कर देता है
      सिर्फ heating ही नहीं, engineering का ज़्यादातर हिस्सा ऐसा ही है, और पूरी तरह optimized चीज़ें काफ़ी दुर्लभ हैं
    • मैं दावे से कहूँगा कि insulation ROI का हिसाब ग़लत था। संभव है कि आपने fuel cost या electricity bill का बहुत कम अनुमान लगाया हो
      “पूरा HVAC/heating industry ही बेवकूफ़ है और यह काम ठीक से नहीं कर पाता” ऐसा सोचने के बजाय, यह देखना बेहतर होगा कि कहीं आपकी अपनी assumptions या criteria ही ग़लत तो नहीं
      उदाहरण के लिए, आधुनिक HVAC या heating system में undershoot/overshoot से बर्बादी या असुविधा नहीं होती। 1~2°F का overshoot यह नहीं बताता कि heated space उतनी ही हालत की तुलना में, जहाँ setpoint बिल्कुल सही पकड़ा गया हो, noticeably ज़्यादा heat खो रहा है। आप तुरंत प्रतिक्रिया देने वाला system भी नहीं चाहेंगे। अगर आप parcel लेने के लिए दरवाज़ा खोलें, हस्ताक्षर करें, और फिर बंद करें, तो कमरे की हवा काफ़ी ठंडी हो जाएगी
      तो क्या इस समय heating चालू हो जानी चाहिए?
      आपके घर में शायद हो जाएगी, लेकिन सही जवाब नहीं है। क्योंकि कमरे के तापमान पर मौजूद सारी वस्तुएँ उस हवा को बहुत जल्दी फिर से गर्म कर देंगी। सिर्फ surface area ही हज़ारों square feet से ज़्यादा होगा
    • सामान्य thermostat में temperature hysteresis से बचना मुश्किल है, लेकिन PID controller से इसे कम किया जा सकता है। ज़्यादातर commercial building automation system में PID controller का व्यापक इस्तेमाल होता है
      Honeywell, JCI, Siemens, Trane, Carrier जैसे residential विकल्प शायद universal applicability पर ज़्यादा केंद्रित हैं, जबकि commercial BAS system, भले ही generic sensor और controller इस्तेमाल करें, फिर भी किसी खास building के लिए custom design के क़रीब होते हैं। संदर्भ के लिए, मैंने ऊपर बताए गए इन पाँचों कंपनियों के साथ building automation project किए हैं
    • भविष्य के खरीदार के लिए इसे चलाना एक दुःस्वप्न होगा
      कुछ लोगों की किस्मत इतनी खराब होती है कि वे ऐसा घर खरीद लेते हैं जिसका बॉयलर configuration किसी mechanical engineer ने डिज़ाइन किया होता है, और boiler room में इतने valve और pressure gauge लगे होते हैं जैसे Titanic के इंजन को चलाना हो
      आजकल लगता है कि इस क्षेत्र का नया अपराधी programmer है