Толерирането на идиотизъм създава чудовища

Според много хора, аз карам „остро“, „джигитски“, „спортно“ и т.н., а всъщност работата е там, че 1) предпочитам да се възползвам от възможностите на автомобила си без да се опитвам да ги надскоча и 2) имам един основен принцип, който спазвам от сядането на шофьорската седалка до ставането от нея:

Никога не излагай на опасност някой, който не го е направил сам

Или иначе казано, по никакъв повод не трябва да поставяш в опасна ситуация шофьор, който нищо лошо не е направил на теб или на който и да е друг участник в движението. Ако някой е тръгнал на път, спазва (или не) законите и с начина си на каране по никакъв начин не застрашава никой друг – той не трябва да бъде притесняван от чуждата (твоята или моята) идиотия.

Ако, обаче, участник в движението гази хоризонталната маркировка, извършва непредвидими и резки маневри, засича други превозни средства без причина и по какъвто и да е друг начин демонстрира, че се чувства като голЕмото шефче на пътя, то моето ниво на търпимост пада до (под) абсолютната нула. Например днес.

30-годишен мощен японски автомобил (турбинирано Subaru Legacy комби с рег. номер СА 9754 НМ), каращ по път с 4 ленти за движение, изпреварва през насрещното (газейки двойна непрекъсната осева линия) състав от автомобили с чужда регистрация, докато те пък от своя страна съвсем културно изпреварват по-бавни от тях МПС. Надъханият шофьор на подвижната гробница засича брутално първата кола в състава и започва с ръка през прозореца да прави знаци, казващи „отбий да те набия“. След като изчаках колите пред мен да се приберат в дясната лента го настигнах и снимах. Вбесен от това, той се отклони с мен по отбивката към Костинброд и всячески се опитваше да ме изпревари, засече и избута от пътя – за негово съжаление и благодарение на шофьорските ми умения, не му се получи. Отказа се и се върна.

Ето такива чудовища се раждат от масовата толерантност към идиотизма на пътя.

Ама какво като те засича, пусни го да мине!

Основната грешка на огромна част от кротките шофьори в България (колкото и малко от тях да са останали) – че се примиряват, приемат дивотията на пътя като свършен факт и по този начин не само игнорират, ами и подкрепят чудовищата и тяхното отношение към участниците в движението. Именно това, че биват толерирани, ги стимулира да продължават да са чудовища и да застрашават чужди животи.

Аз не съм толераст. Изпитвам силна нетърпимост към такива чудовища и снимката на днешния герой в понеделник ще отиде в КАТ – заедно с моя свидетелски подпис.

И вие не бъдете толерасти! Толерастията е вредна за всички.

За негативизма вкъщи

Тая вечер теглих една солидна лекция на нашите относно негативизма вкъщи – как прецакват с него и мен, и себе си.

Ситуацията е следната – живял съм ~20 години с тях, след което ~5 години сам в чужбина и още около 18 месеца сам на квартира в Студентски град. Обстоятелствата така се стекоха, че пак се озовах „на село“ с нашите и почти всяка вечер обстановката е една и съща – кой с какви идиоти се е разправял на работното място, кой с какви идиоти се е сблъскал на улицата, какви идиоти се мотаят из махалата и какви глупости говорят по радиото… и, естествено – колко гадна ни е държавата.

Да, ама:

  1. Със сигурност освен идиоти, на работното място има и готини хора. Макар и да наричам работното място на майка ми „Северна Корея“ поради ред причини, там работят достатъчно много хора, че да съм сигурен в това че тя не е единственият читав служител там;
  2. На улицата има още повече хора от службата на майка ми и това значително увеличава шансовете за срещи с благи хора и там;
  3. Познавам хората от махалата и да, има пълни нещастници, но има и изключително благи хора, с които ми е кеф да си говоря, пък колкото и „примитивни“ да са те;
  4. Държавата…. ех, тая държава, default gateway-ът на всеки отчаян от живота си българин. Ако не се сети за какво друго е искал да мърмори, всеки може да плюе по държавата и винаги ще звучи правдоподобно. Или не съвсем.

Обясних на родителите ми как ми влияе на мен всичко това. И аз говоря по същите теми с тях – но с малко по-различно отношение. Винаги им се хваля за трудните проблеми, решени на работното място. Или пък със случайната доброта на случайните хора по улиците. Или как един от най-мразените комшии, едър и груб бивш полицай, разхожда малко кученце на каишка, изглеждайки по-скоро като детенце с балон с хелий. И, естествено, редовно споделям с тях историите и постиженията на Божо, на когото определено се старая да подражавам.

Те, от своя страна, са в другата крайност. И това ме уморява, отчайва и съсипва психически. Защото това, което виждаш (или което ти споделят, или още по-зле – натякват), то ти дава идеи и то определя какви цели ще си поставиш. Колективното решаване на сложни проблеми на работното място ме мотивира да задълбочавам знанията си, да уча и да „вдигам левъл“. Клюкарстването и хейтът по адрес на мързеливи, демотивирани колеги, връзкари, мамини синчета и всякакви подобни изчадия, има обратния ефект – кара ме да се скатавам, убива ми желанието за работа и ме кара да мисля дали искам да живея тук, или да се махна нанякъде.

