Nextbike monitorowany

Rowery miejskie w Poznaniu, mimo swoich niedoskonałości, stały się na tyle popularne, że ich liczba na poszczególnych stacjach czasami spada w okolice zera. Jak tylko dowiedziałem się, że Nextbike udostępnia aktualizowane na żywo informacje dotyczące rowerów na poszczególnych stacjach (duże, naprawdę duże brawa i szacun), wpadłem na pomysł, że fajnie byłoby mieć dostęp do danych przez komórkę (stara Nokia 3110c, Opera mini) w lekkiej i wygodnej formie. Po prostu od razu łatwo sprawdzić, ile jest rowerów na której stacji Nextbike, czy jest sens iść na daną stację, czy lepiej na tramwaj, albo pieszo, bo roweru raczej nie znajdziemy.

Ponieważ oryginalny XML jest dość ciężki (~250 kB, szczegółowe dane o wszystkich krajach, miastach i stacjach), postanowiłem wyciągać z niego tylko najważniejsze dane i tylko dla Poznania, a następnie wrzucać do lekkiego HTML.

Aktualnie powstało coś takiego: dostępność rowerów Nextbike w Poznaniu.

Działa prosto: wget i mały skrypt perlowy z użyciem modułu XML::Simple (przyznaję, przez ułamek sekundy chciałem to opędzić grep + awk), wywołanie z crona co 5 minut (mógłbym częściej, ale póki co nie widzę sensu, szczególnie, że na razie tylko ja korzystam) i wyplucie wyniku do statycznego HTML. Jest data aktualizacji, są kolory. Nie jest piękne, pewnie się nie waliduje, ale jest b. lekkie (całość aktualnie waży ok. 500 bajtów, docelowo – pewnie dodam trochę tekstu – mniej, niż 1kB) i działa. Liczę na komentarze dot. funkcjonalności i wyglądu.

PS. Coś dawno nie wypożyczałem roweru…

UPDATE: Za sprawą Sternika nie zaciągam już 250 kB, tylko od razu dane dla danego miasta – częstotliwość zmieniona co minutę. I nieco inny URL wykorzystuję. I w ogóle polecam wpis Sternika o Nextbike (dead link, wersja live, wersja IVR i za moment być może wersja z Google maps).

