Blog (30)
Komentarze (1.1k)
Recenzje (0)

Hack na mądrym UPSie

@KaworuHack na mądrym UPSie30.06.2016 15:35

Tak, znów moja mania statystyczno-informacyjna daje o sobie znać. Udało mi się upolować dwa zasilacze awaryjne firmy APC, a że mają wbudowany port szeregowy... To dlaczego by ich nie podłączyć do Ethernetu? Mamy w końcu stację meteo. W efekcie możemy sterować zdalnie zasilaczem, a przez co zasilaniem serwera. Mamy wgląd w pobór prądu podłączonych urządzeń i co najważniejsze – w razie zaniku zasilania, NASowi nie padnie uptime (ani żaden system plików, bo mam na nim cztery maszyny wirtualne).

Tanie Państwo

Skąd wziąć UPS? Najwyraźniej kopnąć się do jakiegoś urzędu i sprawdzić czy przypadkiem jakichś martwych nie wyrzucają i nie chcą ich zutylizować. Projektanci zasilaczy APC wpadli na genialny pomysł, że jeśli akumulator jest odłączony, lub całkowicie martwy, to urządzenie po prostu się nie włącza, nawet na zasilaniu sieciowym. I nie żeby sygnalizowało martwy akumulator w jakiś sposób i odmawiało startu, ot po prostu się nie włącza, udaje martwe, nie reaguje na nic. A co robi przeciętny informatyk w urzędzie, gdy ma do czynienia z martwym urządzeniem? "Wyrzucim, kupim nowe". Nowy zasilacz awaryjny tego typu (APC Smart-UPS SC620I) to koszt prawie tysiąca złotych, koszt przywrócenia do życia tych "zepsutych" to całe 70-140zł, w zależności od tego gdzie chcemy kupić akumulator. Choć z wymianą może być problem. Okazuje się bowiem, że nikt nigdy akumulatorów w nich nie wymieniał, jak je kupili, tak pracowały. Nikt nawet nie zwrócił uwagi, że kontrolka sygnalizująca potrzebę wymiany aku się zaświeciła, a jak już się zaświeciła, to się świeciła i świeciła, aż akumulatory napęczniały tak, że nie można ich było wyjąć bez rozkręcenia całego zasilacza na, dosłownie, części pierwsze. Plus dla APC za to, że wszystko rozkręca się bardzo prosto, po zdjęciu obudowy trzeba tylko odkręcić płytę główną i transformator, po czym demontaż osłony akumulatora jest już banalny (w sumie 16 śrubek).

Dla pewności wypada sprawdzić jeszcze czy zasilacz startuje, tylko jak? Zapasowego akumulatora brak, nowego nie opłaca się kupować, póki nie zweryfikujemy stanu urządzeń, a gdy podłączę zasilacz zamiast aku, to UPS będzie chciał go ładować i z pewnością coś spali. Ale od czego są przebłyski geniuszu – przecież jeśli podłączę zasilacz zamiast akumulatora i tylko tyle, to UPS, nawet gdyby chciał, to nie będzie miał go z czego ładować. A że nie musi też nic zasilać, wystarczy < 1 A aby elektronika tegoż wystartowała. Jak się pomyślało, tak się zrobiło, oba dają oznaki życia, interes życia. :D

Ale po co stacja meteo?

W sumie po nic. Znaczy sama stacja, bo ta sama elektronika, która jest tam używana, może być podłączona do czegokolwiek i zbierać bardzo różne dane. Ostatnia jej inkarnacja, specjalnie do pomiarów stężenia pyłu zawieszonego ma wyprowadzony port szeregowy. Zatem można by go wykorzystać. Jest tylko jeden mały problem, port szeregowy elektroniki stacji poziomy napięć ma 3v3, port UPSa to RS232. A o ile format danych jest identyczny, tak poziomy napięć, RS232 to +- 12 V, instant burn dla STM32. Nic to dla nas jednak! Choć tym razem nie będzie własnoręcznie robionych płytek*, nie opłaca się tez modyfikować projektu używanego w stacji, to z pomocą przychodzą małe moduły z MAX3232 dostępne na allegro za 4,50, które wykują konwersję napięć 3v3 <-> 12 V (no właściwie to +-6 V). Podłączy się kabelkami, obciągnie koszulką termokurczliwą i też będzie. A jak mi się kiedyś zachce, to te UPSy wyposażone są w port ochronny z transilami dla sieci Ethernet, te płytkę można wymontować i zastąpić własnym modułem, wewnętrznie podłączonym do portu szeregowego zasilacza, przez co cały układ wciśnie się w obudowę zasilacza. Poza tym usunie się wtedy port szeregowy z płyty głównej i zastąpi wyprowadzeniem na drugi, zewnętrzny akumulator.