Затова ви моля – не бъдете негативни, или поне не в присъствието на други хора, особено по-млади от вас. Ако искате да споделяте с някого негативните си впечатления от живота и да упражнявате практическия си песимизъм, моля, направете си клуб, събирайте се там и си споделяйте каквото намерите за добре. Пред нас, останалите, бъдете позитивни и градивни и ако вие сте се примирили с недостатъците на житейското си битие, не ни спъвайте в борбата за подобряване на нашето такова.

Благодаря предварително.

Приказка за спасения гущер

Седя си пред къщата на село и си мисля. Колкото по-дълго не съм идвал тук, толкова по-трудно се навивам да дойда. И колкото по-дълго стоя тук, толкова повече се чудя и не разбирам защо това е така.

Чардакът, бидейки една най-обикновена тераса пред трите входа на къщата, не е интересен. Самата къща, обаче, не е за подценяване – малка и скромна, тя стои тук от над 100 години – строена на парче, последната ѝ част е довършена към края на 20-те години на миналия век. Освен стаята на баща ми, но нея не я броя, тъй като тя си е кажи-речи заградена част от чардака.

Та, както споменах преди да се разсея, седя си на тоя чардак и си мисля. Тъкмо сме вечеряли с нашите, с баща ми пием Зайчарско пиво, слушаме щурчетата и се радваме на природата и човешките творения, с които сме я осипали. Стената на къщата откъм двора, например – стена без успоредни ръбове, без прави ъгли, с различен наклон на прозорците, недодялана и всяваща чувство за невинност… тая стена беше стояла тук по-дълго от сумарната възраст на баща ми и майка ми и нищо не е успяло да я събори. Е, крадци бяха замъкнали малката портичка на двора, но ето – днес я сменихме с нова и всичко си е като по старо му. Но цялата тая естествена недодяланост, сама по себе си, по никакъв начин не успява да прекъсне или скъси живота на тукашните човешки творения.

Природата тук е не по-малко впечатляваща. Както навсякъде, и тук тя се опитва да превземе това, което сме ѝ отнели – ей го, старият въжен мост е обрасъл в дървета, крие се като манарче у храсти, а е затворен от едва няколко месеца. Крие се, защото е тих – реката под него колкото и да е урасла, докато има вода, все ще се чува. Чуват се и животинките на двора – безброй душички, всяка вървяща по своя път и гонеща своите задачки. Докато нещо не ги спре – било то друга природна душичка, разположена малко по-нагоре в хранителната верига, или пък някое човешко творение, което природата се опитва да си превземе, но не знае как.

Преди да си приготвим вечерята, всеки сновеше из двора по своите задачки (да не се бъркат със задачките на природните душички) и като по традиция в един момент майка ми се вцепени и с уплашено треперещ глас измърмори:
– Ама тук нещо издава звуци…
– Природа! Нормално е – всяка животинка живее своя живот, търси своята храна и издава своите звуци. Такъв е животът – успокои я баща ми.

И ей го на – седим си сега с него, пием си бирата и аз слушам същите тия звуци – много съм седял тук, а тях като че ли за пръв път ги слушам.

Понеже доста пътувам, карам колело, дори си падам „велохрасталясник“ – практикувам един особено приключенски стил в планинското колоездене, който често води до неочаквано замръкване насред нищото, най-вече насред някакви храсти някъде далеч от вкъщи… та, поради тая причина често си нося раницата на гърба, тъй както всеки охлюв си носи къщичката, и гледам раницата ми винаги да съдържа поне минимално количество важни за оцеляването ми вещи – лаптоп, зарядни за него и телефона, фотоапарат, четка за зъби и челник. И понеже до преди да си отворя бирата тичах из двора (ех, тези задачки), а беше отдавна тъмно, челникът ми вече не беше в раницата, а висеше на врата ми.

Слушам аз странните звуци и нещо ме човърка – не може толкова бързо природата да е измислила някаква нова животинка, която да издава такива звуци. Взех си челника и отидох на разузнаване. Откритието ми, обаче, изглеждаше съмнително – до стената някой е зарязал отрязана отгоре пластмасова бутилка, в която беше паднал безмълвен гущер. Дали за да не му е самотно, дали защото е гладен, голям паяк също се беше наместил вътре. Светках с челника, гледах, побутвах бутилката – само паякът мърдаше, а той едва ли може да издаде звуци като тия, които ми нарушаваха вечерно-природно-бирената идилия.

Върнах си се при Зайчарското пиво и седнах да мисля – дали бутилките не се правят с тесни гърла именно за да не могат невинните гущерчета да попаднат ненадейно в тях и там да намерят края на своя приключенски гущерски живот? Дали изобретателят на кофите и легените не е бил един изключително несъобразителен човек? Дали не трябва да започнем да правим кофите и легените с тесни гърла като на бирените бутилки?