18 odpowiedzi na “Nextbike monitorowany”

  1. > Czy jest jakiś tani sposób aby to było dostępne przez sms’a? 🙂

    Zależy. Potrzebne byłyby:

    1. stary telefon/modem komórkowy (na bramki nie ma co liczyć)…
    2. … podpięty do serwera (zatem odpada hosting/vps/dedyk wykupiony gdzieśtam)

    Dla przeciętnego zjadacza chleba to już nie kwalifikuje się jako tani sposób. Przyjmijmy jednak, że uruchamia to nerd mający przypadkiem dostęp do tychże, zatem dalej:

    3. hurtowy pakiet X SMS-ów za Y zł

    Tutaj koszt zależnie do liczby osób korzystających i obciążenia systemu. Zakładając, że będzie on zamknięty dla kilku osób, które nie będą nadmiernie go eksploatować prosząc o SMS-a co 2 minuty, można się pewnie zamknąć w kilku złotych na miesiąc. Jeśli będzie otwarty, w tym na zwyczajnie złośliwych ludzi koszty mogą być duuuuuże.

    Załóżmy, że ostatecznie udało się stwierdzić, że koszt będzie niski. Wystarczy jeszcze tylko napisać system odbierania SMS-ów z prośbą o dane i wysyłania tychże w odpowiedzi (gammu?).

    Kupa roboty, podczas gdy alternatywą jest po prostu otworzenie malutkiej strony w przeglądarce WWW a tę ma chyba każda używana komórka (nie licząc może tych dla seniorów), nie bardzo mi się chce wierzyć, że ktoś korzysta jeszcze z takiej bez choćby GPRS.

    PS Na moim trupie szybciej wczytam stronę wbudowaną pseudoprzeglądarką niż tylko uruchomię Operę Mini. 😉

  2. 1. Istnieją firmy, które umożliwiają odbiór SMSów przychodzących na dany numer przez API. Koszt nie jest drastyczny, ale za darmo to to raczej nie jest.
    2. Niekoniecznie odpada, szczególnie dedyk.
    3. Jeśli ktoś akurat ma telefon w Plusie, to jest, a przynajmniej była możliwość wysyłki maila, który przychodził jako SMS. W takim przypadku wysyłka byłaby darmowa.

    Po stronie zlecającego przysłanie SMSa też jest koszt (on musi wysłać SMS), więc pewnie dałoby się jakiś abonament czy coś. Jakoś nie wierzę w chętnych zapłacić 20-40 gr za pojedyncze sprawdzenie. Jeśli by byli, to zbliżamy się do najtańszych SMS premium (50 groszy + VAT IIRC)…

    Jakby tak dokładnie liczyć koszty, to w obecnym wariancie też trzeba jakiegoś VPS itd. 😉 Ale zobaczę, jakie zainteresowanie – jak małe, to faktycznie przeniosę do domu na „hosting”.

    Roboty faktycznie kupa, a chętnych na SMSy mało, więc – odpowiadając na pytanie Tomka – nie planuję, tym bardziej, że teraz telefon z przeglądarką WWW można kupić za 100 zł (nowy).

    Tak mi jeszcze przychodzi do głowy, jakby ktoś bardzo chciał za darmo, to pewnie można dzwonić (bez odbierania) na jakiś numer podpięty do SIP, zamiast wysyłać SMS. Pomysł zostawiam w rękach rzeźbiarzy – mi starcza WWW, a jeśli nie, to wolałbym doładować konto za 10 zł/rok i wysyłać przy pomocy rozie.blox.pl/strony/smssender.html Czas to pieniądz. 😉

  3. Dzięki za odpowiedzi.

    Co do internetu w komórce to ja np. nie mam i nie zamierza mieć, jest mi zbędny, a tym bardziej mieć smartfona. Zgadza się jest to jakiś koszt, ale SMS’y są bardziej naturalne.

    Generalnie wkurza mnie ten internet w komórce, np. w Poznaniu jak się orientuje jest możliwość kupna biletu przez smartfona jedynie (aplikacja dedykowana) a nie ma rozwiązania również dla starszych telefonów (SMS, są takie konkurencyjne platformy w Polsce w niektórych miastach). Ignorowanie
    SMS’ów które KAŻDA KOMÓRKA ma na rzecz aplikacji smartfonowych uważam za drogę donikąd.

  4. @Tomek Świata nie zmienisz. 160 znaków to tragicznie mało. Jakby dołożyli 2 stacje Nextbike w Poznaniu, to już 2 SMSy by trzeba słać… To była ciekawa technologia (podobnie jak pager) kilkanaście lat temu, kiedy nie było zasobów na normalną transmisję danych w sieciach GSM (OK, normalna to ona nadal nie jest, ale przesłanie paru kB danych nie robi różnicy).

    Naturalność to też rzecz względna – ja na przykład nie uznaję wysyłania SMSów z komórki – tragicznie wolno się pisze. Poza tym, trzeba by czekać na dostarczenie w jedną stronę (zwykle szybko), w drugą stronę (tu już gorzej)… A tak wchodzę na stronę i od razu mam informację. No dobrze, nie od razu, ale widzę dokładnie, kiedy mi się otworzy, a nie wysyłam i czekam. Może dostanę odpowiedź, może nie. Może za 5 sekund, może za parę minut (niestety takie są realia wysyłki masowej). Biorąc pod uwagę, że na starym telefonie z Operą mini wystarcza pakiet 25 MB (5 zł/m-c u mnie) i ma się w razie czego dostęp (OK, niezbyt wygodny) do praktycznie całego Internetu – moim zdaniem warto.

    Źle się orientujesz co do biletu. Jest choćby moBILET. Obsługiwane są telefony z Javą, czyli praktycznie wszystko na rynku od paru lat (właśnie, jaki masz dokładnie telefon?). I działa(ło) to już 5 lat temu rozie.jogger.pl/2008/12/14/mobilet-krotka-recenzja-pierwsze-wrazenie/ i najpierw obsługiwane były właśnie „zwykłe” telefony.

    Na upartego do zakupu biletu w Poznaniu wystarczy i telefon stacjonarny bez SMSów – patrz callpay.pl. 😉

  5. Hmm,

    To muszę sprawdzić ten moBilet, a komórkę to mam jednego ze wcześniejszych Samsungów Solidów (chyba model B2100 jak się nie mylę). Generalnie już z Javą na pokładzie, czyli hmm mógłby działać ten moBilet. Muszę to sprawdzić, dzięki.

  6. Jednak doładowałem CallPay (przed chwilą i załadowało się błyskawicznie :-)) i w sumie to jest lepsze niż SMS. A wracając do NextBike’a to w sumie można by zrobić taki IVR na Asteriksie zamiast SMS’ów :-). Wykorzystując własny hosting i swoje umiejętności jedyny koszt to numer dostępowy (ok. 2zł/mies. we FreeConet’cie). Hmm, Jak byś chciał to rozwijać i dodać taki IVR to chętnie bym się pomógł 🙂

  7. @Tomek: Jak już Sternik pisał – jest i IVR. 😉

    Natomiast w matriksie coś zmieniali – przestałem dostawać normalnego XMLa gdy łączę się z serwera (znajdującego się w Polsce), dostaję stronę (po niemiecku). To samo zresztą pokazuje FB w podglądzie linka. Albo skopane geoIP, albo jakieś zabezpieczenie. Efekt jest taki, że nie bangla. I nie wiem, czy będzie banglało. ;-(

  8. No dobrze, skoro już się chwalimy, to pokażę swoje dla Warszawy, które z nas zacząłem rzeźbić jako pierwszy (buuu! ;( żadnego podziękowania za adres XML-a podrzucony na IRC-u!): dug.net.pl/~azhag/veturilo/

    Ze względu na liczbę stacji w Warszawie (w sumie coś koło 160-170), biorę dane tylko dla kilku szczególnie interesujących mnie stacji pełna lista mocno straciłaby na czytelności i używalności (nie wykluczam jednak uruchomienie takiej wersji w finalnej wersji skryptu). Całość ogarnięta w grepie+sedzie+awku (wiem, wiem, ale nie chce mi się uczyć czegoś specjalnie do obsługi XML-ów), ma pełne kolorowanie liczby rowerów (porównanie), odświeżanie (na razie) co 5 minut.

    Tu uwaga: myślę, że nie ma sensu pobierać XML-a zbyt często, nie wiem czy jest on dany nam tak oficjalnie, czy został wytargany przez partyzantów i jeśli będziemy nadużywać to Nextbike może się wkurzyć. Pobieranie co minutę to jeszcze ujdzie, ale przy każdym wywołaniu strony można przesadzić (zwłaszcza jak strona zyska na popularności). Początkowo jak pobierałem z domeny .de, to po kilku próbach przekierowywało mnie tak jak roziego na główną Nextbike’a (ale również po zmianie IP i UA, więc może chwilowe zawirowanie).

    I jeszcze łyżka dziegciu: wczoraj trochę jeździłem, biorąc lub oddając rower bądź tylko mijając stację i niestety dane nie zawsze są prawidłowe. Nie wiem jeszcze czy powodem jest:

    – duża liczba stacji w Warszawie żeby nie zatykać centralnego serwera dane nie są wysyłane na żywo (co jest możliwe w miastach z mniejszą liczbą stacji), lecz sekwencyjnie (w wybranej minucie tylko wybrane stacje),
    – przejściowe problemy w komunikacji z powodów losowych (nie wiem jak w innych miastach, ale w Warszawie incydentalnie zdarza się, że stacja ma chwilowe problemy z połączeniem) lub ładnego weekendu, gdy ruch jest większy,
    – fakt, że siostry z Archeo^W Nextbike’u mają u siebie niezły burdel ;),
    – lub po prostu XML nie jest aktualizowany tak często, jak nam się początkowo wydawało.

    Niemniej zachęcam do dalszego hakowania (w znaczeniu właściwym, nie popkulturowym) informacji z Nextbike’a IVR jest super! Wychodzi nam fajne uzupełnienie usługi. 🙂

    Jakby ktoś chciał pogrzebać z danymi dla Warszawy, to przypominam, że mamy dwa systemy obsługiwane przez Nextbike: Bemowo Bike (jeśli dobrze pamiętam city=197) i Veturilo (city=210, j.w.). No i trzeba pochwalić realizatorów naszego roweru miejskiego, bo oficjalna interaktywna mapka jest od początku Veturilo: http://www.veturilo.waw.pl/lokalizacje/ 🙂

    Aha, mój skrypt: dug.net.pl/~azhag/veturilo/nextbike2html.sh (drobne poprawki wprowadzane na bieżąco).

  9. PS
    Dziękuję ci, Blox, za wycięcie pauz z komentarza wyżej, dzięki czemu wygląda on jakbym pisał go na większym kacu niż w rzeczywistości.

  10. Tu uwaga: myślę, że nie ma sensu pobierać XML-a zbyt często, nie wiem czy jest on dany nam tak oficjalnie, czy został wytargany przez partyzantów i jeśli będziemy nadużywać to Nextbike może się wkurzyć. Pobieranie co minutę to jeszcze ujdzie, ale przy każdym wywołaniu strony można przesadzić (zwłaszcza jak strona zyska na popularności).

    Zakładam, że jak ma official w nazwie, to można korzystać. 😉 Wydaje mi się, że raz na minutę nie boli, tym bardziej, że to jakieś pojedyncze kB. Przy czym u mnie jest 94 wejścia na stronę wg statystyk bit.ly w tej chwili. Wersja Sternika odpytałaby 94 razy. Moja – dużo więcej. Biorąc pod uwagę ilość potencjalnych zainteresowanych nie bałbym się drastycznego skoku popularności – wersja pytająca co minutę pyta (aż?) 1440 razy na dobę.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *