Я назвав би це “політ фантазій або як зробити з мухи слона”.Обережно, попереду багато незрозумілої термінології! Надихнувшисьпостом від lazareff сам піст, вирішив зробити собі таку ж.Насправді подібні думки мене відвідували і раніше, але тут, думаю, вистачить покладатися на пам'ять, вона мене, звичайно, рідкопідводить, але все-таки трохи розвантажити її не завадить.
Поки я, значить, копіював цю табличку і заповнював даними, мені це, порядком, набридло.Я собі уявив, як я постійно заходитиму вgoogle docs і дивитись чи не настав час наступного ТО, атакож постійно оновлювати поточний пробіг ручками, а для цьогопотрібно його подивитися. Лінь матінка бере гору. Це надто складнодля мене.
Приходить мені геніальна, як мені тоді здавалося, ідея. Є такаштука як telegram. А до нього можна писати будь-яких ботів. А ботивміють надсилати повідомлення. Було б непогано отримуватиповідомлення просто в telegram, коли настав час ТО. Це дужезручно.
Приблизно уявляючи як це працює і маючи певні навички я взявсядумати над функціоналом.
Бот повинен уміти:
1. Створювати/змінювати/видаляти список робіт, які потрібновиконати в авто.
2. Виводити список таких робіт
3. Задавати поточний пробіг
4. Виводити поточний пробіг
5. Сповіщати мене, коли настає час наступної роботи. Тут я вирішивтрохи розширити умови, щоб оповіщення приходило або коли настаєпробіг, або коли настає певна дата. Само собою все цереалізовується не за допомогою telegram/b> . Він тільки надає APIдля розробників, за допомогою якого можна посилати команди боту накшталт “надправ повідомлення в такий то чат” або отримуватиповідомлення з чату (це якщо коротко, насправді все трохискладніше).
Для цього потрібно піднімати свій сервер, писати весь функціоналспілкування з ботом, піднімати базу для зберігання даних тощо.
Робота пішла. Даних була обрана PostgreSQL, а сервер вирішивреалізувати на Golang - багатопоточність і таке інше. Це важливо, якщо ботом користуватиметься багато людей.
Витративши майже цілий робочий день, я написав мінімально робочуверсію (MVP). Підняв усе на локальній машині.
В результаті, виходить, що я можу за допомогою одного telegramпросто створити список робіт, задати свій поточний пробіг іотримувати повідомлення, коли настає наступне ТО, а також дивитисяповний список робіт або видаляти їх.
Звучить непогано, але на практиці виявляється все не так добре.>
Якщо хто не нюхав telegram ботів, опишу приблизно як цевиглядає в моєму випадку.
Бот це просто чат. Ти заходиш у чат і бачиш кнопку “Почати”.Тиснеш на неї і в тебе з'являються кнопочки з якимись діями. Тиснешкнопку “Задати пробіг”. У чаті з'являєтьсяповідомлення: "вкажіть пробіг". Ти пишеш якусь цифру, відправляєш. Тобі приходить: "красава, пробігвстановлений".
Тут все начебто просто.
Але якщо тобі потрібно створити роботу, то це не просто однезначення. Для роботи потрібно задати назву, тип роботи, як частовона виконується, коли востаннє виконувалася і т.Д. А ще, залежновід обраного типу, можуть змінюватися і набір цих полів. Послідовноце вводити ще задоволення…
Також у telegram є ліміт ширини повідомлення привідображенні, з-за якого вивести весь список робіт у читальномувигляді не дуже виходить.
< /p>
Загалом тут я зрозумів, що ніфіга це не зручно. Треба щось із цимробити. Так, саме завдання повідомлення мене в чаті, коли настаєчас ТО це корисно, від цього я не хочу відмовлятися. Інші способиоповіщень мене не дуже влаштовують. А от управління списком робіт івзагалі будь-якими даними, які, можливо, надалі з'являться, потрібно переносити в інше місце. Думаю зроблю простенькийінтерфейс користувача на React пізніше. Насправді, це непріоритетне завдання. Сам я можу безпосередньо в базу писати — такнавіть швидше буде.
А також вся ця канитель не вирішує проблеми з оновленням поточногопробігу. Його так само потрібно ручками оновлювати. І це великапроблема, як я думав, але…
Спілкуючись із друзями на цю тему згадали ми, що якийсь час томуприкупив один із них собі gps трекер . Продавцем він бувпідключений та налаштований. Трекер просто валяється в машині ічерез програму можна дивитися там цікаву інформацію, а саме пробіг.Там є й багато іншої інформації, але мене цікавив саме пробіг.
І спала на думку думаючи, а чи можна якось цей пробіг отриматипрограмним шляхом? Тобто. Якщо в додатку можна побачити пробіг, значить він десь зберігається, значить теоретично його можнаотримати.
Почав дізнаватися, чи надає компанія-продавець, яка реєструвала іналаштовувала трекер якийсь API, за яким можна отримувати дані, передані трекером. З'ясувалося, що таких компаній, в принципі, багато і більшість з них мають такі API. А також все це коштуєякихось грошей. Я почав розбиратися, як у принципі працюють gpsтрекери і ці моніторингові компанії. Алгоритм приблизнонаступний:
Купується трекер, який підтримує GPS, GPS, GSM і GPRS протоколи. Донього будь-яка сім-карта будь-якого оператора. Далі шляхом нехитрихоперацій цей трекер налаштовується таким чином, щоб він сам черезGPRS мережу через певний проміжок часу відправляв дані на сервер, який ти вкажеш в налаштуваннях. Ці дані можна отримати і що-небудьз ними зробити.
Нічого надприродного, як виявилося. Який може приймати дані відgps трекера, подумав я. Це вирішить проблему ручногооновлення поточного пробігу. Поєднати це все з telegramботом, і зручним інтерфейсом для управління даними і вийде цілкомсобі автоматизована система моніторингу та оповіщень. Де мибурхливо обговорювали перспективи всієї цієї витівки, меніповідомили, що я звільнений... І разом зі мною весь відділ. Нетому, що я цілий день робив бота, просто вони не можуть уже довгийчас знайти проекти, тож найкраще рішення — звільнити людей, тоді йпроекти шукати не треба буде.
> Поки я шукаю нову роботу, а діти голодними очима дивляться намене - вже прийшов до мене мій gps трекер і я вже займаюсяним у міру можливостей. І вже навіть є деякі обнадійливірезультати, про що я напишу трохи згодом. Далі шляхом нехитрихоперацій цей трекер налаштовується таким чином, щоб він сам черезGPRS мережу через певний проміжок часу відправляв дані на сервер, який ти вкажеш в налаштуваннях. Ці дані можна отримати і що-небудьз ними зробити.
Нічого надприродного, як виявилося. Який може приймати дані відgps трекера, подумав я. Це вирішить проблему ручногооновлення поточного пробігу. Поєднати це все з telegramботом, і зручним інтерфейсом для управління даними і вийде цілкомсобі автоматизована система моніторингу та оповіщень. Де мибурхливо обговорювали перспективи всієї цієї витівки, меніповідомили, що я звільнений... І разом зі мною весь відділ. Нетому, що я цілий день робив бота, просто вони не можуть уже довгийчас знайти проекти, тож найкраще рішення — звільнити людей, тоді йпроекти шукати не треба буде.
> Поки я шукаю нову роботу, а діти голодними очима дивляться намене - вже прийшов до мене мій gps трекер і я вже займаюсяним у міру можливостей. І вже навіть є деякі обнадійливірезультати, про що я напишу трохи згодом. Далі шляхом нехитрихоперацій цей трекер налаштовується таким чином, щоб він сам черезмережу GPRS через певний проміжок часу відправляв дані насервер, який ти вкажеш в налаштуваннях. Ці дані можна отримати і щонебудь з ними зробити. Нічого надприродного, як виявилося. А чому бмені самому не написати такий сервер, який може приймати дані відgps трекера, подумав я. Це вирішить проблему ручногооновлення поточного пробігу. Поєднати це все з telegramботом, і зручним інтерфейсом для управління даними і вийде цілкомсобі автоматизована система моніторингу та оповіщень. Повернувшисьз перекуру, де ми бурхливо обговорювали перспективи всієї цієївитівки, мені повідомили, що я звільнений... І разом зі мною весьвідділ. Не тому, що я цілий день робив бота, просто вони не можутьуже довгий час знайти проекти, тож найкраще рішення — звільнитилюдей, тоді й проекти шукати не треба буде.
> Поки я шукаю нову роботу, а діти голодними очима дивляться намене - вже прийшов до мене мій gps трекер і я вже займаюсяним у міру можливостей. І вже навіть є деякі обнадійливірезультати, про що я напишу трохи згодом.






Коментарі3
Маньяк )
Ти забув сказати, що саму ідею з ботом тобі теж друг запропонував))) чекаю на першу робочу версію)
Вилетіло з голови)