И докато ме мъчат тия тежки житейски въпроси, осъзнах че отново чувам същите странни звуци но тоя път съм убеден, че те идват от опитите на невинния гущер да избяга от създадения от хората капан.

Както и да го погледнем, на мен нищо не ми костваше това да стана, да светна с челника и да изсипя на земята цялото съдържание на отрязаната бутилка. А гущерчето толкова енергично избяга и се скри под каменния зид, като че ли от попадането си в бутилката е стояло вцепенено не толкова от страх, колкото от надеждата, че някой ден ще излезе от там и ще му трябват сили да се прибере под камъка си, да се успокои и да си намери нещо за закуска, вечеря или обяд – все пак знае ли гущерчето кога точно ще бъде освободено?

Върнах се към бирата и пак заслушах природата. Същата природа, с един звук по-малко. И веднага ме загложди друга мисъл – ами ако освобождавайки гущера съм оставил горкия паяк без вечеря и той сега умре от глад? Явно не можем да спасим всички, но можем поне да правим кофите и легените с тесни гърла.

Издаване на трета табела – официална прецедура

След многомесечното ходене по мъките, за да ми бъде издадена първата в България трета регистрационна табела за МПС и само и единствено с цел да мога по законен начин да превозвам велосипеда си с личния си автомобил, процедурата по издаване се оказа не много народоугодна.

За да мога аргументирано и по законен начин да се боря за подобряването на процедурата и улесняването на процеса по издаване на трета табела – както за гражданите, така и за Сектор „Пътна полиция“ към КАТ/МВР, подадох заявление по Закона за достъп до обществената информация.

Резултатът публикувах тук: Вътрешни правила за реда за издаване на трета табела за превозни средства, на които се монтират багажници за превоз на товари (PDF), заедно с решението, с което съответният правилник ми е предоставен.

Официалната процедура

Чл. 6. За издаване на трета регистрационна табела, собственикът на МПС подава писмено заявление до началника на отдел/сектор „Пътна полиция“, където е издадена постоянната регистрация.

Чл. 7. В тридневен срок от регистриране на молбата и положителна санкция от началника на отдел/сектор „Пътна полиция“, за издаване на трета табела с регистрационен номер се изпраща писмена заявка до Главна дирекция „Национална полиция“ (ГДНП).

Чл. 9. В тридневен срок от доставяне на табелата, отдел/сектор „Пътна полиция“ по месторегистрация на МПС уведомява собственика на МПС да представи МПС с монтирания багажник в пункта за регистрация при същия отдел/сектор за извършване на монтажа.

Чл. 10. За извършване на монтаж на трета регистрационна табела на МПС, собственикът следва да предостави (на) отдел/сектор „Пътна полиция“ по месторегистрация на МПС следните документи:

  1. заявление за промяна в регистрацията на МПС.
  2. свидетелство за регистрация на МПС част I и част II.
  3. копие от документа за собственост за багажника.
  4. квитанция за платена такса.

Чл. 11. Преди извършване на монтаж на трета регистрационна табела отдел/сектор „Пътна полиция“ по месторегистрация на МПС извършва идентификация на МПС и преглед на монтирания багажник за товари.

Чл. 13. Монтажът на третата табела с регистрационен номер се извършва в пункта за регистрация при отдел/сектор „Пътна полиция“, върху монтирания багажник за превоз на товари, на определеното от производителя място за това.

Чл. 12. След извършване на монтаж на трета регистрационна табела от отдел/сектор „Пътна полиция“ по месторегистрация на МПС се издава ново СРМПС част I и част II, в което е отразено издаването на новата регистрационна табела.

Официалната процедура, преразказана

  1. Собственикът на МПС подава писмено заявление;
  2. В тридневен срок след получаването на табелата от КАТ го уведомяват;
  3. Собственикът предоставя следните документи:
  • заявление за промяна в регистрацията на МПС;
  • свидетелство за регистрация на МПС – две части (голям и малък талон);
  • копие от документ за собственост на багажника;
  • квитанция за платена такса.
  1. Извършва се преглед на багажника и идентификация на МПС;
  2. Монтира се третата табела и се издава ново СРМПС (талон).

Никъде в процедурата не се изискват допълнителни документи като TUV сертификат (имаше такъв случай, споменат в mtb-bg форума), както и по никакъв начин процедурата не предполага монтирането на третата табела за багажника чрез невъзобновяем нит.

Други интересни подробности са липсата на чл. 8 от обсъжданите вътрешни правила и това, че чл. 12 идва след чл. 13.

Ново вкъщи, може би?

Много хора знаят, че нищо не ме дърпа по-силно от планината. Някои хора знаят, че си мечтаех „някой ден“ да направя нещо като вело-хижа някъде там горе, да посрещам и изпращам колоездачи, да водя с групи такива, да си имам малка велоработилничка и в „свободното“ си време да програмирам. Или пък обратното, както дойде.