Będzie schludniej, ładniej, i bardziej cacy. Ale na razie wystarczy jak jest.

Hackingo

Co mi przypomina... zasilanie. Mój układ wymaga zewnętrznego zasilania, najlepiej przez kabelek Eth, ale szczęśliwie ma też dwie goldpinowe złączki za prostownikiem – IN/OUT, tylko dalej pozostaje problem – skąd wziąć prąd. Można oczywiście skorzystać z zewnętrznego zasilacza, ale to takie trochę nie bardzo. Marnowanie miejsca w listwie zasilającej oraz mało eleganckie. Ale, ale, nietypowość złącza portu szeregowego w zasilaczu może być pomocna.

Tenże mówi, że na ósmym pinie powinno być dostępne zasilanie. Sprawdzamy multimetrem czy ten pin jest do czegokolwiek podłączony, cockblock, nie jest.

Za to reszta pinów do czegoś jest podłączona. Hmm, jeden wolny pin, wolny pin... zrobimy sprzętowego hacka. W efekcie czego na pinie numer osiem mamy teraz udostępnione zasilanie bezpośrednio z akumulatora. Idealne 10-14V. Elektronika pobiera (bez czujników) około 70 mA. Przy pełnym 12 Ah akumulatorze to wystarczałoby na ponad tydzień pracy, ale akumulator ma inne zadanie. Tak czy inaczej, przy typowych okresach zaniku zasilania na tym osiedlu, parę godzin pracy tej elektroniki na samym aku mu nie zaszkodzi, tym bardziej, że w momencie, gdy UPS odetnie zasilanie, to wyłączy się także switch. A gdy switch się wyłączy, to pobór prądu przez naszą elektronikę spadnie praktycznie do zera. Ile może pobierać STM32.

Pozostaje już tylko wszytko polutować, poskładać i rozszerzyć możliwości softu o monitorowanie stanu pracy zasilacza awaryjnego. Protokół Smart-UPS nie jest oficjalnie dostępny, ale jest tak prosty, że najwyraźniej został lata temu nieoficjalnie opisany. Jeśli się uprzeć, można użyć po prostu terminala ustawionego na oszałamiającą prędkość 2400bps 8bit danych 1bit stopu, bez kontroli parzystości i przepływu. Teraz serwer (który sam nie ma portu szeregowego (tak, wiem, USB, nie)), a właściwie dwie maszyny wirtualne na nim odpalone mogą się komunikować z UPSem i w razie czego same się unieszkodliwić przed przybyciem całkowitego zaniku zasilania. Do kompletu brakuje tylko implementacji SNMP, ale nie jest to problem nie do pokonania, dajcie mi tydzień. :D

PS Czy wiesz, że (ja nie wiedziałem), zużyte akumulatory można oddać do skupu i nawet za to zapłacą 2,20 zł/kg? Cale 17 zł za dwa akumulatory, fortuna to nie jest, ale nie dość, że sprawne UPSy za darmo to jeszcze za złom akumulatorowy płacą.

* - miało nie być, zakupiony moduł miał jakąś dziwną wadę na jednej parze konwerterów, które powodowały loopback w kierunku UPSa. Druga para była sprawna, ale nie wyprowadzona, to tez trzeba było się do pinów przylutować "na pająka", iiii po drodze spaliłem to cudo. Zrobiłem własną na żelazku, działa.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.