За по-малко от десет дни ме стъписаха със страхотно предложение, аз го „сдъвках“ доколкото главата ми позволяваше и се вдигнах на оглед. Мястото се оказа симпатична неголяма сграда, строена в края на соц-а (80-те години на миналия век), която сегашните наематели тотално са зарязали и която почти тъне в разруха поради непукизма им. В името на сградата и нейната съдба, предложеният ми наем е… да речем, смешен – колкото на квартира в Студентски град.

Къде и какво?

Сградата, известна като „ресторант Узана“ и маркирана като „хотел Узана“ в Google Maps, е на южния край на едноименната местност над Габрово:

Сградата има полу-подземен етаж с две големи сервизни помещения и два етажа, ориентирани към поляната. Откъм пътя не изглежда кой знае колко интересна:

 

Вляво има сервизно помещение, както и стаи за персонала. Прозорците на първия етаж са на кухнята (големите) и на тоалетните (малките). След това главния вход и най-вдясно – навес, през който расте дърво :) На втория етаж са прозорците на спалните помещения.

Откъм поляната сградата изглежда доста по-приветлива:

 

Най-вляво прозорците на зала, която в момента се ползва за нещо като импровизиран фитнес, до нея на първия етаж – голямо помещение с две бани и сауна, вдясно с многото прозорци – ресторант с голяма тераса, от която се открива гледка към поляната (няма снимка поради мъгливото време). От втория етаж се виждат терасата на апартамента и над покрива на ресторанта – „тънките“ прозорчета на коридора пред спалните помещения.

Какво има вътре?

Не слизахме в „подземието“, но според собствениците там има две големи помещения с обща площ колкото самата сграда. Там са двата котела на парното.

Ресторантът е доста голям, но нямам негова снимка – снимката е тъмна, но се придобива представа за размерите му. Най-голямата му „екстра“ е голямата камина с водна риза, свързана с парното на сградата.

Зад него са помещенията за персонала и кухнята, разделена на две части – основна и миялна:

Другите две основни помещения на първия етаж – „фитнеса“ и „сауната“ са доста странни и така и не стана ясно с каква идея са направени.

Към втория етаж води екстравагантно стълбище, в което правите ъгли липсват почти напълно:

На спалните помещения основното им предимство е това че всяко от тях си има собствен санитарен възел, а най-интересни след апартамента са двете стаи с високи тавани, в които е направен дървен „втори етаж“ с легла:

Общо състояние на сградата

Няма никакви груби поражения по сградата, освен леко пропадане на едното стълбище на терасата и лека пукнатина в една от стените. Освежаващ ремонт би бил достатъчен за да направи мястото обитаемо, а с леки интервенции по разположението, обзавеждането и оборудването ще стане направо „супер“.

Ако се окаже, че в района има и що-годе читав достъп до Интернет…. :)

 

 

Първата трета регистрационна табела за МПС в България

Ами, успях. Да ми е честита.

Напомням: промените в наредба I-45 на МВР от 2000 г. са обнародвани през юни 2014 г., като промените влизат в сила на 01.06.2015 г. Един месец след влизането в сила (миналото лято) започнах периодично да си пиша с МВР, ГДНП и БИС относно неяснотата и невъзможността за издаване на трета регистрационна табела – каквато вече няколко години използвах, само че издадена в чужбина.

След хилядите разправии – с ГДНП, с БИС, отново с ГДНП и накрая с КАТ, днес станах „горд“ собственик на първата законно издадена трета регистрационна табела за МПС в България.

Процедурата по издаване

Понеже до момента не съм срещал друго описание на процедурата по издаване, ще я опиша тук.

Първо се подава писмено заявление в свободен текст до началника на сектор „Пътна полиция“ в регионалното МВР, в което е регистриран автомобилът, за който ще се издава трета табела. Заявлението трябва да е от името на собственика на автомобила и да съдържа описани данните на собственика, данните на автомобила и данните (марка, модел, евентуално номер) на багажника.

След това се прави визуална проверка от техника на сектор ПП дали багажникът отговаря на техническите изисквания – наличие на място за регистрационна табела, предвидено от производителя, както и собствени светлини. Ако проверката „мине“, се задвижва „задкулисната“ част на процедурата – търкаляне на писма между КАТ, ГДНП и производителя на регистрационни табели, докато „заветната“ такава не стигне в КАТ.

Тогава отново се явявате там, с автомобила и багажника. За да не ви изненадат, както изненадаха мен, носете си двете части на регистрационния талон на автомобила („голям“ и „малък“), полицата за гражданската отговорност и документ за придобиване на багажника – фактура или касова бележка. С тези документи на място се попълва заявление за промяна на регистрацията на МПС, прави се сверка на номера на рамата (неясно защо) и третата табела се монтира на багажника с нит, досущ като тези на задните табели на МПС.

Edit: Забравил съм да отбележа – заплаща се и такса за промяна в регистрацията на автомобила, покриваща преиздаването на двете части на регистрационния талон и регистрационната табела – без комисионите от банката, около 24 лв.

Основни недостатъци

Процедурата е излишно тежка и бавна. В „нормалните“ държави, където подобна практика съществува от години, издаването на третите табели е пренасочено към малки частни производители – на практика в повечето случаи не е важно кой и как е създал табелата, ако тя отговаря на изискванията и се ползва законно. Сиреч, ако е светлоотражаваща и същата като тези на колата – всичко е ОК. Тук процедурата е съизмеримо сложна с тази за регистриране на МПС, ако не и дори по-сложна.

Освен това, някой по горните етажи на структурите на МВР, най-вероятно служител на ГДНП, въобще не се е сетил, че някои хора могат да имат по повече от един багажник и/или повече от един автомобил. Занитването на табелата за багажника прави (теоретично) невъзможно ползването на багажника с друг автомобил, съответно отдаването на такива багажници под наем, както и създава нуждата от закупуване на допълнителен багажник, ако искаме да ползваме такъв с друг автомобил.

Това, което ми е най-трудно да си обясня, е защо държавата се опитва да решава почти несъществуващ проблем – ползването на фалшиви или чужди/неправилни номера за МПС, за законни или не цели, мислейки си че налага достатъчно тежък контрол над издаването им. Ние ли не сме дорасли сами да носим отговорност за идентифицирането на автомобилите си, или държавата не е дорасла да ни даде тази възможност?

Както пееше Гошо Минчев – въпроси напират, не спират, а отговор няма и няма…

Конвертиране на Cisco LWAPP към autonomous

Хайде да драсна и нещо по-техничарско. Имах да конвертирам едно по едно към автономни няколко „lightweight“ AP-та, а понеже процедурата е странно документирана от някакъв индиец, реших со кратце да опиша най-лесния начин да се флашнат. Допуска се, че имате някаква локална мрежа с DHCP и достъп до Интернет, както и сериен кабел, с който да се „закачите“ за AP-то.

Намиране на подходящ IOS image

Първото, което е нужно за флашването на едно AP е правилният firmware. Затова отиваме на cisco.com -> Support & Downloads, откъдето избирайки правилната серия на хардуера достигаме до Download Software страничката за съответния модел – в случая AIR-LAP1141N-E-K9. От тук ни трябват две неща – името на файла и checksum-ата му:

File Name: c1140-k9w7-tar.153-3.JC.tar
...
SHA512 Checksum:
750b607d9ad0613151aaa98ad1c1b620e7a7bc7ae5483e0fbdf1674952c633ef3f4b133c45f6e5ee764a7bfc19afb5180c880130834167f72836e135c75d2451

Следва търсене в Google (или каквато там търсачка ползвате) на файл с точно това име, което сте намерили на сайта на Cisco. Щом си намерите такъв и го изтеглите, задължително смятате checksum-ата и продължавате само ако тя съвпада. Иначе не знаете кой какво е барал в него и дали наистина е това, което ви е нужно.

Добрият стар TFTPD

Следва изтегляне на подходяща за вашата ОС версия на TFTPD, който ви е нужен за „изтеглянето“ на firmware-а на AP-то. Инсталирате, пускате и избирате мрежовия интерфейс, на който DHCP-то е дало адрес. Пускате AP-то и чакате също да си вземе адрес – важното е да са в една мрежа, иначе няма значение какви точно са адресите.

Флашването

Закачате се за конзолата на AP-то, влизате в EXEC mode и пишете:

# debug capwap console cli
# archieve download-sw /force-reload /overwrite tftp://<addr>/<file>

Първата команда е „скрита“ и не подлежи на autocomplete. Както тя сама ще ви предупреди – използва се само при troubleshooting и… когато искате да си флашнете AP-то.

Втората команда е достатъчно self-explanatory – тегли си firmware от посочения TFTP адрес <addr>, търсейки файл с име <file>, като с него overwrite-ва текущия си firmware и след приключване на процеса рестартира устройството (reload). В името на пълнотата, в моя случай адресът изглеждаше така:

tftp://192.168.1.141/c1140-k9w7-tar.153-3.JC.tar

…следва теглене с разархивиране на новия firmware и рестартиране на устройството. По време на процеса ще видите как от време на време AP-то си иска нов адрес от DHCP-то, опитвайки се да си намери контролер – нормално е и не пречи на flash-ването.

За влизане в EXEC mode ще ви трябва default паролата – „Cisco“. От там (или директно от машината с DHCP-то) можете да видите адреса на устройството, а след това с потребител „Cisco“ и парола „Cisco“ можете да се логнете в уеб интерфейса му.

Честито автономно AP и приятно setup-ване :)

Автоматизирано IR управление на климатик Midea

В init Lab от доста време си имаме автоматизирано отключване и отваряне. А след като успешно с Крокодила автоматизирахме и външното осветление на лаба, хвалейки се из комуникационните канали за новата „екстра“, ни озари идея – а защо да не автоматизираме и климатика в лекционната зала, така че да можем да го пускаме дистанционно или с trigger от сървъра на лаба?

След не много умуване стигнахме до извода, че ще е най-лесно да „прочетем“ дистанционното му управление, да сложим един IR предавател на стената срещу него и да му „говорим“ без да му „бъркаме в червата“.

Първа част – reverse engineering на оригиналното дистанционно

Първият опит да прочета дистанционното се провали поради ограничението на библиотеката IRRemote за Arduino – дори след увеличаване на RAWBUF от 101 на 255 (има писано по темата из нета), така и не успях да видя повече от 32 бита, а дистанционното на Midea-та изпраща пакети от по 48 бита, съдържащи цялата конфигурация на климатика. Идеята е да си нагласиш каквито ти трябват настройки, използвайки дистанционното и неговия дисплей и всичко да бъде dump-нато наведнъж към климатика.

За втория път реших да действам с малко по-сериозни средства – закачих IR приемника за логическия анализатор и се почна…

На скрийншота се вижда пускането на климатика на автоматичен режим с целева температура 30 градуса. Изглежда доста straight-forward пускането на същия сигнал обратно от контролер с IR предавател към климатика, но всъщност не е, пък и ми се човъркаше и исках да постигна нещо повече.

За да не се блещя в графиката и да си улесня живота, реших да си напиша декодер за ScanaStudio – софтуера на логическия анализатор, който да чете сигнала от дистанционното и да ми го дава в по-разбираем вид, даже два – в двоичен и шестнайсетичен вид, така че да мога лесно да сравнявам пакети и в последствие да мога лесно да ги генерирам.

Декодерът не ми отне много време, оказа се сравнително простичък (ах, колко е забавно да пишеш декодер за цифров сигнал на JavaScript!) – итерира транзициите (всяко „слизане“ или „качване“ на графиката) и смята времето между тях. В началото на графиката се виждат 4Т надолу и 4Т нагоре – това е началото на пакет, изпратен от дистанционното. След него е самата конфигурация, в която 1Т надолу и 3Т нагоре е 1, а 1Т надолу и 1Т нагоре – 0, където 1Т е от порядъка на 500-600us.

Първите резултати от тестването на декодера не закъсняха:

auto / 17: 
1011 0010 0100 1101 0001 1111 1110 0000 0000 1000 1111 0111
      off: 
1011 0010 0100 1101 0111 1011 1000 0100 1110 0000 0001 1111
auto / 18: 
1011 0010 0100 1101 0001 1111 1110 0000 0001 1000 1110 0111
      off: 
1011 0010 0100 1101 0111 1011 1000 0100 1110 0000 0001 1111
auto / 19: 
1011 0010 0100 1101 0001 1111 1110 0000 0011 1000 1100 0111
auto / 20: 
1011 0010 0100 1101 0001 1111 1110 0000 0010 1000 1101 0111
auto / 21: 
1011 0010 0100 1101 0001 1111 1110 0000 0110 1000 1001 0111
auto / 22: 
1011 0010 0100 1101 0001 1111 1110 0000 0111 1000 1000 0111
...
auto / 30: 
1011 0010 0100 1101 0001 1111 1110 0000 1011 1000 0100 0111

Първият извод е че спирането на климатика не зависи от градусите, като малко по-после ще проверим дали зависи и от настройките на режима и скоростта на вентилатора – най-вероятно не.

Вторият извод е че в битове 33-36 се съдържа целевата температура, а битове 41-45 са тяхно инвертирано копие. Както се вижда, температурите са в т.нар. код на Грей:

0000 - 17°C
0001 - 18°C
0010 - 19°C
0011 - 20°C
...
1011 - 30°C

Следват тестове с промяна на режимите – автоматичен, охлаждане, изсушаване, отопление и обдухване.

auto / 30: 
1011 0010 0100 1101 0001 1111 1110 0000 1011 1000 0100 0111
cool / 30: 
1011 0010 0100 1101 1011 1111 0100 0000 1011 0000 0100 1111
dry  / 30: 
1011 0010 0100 1101 0001 1111 1110 0000 1011 0100 0100 1011
heat / 30: 
1011 0010 0100 1101 1011 1111 0100 0000 1011 1100 0100 0011
fan  / --: 
1011 0010 0100 1101 1011 1111 0100 0000 1110 0100 0001 1011

Първото (незначително) наблюдение е че в режим обдухване (fan) климатикът изпраща за температура 1110, което е еквивалент на 28°C. Второто – че се виждат още две групи инвертирано повторени битове – 17-20 се повтарят в 25-28 и 36-39 се повтарят в 45-48.

Това на практика свежда конфигурацията до тук до 3 групи от по четири бита, повторени по два пъти.

За останалото, тъй като не ми харесват видимите разлики в пакетите, пуснах и следващия тест – смяната на скоростта на вентилатора Първо в режим охлаждане:

auto / 30: 
1011 0010 0100 1101 1011 1111 0100 0000 1011 0000 0100 1111
low  / 30: 
1011 0010 0100 1101 1001 1111 0110 0000 1011 0000 0100 1111
high / 30: 
1011 0010 0100 1101 0011 1111 1100 0000 1011 0000 0100 1111

…и след това в режим отопление:

auto / 30: 
1011 0010 0100 1101 1011 1111 0100 0000 1011 1100 0100 0011
low  / 30: 
1011 0010 0100 1101 1001 1111 0110 0000 1011 1100 0100 0011
high / 30: 
1011 0010 0100 1101 0011 1111 1100 0000 1011 1100 0100 0011

И ето го контролът на скоростта на вентилатора – 1011 за автоматичен режим, 1001 за бавен и 0011 за бърз режим. Естествено, инвертирано дублирани няколко бита по-напред в пакета. Интересно е да се отбележи, че в режими „автоматичен“ и „изсушаване“ на климатика, скоростта на вентилатора е 0001 – стойност, която не може да бъде променена от дистанционното. Заигравайки се с останалите копчета на дистанционното, се „показаха“ още две стойности – 1110 е „sleep“, или режим по-бавен от бавния, а 1111 активира режим „турбо“.

За битове 36-39 остана да „пазят“ начина на работа на климатика – 1000 за автоматичен, 0000 за охлаждане, 1100 за отопление и 0100 за изсушаване или обдухване. Или цялостната структура на пакета изглежда така:

1011 0010 0100 1101 ffff 1111 FFFF 0000 tttt mmmm TTTT MMMM

…където ffff = режим на вентилатора, tttt = целева температура, mmmm = режим на отопление, а главните букви означават инвентирана стойност на малките.

Проверих какво правят и останалите бутони на дистанционното:

air/H: 
1011 0010 0100 1101 0000 1111 1111 0000 1110 0000 0001 1111
air/V: 
1011 0101 0100 1010 1111 0101 0000 1010 1010 1001 0101 0110
time1: 
1011 0010 0100 1101 1011 1111 0100 0000 1011 1111 1000 0001
time2: 
1011 0010 0100 1101 1010 0011 0101 1100 1011 1100 1000 0001

…където air/H и air/V са съответно настройка на хоризонталното и вертикалното обдухване, а time1 и time2 – таймер за пускане и таймер за спиране на климатика. Ако на някой са му интересни – да си ги decode-ва, на мен не ми трябват :) И като за предпоследен тест, отново изключване на климатика – потвърждава се теорията, че изключването е еднакво, независимо от останалите настройки – същото като това от резултатите при тестването на декодера по-горе.

Втора част – създаване на новото „умно“ дистанционно

След няколко полу-успешни опита да „запаля“ климатика с Arduino + IRRemote, попаднах на готово решение, което щеше да ми спести и първата част на мъките, ама… по-добре късно, отколкото никога. Пък и друго си е да знаеш, че си открил топлата вода! И ако не друго, поне се уверих, че нашият климатик ползва същия протокол :)

Та, готовото решение не запали веднага – както си е патил авторът му от тайминг проблеми, така си поизпатих и аз. В крайна сметка успях да подбера работещи константи и резултатът е тук – midea_remote.ino (модифицирана версия на намереното готово решение). Ако някой ще го използва за нещо, предупреждавам – опитът за приемане на команди през серийната конзола така и не „запали“, така че – оправете си го или си намерете друг начин за управление.

Общо взето, най-често климатикът ще се пуска в автоматичен режим с определена целева температура, ползвайки следния метод:

int auto_midea_ac(int temp) {
 byte fan_speed = 0x1;
 byte command = 0x8;
 int t = midea_temperature(temp);
 if (t < 0) {
   Serial.print("Failed to convert temperature");
   Serial.println(temp);
   return(-1);
 }
 command_midea_ac(fan_speed << 4 | 0xF, ((byte) t) << 4 | command);
 return(0);
}

Какво се случва, всъщност – избираме си скорост на вентилатора 0001 (автоматично избрана), режим 1000 (автоматичен – отопление/охлаждане според околната температура), конвертираме температурата от десетично в двуично число от кода на Грей и викаме command_midea_ac() със съответните параметри. Там пък се случва:

void command_midea_ac(byte b1, byte b2) {
 emit_midea_start();
 emit_midea_byte(0xB2);
 emit_midea_byte(b1);
 emit_midea_byte(b2);
 emit_midea_end();
 /* do we need any delay there before reemission ? */
 emit_midea_start();
 emit_midea_byte(0xB2);
 emit_midea_byte(b1);
 emit_midea_byte(b2);
 emit_midea_end();
}

…или изпращаме началния sequence, после константата 0xB2, после двата контролни байта със съответните им инвертирани копия и крайния sequence. Повтаряме изпращането, тъй като така прави и оригиналното дистанционно.

Ключов метод е emit_midea_byte():

void emit_midea_byte(byte b) {
 int i;
 byte cur = b;
 byte mask = 0x80;
 for (i = 0;i < 8;i++) {
   irsend.mark(530);
   if (cur & mask)
     irsend.space(1600);
   else
     irsend.space(540);
   mask >>= 1;
 }
 cur = ~b;
 mask = 0x80;
 for (i = 0;i < 8;i++) {
   irsend.mark(530);
   if (cur & mask)
     irsend.space(1700);
   else
     irsend.space(540);
   mask >>= 1;
 }
}

Именно тук се наложи донатъманяване според претенциите на лабовия климатик, който се опитвам да контролирам. Иначе, ако се чудите какво точно се случва в този метод – първо се хваща подадения байт и се прави една маска 1000 0000, използвана заедно с for-цикъла за обхождане на байта бит по бит. При всяка итерация на цикъла, маската се shift-ва надясно и с логическо умножение се определя правилния sequence, който трябва да бъде изпратен.

Тестовете – успешни! :) Климатикът отговаря на изпратените команди и има написани методи за охлаждане, отопление и автоматичен режим с целеви температури, както и един за спиране на климатика. Остана само да се вземе един Ethernet shield за Arduino-то, да се закачи на стената срещу климатика и да му се пусне жица с PoE.

 

Третата регистрационна табела – мисия възможна!

След един куп разправии, опити за комуникация с МВР, ГДНП и БИС, първа, втора и трета статия по въпроса в тоя блог, с тази (четвъртата такава) се радвам да съобщя, че издаването на трета регистрационна табела за автомобили с багажници с място за такава, предвидено от производителя, вече не е невъзможно.

Или поне така твърди Тодор Гребенаров, зам. директор на ГДНП:

Във връзка с Ваше писмо, изпратено по електронна поща и заведено с вх. № 328600-10544/2015 г. по описа на ГД ”Национална полиция”, Ви уведомяваме следното:

В Наредба І-45/2000 г. на МВР е посочено, че разпоредбата на чл. 10, ал. 9, влиза в сила от 01.06.2015 г.

Със заповед на Директора на Главна Дирекция „Национална полиция” са утвърдени Вътрешни правила за реда за издаване на трета табела за превозни средства.

Трета табела с регистрационен номер, се издава за превозни средства, на които се монтират багажници за превоз на товари, закриваща задната табела с регистрационен номер и имащи място, определено от производителя за монтаж на табела с регистрационен номер. Издаване на трета регистрационна табела на моторни превозни средства се извършва по реда на чл. 2 от Наредба І-45/2000 г. – по постоянен адрес на собственика физическо лице или по адреса на регистрация на – за стопанските субекти.

За издаване на трета регистрационна табела трябва да подадете писмено заявление до началника на отдел/сектор „Пътна полиция”, където е издадена постоянната регистрация.

Нищо не се споменава за неспазените срокове – от тяхна страна и от страна на БИС, но да се радваме, че работата изглежда като да е свършена.

Честито на всички, а аз тия дни ще отскоча до КАТ да пусна молба.

МВР, ГДНП и администратовното обслужване

Голяма сага се оказа опитът да накарам ГДНП, МВР и КАТ да ми издадат трета регистрационна табела за колата ми, така че да мога законно да си ползвам багажника за велосипеди със собствени светлини.

След първия пост по темата, втория такъв и малко ровичкане из още няколко нормативни уредби, ето че дойде време и за трето писане по темата.

Днес изпратих следното запитване, отново до ГДНП с копие до прес-центъра на МВР:

Здравейте,

На 01.07.2015 г. съм изпратил запитване към вашата служба, заведено с вх. № 328600-3051/03.07.2015 г., относно обнародваните на 30.05.2014 г., влизащи в сила на 01.06.2015 г. и засягащи издаването на трета регистрационна табела за монтиране на багажници за превоз на товари и имащи място, определено от производителя за монтаж на регистрационна табела.

На 15.07.2015 г. получих отговор с изх. № 328600-4133/13.07.2015 г., в който като причина да няма определен по чл. 10, ал. 10 от Наредба №I-45 ред за издаване на табелите по чл. 10, ал. 9 от същата наредба е посочена липсата на издадено изменение по БДС 15980, на което третата регистрационна табела трябва да отговаря.

След проведена комуникация с Български институт по стандартизация и направена проверка, на 17.08.2015 г. е бил публикуван БДС 15980:2010/Изменение 2/2015, в който е описана третата регистрационна табела по т. 10, ал. 9 на Наредба №I-45 на МВР от 2000 г.

Тъй като вече са изпълнени всички законови условия това да се случи, бих желал да направя запитване – кога ще бъде регламентиран и къде ще бъде публикуван редът за издаването на табелите по т. 10, ал. 9 от Наредба №I-45 и кога се очаква службите на КАТ да започнат издаването на въпросните табели?

Същото забитване бе отправено към вас на 18.08.2015 г. и отговор до днешна дата (23.12.2015 г.) все още няма, въпреки регламентирания в чл. 20, ал. 1, т. 3 от Наредба за административното обслужване срок от 7-14 дни.

С уважение,
Петър Велков

Да видим, дали в четвъртия пост по темата ще има добри новини, или в него ще бъдат замесени и други нормативни документи и институции…