SNR93

На Пикабу
Дата рождения: 28 мая
6198 рейтинг 3 подписчика 5 подписок 10 постов 1 в горячем
Награды:
5 лет на Пикабу
1

Как я решил помочь автомобилистам и... уже 3 месяц пишу то, на что думал потратить пару недель

Привет всем. Статья больше ради статьи, чтобы для себя же структурировать что я хотел и что получил)
В начале осени, когда пришла первая непогода увидел я на Пикабу и не только волну постов про то, что ребята делают новые региональные каналы в ТГ \ ВК и других платформах для помощи друг другу на дороге. Круто, думаю. Красавчики. А потом, пока обедал на работе, залип в комменты этих постов и понял одно. Народ доволен, но отчасти, т.к. есть много НО:
1) Если ты едешь из одного города в другой, то тебе это уже не поможет т.к. ты не знаешь местные паблики
2) В пабликах люди не сидят постоянно, и крик о помощи могут увидеть через большое количество времени
3) Если это телеграм каналы или похожие места, людей задалбывает постоянное пиликанье и они вырубают звук, и именно в этот момент данный паблик для него превращается в картошку
Я задумался, должны же быть приложения на телефоны, или сайты где это реализовано. И я пошел в интернет... И сильно удивился т.к. таких проектов можно пересчитать по пальцам 1 руки. И то много будет... Яндекс, с конскими ценами и ДжипАлерт. Есть еще несколько, но пациент больше мертв, чем жив, хотя про ДжипАлерт я бы сказал тоже самое.

Мое мнение про ДжипАлерт под спойлером. Но это только мое мнение. К чтению еще более необязательно, чем эта статья.

Скачал я ДжипАлерт, посмотреть на это детище. Узнал что ему 100 лет в обед, думал классный продукт... А нет. Когда я зашел в него, я удивился крайне не удобному интерфейсу, но это вкусовщина. Ок. Но даже сам функционал крайне спорный.
1) Оно хочет постоянно в фоне иметь доступ к геолокации. Даже когда приложением не пользуемся. Но при этом реально 24\7 использует гео! Аккумулятор тает на глазах. Очень "интересное" решение
2) В ленте заявок нет рядом со мной. Но, если открыть карты, то заявок на карте просто тонна. Даже возле меня. Но! я нашел даже висящие заявки от 2022 года... Очень актуально.
3) Несмотря на то, что я авторизовался в приложении, для создания завки нужно еще раз авторизоваться т.к. приложение по большей части браузер, в котором отображается вебморда... Очень удобно когда у тебя проблемы
Короче за возможность и реализацию им определенно респект, тут без вопросов, но реализация очень хромает...

И решил я запилить сам приложение т.к. и полезное дело, да и практика в программировании (да да, я тот самый мамкин программист самоучка). Ну и сел я за ТЗ. Накидал что я хочу для начала. И начал писать... Посмотрел, думал недели за 2-3 реализую. Но...Что-то пошло не так =)

Итак, я посмотрел все предложения на рынке, нашел в них плюсы и минусы и решил сделать продукт с учетом этого. Быструю систему регистрации, но с верификацией.
Сделал ее через телеграм т.к. есть 4 причины:
1) Он есть у почти всех
2) Это бесплатно, т.к. я все это делаю на бесплатной основе и доступно это будет так же полностью бесплатно
3) Недобросовестных пользователей так будет куда проще банить т.к. при верификации телеграм передает номер телефона пользователя
4) Это очень быстро

Далее при входе будет запрос никнейма и имени пользователя, а так же информации о машине (госномер, марка, модель, цвет). И это будет сохранено в профиле у пользователя. Можно добавлять и несколько машин. Зачем это нужно сразу, если пользователь зашел просто посмотреть? Потому что когда нужна будет помощь, то в анкету автоматически подставятся данные об этом, что сэкономит время заполнения.

Далее я решил реализовать 2 варианта отображения заявок, в виде ленты и карты. И тут у меня была первая проблема, я хотел чтобы вся информация обновлялась в реальном времени, но знаний у меня было не много в этом направлении и я пошел к ИИ и в интернет. И научился работать с сокетами. Да, тут будет немного терминологии, чтобы гикам тоже было интересно) И реализовал это, теперь во время создания заявки на 1 аккаунте, на 2 в эту же секунду появляется заявка. Трафика сокеты почти не жрут, но работают молниеносно! Потом я принялся за создание заявок. Я очень долго перебирал варианты меню, привлекал к обдумыванию сестру и друзей и пришел к тому, что нужно сделать компактное меню, но в то же время функциональное, чтобы все было на 1 экране и можно было вообще ничего не писать!

вот скрин, чтобы было нагляднее. Мы выбираем сразу плитки, что нам нужно т.к. не всегда бывает нужна помощь только в чем-то одном. А ниже сразу показываются строки, связанные этой темой, чтобы так-же быстро можно было нажать на то, что у пользователя есть, а чего нет. Чтобы человек, который хочет помочь сразу видел всю важную информацию. Как по мне это оказался самый рабочий, быстрый и удобный вариант т.к. я все же придерживаюсь того, что в момент помощи заявка должна создаваться максимально быстро и просто. Далее указывается вес авто, вес подтягивается сразу из "гаража" в профиле пользователя, где мы создавали авто. Кстати, если авто несколько, в самом верху можно быстро нажать на нужное авто и данные поменяются сами. Так-же можно добавить фото, иногда это проще и нагляднее, чем описать нештатную ситуацию. Потом идет строка с местом, где пользователь. При нажатии на синюю кнопку открывается карта, определяется местоположение и показывается адрес. Но т.к. у нас часто глушилки нас телепортируют, флажком можно поправить местоположение. И тут я столкнулся с другой проблемой. Нужно как-то адекватно работать с адресами, что из коробки БД PosgreSQL делала так себе... И я снова пошел к ИИ и интернету, и узнал, что есть такая вещь, как postgis, которая как раз заточена под то, чтобы эта БД умела удобно работать с адресами! Но, на поиски, а главное на изучение как с этим работать еще ушло какое-то время, но у меня получилось и я внедрил это в проект! А так-же я добавил сторонний сервис, если вдруг PostGIS не смог определить адрес адекватно. Но я столкнулся с тем, что в живых тестах уже при 10 пользователях, которые одновременно хотят узнать свое местоположение в полях я получал от сервиса ошибку, слишком много запросов и все это переставало работать... И я пошел гуглить дальше. И наткнулся на такую вещь, как Nominatim. Это сервис, который можно развернуть локально, например в докере и он содержит все нужное, чтобы определять адреса в любом месте. Локально, без зависимости от внешних ресурсов! Очень крутая штука, которая на моем компе развертывалась.... почти 6 часов =) Но с помощью 17 бубнов и литра пива я смог поднять это детище! Теперь адреса определяются моментально, даже если постгис их не знает!
Ну так, вот, определили мы адрес, дальше, при желании, можно что-то еще дописать как комментарий, а ниже, не попавшее на экран, там есть поле ввода вознаграждения. Но это на усмотрение. Можно оставить по умолчанию 0, а можно и указать что вы готовы заплатить пару деревянных) Единственное, расчет на "честном слове". То есть человек приехал, помог, ему заплатили. Через приложение это все проводиться не будет.

Далее нажимаем создать и все, заявка готова и отображается у всех!

Дальше я понял, что в ленте заявок нужно сделать фильтры. И я решил сделать такие фильтры

Чтобы можно было настроить максимально все. Если выбрать "не помогаю", то в ленте сверху будет об этом уведомление, что заявки не отображаются т.к. выбран именно этот фильтр.
Так-же решил отдельно реализовать фильтр "Только с наградой" т.к. для некоторых пользователей это источник заработка и беспокоить пользователя заявками, которые для него не актуальны, как по мне, дело не благородное.
Так-же все заявки в ленте показываются по удалению. Сверху самые ближние, ниже по удалению. А если пользователь сделал заявку, то она будет в самом верху всегда.
Так-же я сделал возможность связаться в чатах. Иногда это может быть полезно, чтобы что-то спросить или уточнить т.к. мобильные номера и другие контакты я не стал выводить в активные заявки т.к. это все же личные данные и их можно передать в чате, если нужно. И вот тут я снова споткнулся т.к. я никогда не писал чаты и очень поверхностно знаком с тем, как оно реализуется... Как вы поняли, на это ушло еще какое-то время, чтобы почитать, разобраться и реализовать. И это работает! И да, все еще сокеты выручили!)

Далее я решил в чаты вывести системный чат, который будет всегда сверху. Туда будет поступать информация об обновлениях и других важных вещах. Потом подумал, что может быть еще полезное, и решил реализовать такую вещь, как "Справка", куда добавил важную информацию, которая может понадобиться при нештатной поломке

В итоге проект уже на финишной прямой, пока в виде сайта, но потом будет еще приложение на телефон, но учту нюансы, чтобы приложение не жрало аккумулятор, как некоторые.

За этот проект я прокачал сильно навыки работы с PostgreSQL, FastAPI, углубился в сторону хакинга даже немного, чтобы защитить проект от XSS, SQL inj и других видов атак, изучил Docker, повторил HTML, развил еще больше навыки в Python, Node.js, React. Так же научился работать с Socket.io =) Короче, мне пошло на пользу)

Прошу тех, кто осилил эту простыню букв дать обратную связь, стали бы пользоваться таким проектом, что бы добавили \ изменили \ удалили, как вам вообще задумка и т.п.)

Всем хорошего времени суток!) Если че, панамка готова)

Показать полностью 3
5

ZigBee датчики присутствия

Всем привет. Посоветуйте датчики присутствия(не движения), которые можно адекватно настраивать по зонам в HA.
Комнаты в среднем 12-16м²
И есть ли с подключением 220в? А то батарейки, я думаю, там будут улетать только успевай менять. Ну или можно и 5v, в целом могу придумать куда спрятать, но желательно 220 чтобы можно было спрятать в плафон светодиодных ламп на потолке. Потолок не натяжной, к нему красиво не получится прикрутить

9

N8N - автоматизации для дома и работы

Хотел найти на пикабу статьи по N8N, но поиск выдал... ничего. Неожиданно, т.к. тема набирает обороты, но раз ничего, то я буду первым.

Что-ж это за зверь такой, N8N?
По факту, это модульный конструктор автоматизаций без кода(ну почти =) ). Вся логика выстраивается как конструктор из кубиков. По очереди. Множество проектов можно собрать вообще не написав ни одной строки кода, а если вдруг оно нужно будет, тут за вас это за секунду сделает любая нейросеть, хоть ChatGPT, хоть Gemini, хоть... Deepseek... Если как обычно не уснет во время ответа))
Давайте сразу пример, чтобы было интереснее. У меня есть основная электронная почта, которой уже куча лет. И там творится полный... Хаос. Назовем это так) Там и спам, и реклама, и че только нет. И разгребать ручками мне это надоело, да и куча уведомлений на телефон отвлекают. Я сделал автоматизацию, это ИИ сам разбирает мою почту, решает что важно, а что нет, и сообщает мне только о важном. И теперь у меня почта разбирается сама, реклама\спам удаляются сразу, а я получаю только важные уведомления, которых не так-то и много... Кстати... Я тут говорил давайте сразу пример, а в итоге налил 3 ведра воды. Эт норма, привыкайте, если еще читаете =)
Вот, теперь точно сразу пример. Вот так выглядит вся автоматизация. Весьма короткая. Для тех, кто вообще не в теме, сейчас все расскажу)

Итак, давайте по очереди. Видите ноду Schedule Trigger?.. Ах да. Нода, это... тот самый кубик, о котором я говорил выше. И из этих кубиков строим башню. Каждая нода отвечает за свой функционал. Она может что-то делать сама, а может слушать, что ей сказали другие ноды, которые уже выполнили свою часть работы. надеюсь понятно объяснил.
Итак. Schedule Trigger. По факту, это нода расписания, когда она будет будить следующую ноду, чтобы наша автоматизация начала работать. У меня стоит 20 секунд в настройках. Можно указывать интервал в секундах, минутах, часах, днях, неделях, месяцах и в CRON(линуксойды оценят).

Да. Все на английском, и русского нет. Но он и не особо нужен т.к. сейчас любой браузер умеет переводить на русский без проблем, так что не проблема.
Дальше мы видим ноду "Получаем 1 письмо". Она просто обращается к моему почтовому ящику по IMAP и забирает оттуда все непрочитанные письма из папки "Входящие". А почему в названии указано получаем 1 письмо, а по факту получаем все? А вот, потому что нэйминг это важно, но я иногда этим пренебрегаю в своих проектах т.к. понимаю че происходит. Но так делать не хорошо!
Вот нам нода отдала все непрочитанные сообщения. Дальше мы запускаем цикл... Ах да, цикл.. Цикл, это такое действие... Как бы объяснить... Вот у тебя есть пакет с продуктами. И тебе нужно из него все выложить. Вот твое действие выкладывания продуктов это цикл. Ты засунул руку в пакет, взял продукт, положил на стол, засунул руку в пакет... Вот это и есть цикл. Повторяющееся действие раз за разом, пока ты не придешь к цели. Твоя цель - выложить все продукты. Надеюсь теперь тебе стало понятнее)
Вот мы запускаем цикл, наша задача в нем брать по 1 непрочитанному сообщению до момента, пока этих самых непрочитанных сообщений не останется.
Мы берем первое сообщение, а дальше отдаем его ноде "Разбираем письмо". Это AI Agent. Ага, роботы на службе кожаных, хорошо, что пока так, а не наоборот) Вот эта нода, это логика какого-либо ИИ действия. Она может обрабатывать информацию, сохранять в память, читать из памяти, изменять информацию, придумывать и еще 100500 опций. Умная она короче. Но ей нужны мозги. Видишь снизу от нее "Google Gemini Chat Model"? Вот это как раз мозги. Для того, чтобы сортировать письма по полезности, мы будем скармливать письмо ИИ, и оно будет решать насколько это важно. А как оно будет решать? В AI Agent ноде мы пишем промт. Ага... Промт... Промт, это условие. Например ты говоришь: Вася, вот дрова лежат, их нужно порубить топором, на пне, и отнести в дровяную. И Вася понимает, что ему нужно сделать и как. Что пень выкидывать не нужно, да и топор на кашу пускать тоже. Промт пишется на русском. Просто как бы ты это объяснил человеку, так и объясняй ИИ. Для старта этого будет достаточно.
Вот что я написал у себя:

Классифицируй письмо: важное | полезное | спам.
Классифицируй строго на русском языке и маленькими буквами! Строго как я написал!
Верни строго JSON {"class":"...","reason":"..."} без текста вокруг.

ПРАВИЛА КЛАССИФИКАЦИИ:
1️⃣ ВАЖНОЕ — письма, связанные с:
- Steam (любые уведомления, подтверждения, коды, безопасность)
- Госуслуги (всё: заявления, ответы, уведомления, задолженности, налоги, коды подтверждения, ссылки для подтверждения входа/регистрации)
- Любые письма с кодами подтверждения, подтверждением почты, регистрации, восстановления пароля
- Ответы от госорганов и официальных сервисов
- письма от no-reply@oplata.info

2️⃣ ПОЛЕЗНОЕ — письма, содержащие:
- Кассовый чек
- Акт оказанных услуг
- Документы, счета, квитанции, отчёты, билеты, брони, гарантийные талоны

3️⃣ СПАМ — всё остальное, включая:
- Напоминания о входе на сайт, о доставке, о действиях ребёнка
- Уведомления о входе в аккаунт (без кода подтверждения)
- Новости, рассылки, акции, маркетплейсы, голосования, реклама, обновления условий

Как видишь все просто) Обычный спам он и так поймет и удалит, но я под себя еще фильтры сделал. И вот он определил тип важности сообщения, дальше мы видим ноду "Code in JavaScript". Внутри код, который разбирает ответ от ИИ и делает из него только 1 строку. важное \ полезное \ спам. Это не обязательно, как я уже сейчас знаю, но это был мой самый первый проект, так что там есть косячки) Где я взял скрипт для ноды? Просто отдал Gemini то, что отвечает ИИ и сказал что мне нужно получить только 1 слово на выходе. Дальше тупо скопировал ответ и вставил. Сам я там ниче не писал. Удобненько)
Дальше у нас нода "Switch". По факту это как дорожный знак. Указывает куда тебе нужно) Как видите там 3 пункта, тех самых что нам отдал AI Agent)
Логика простая, поняли, что письмо спам = переместили в папку "Удаленные"
Поняли что просто полезное, переместили в папку "полезное". Я на почте себе отдельно папку создал с таким названием, чтобы удобненько там лежали)
И самое интересное, это письма категории "важное") Если нам нода сообщила, что вот это письмо важное, то это письмо передается такому-же AI Agent, как и до этого, но только теперь он должен сделать из этого письма короткую выжимку только основного, чтобы не читать 100500 букв, как сейчас это делаешь именно ты =) Он сам поймет что важно в сообщении, а что мусор, и сожмет это буквально в 1-2 предложения)
Дальше у нас идет нода HTML. Опять же, там код... Который я тоже не писал руками) Я попросил ИИ сделать так, чтобы этот код оформлял мне сообщение для того, чтобы его можно было отправить в телеграм. У телеграм по умолчанию нельзя просто взять и отправить письмо, т.к. есть символы, которые он считает, например, за оформление текста. А мне это не нужно. И ИИ мне честно этот код дал, я его скопировал и вставил и все заработало))
Дальше уже финал! Мы берем ноду "Сообщение в телеграм" чтобы отправить сообщение в телеграм и... Отправляем его! Но, тут есть нюанс, нужно же его отправить от кого-то, верно? Вот тут нам нужно будет в телеграм сделать бота, который нам будет присылать сообщения) Благо это делается за минуту, мы в телеграм идем в отцу ботов(с праздничком, кстати =) ) @botfather и там нажимаем создать нового бота. Там нас спрашивают как назвать бота и потом какая ссылка будет. Все) Нам выдают API токен. Вот он то нам и нужен. ВАЖНО!! Не показывай и не пересылай его никому! Представь что это твой паспорт. Будешь его всем показывать? Вот и это не показывай)) Дальше открываешь ноду телеграм, и там в самом верху есть строка "Credential to connect with". Тут выбираешь New Credentials и вставляешь свой API ключ. Ну, ты только что научился работать с ботами, поздравляю=) Теперь твое письмо уйдет тебе. Почему тебе? А там ниже есть еще поле "Chat ID". Вот в него ты должен написать свой ID телеграм) Только на него и будет приходить информация. Но ты не переживай, если где-то будет ошибка тебе обязательно напишут и ошибку и как ее исправить) И.. Последняя нода "Читаем важное". Делает элементарное действие, помечает это письмо прочитанным) Все, цикл завершен и мы возвращаемся в начало цикла и проходим все эти шаги, пока у нас не останется непрочитанных писем)
Ты еще тут? Красавчик) Как видишь, схема простая, что по реализации, что по логике, если выкинуть тонну воды из моего текста, то там останется то... Но я так не умею)
Что еще можно сделать на N8N? Да фактически все, на что фантазии хватит. Я, например, написал автоматизации, которые ведут у меня одновременно 14! групп в телеграм) Там боты сами знают тематики каналов, сами думают над текстом, генерируют по теме будущего поста изображения, потом все это публикуют. Я там участвую ровно никак) 100% автоматизация) Вообще все, что ты делаешь руками, ты можешь автоматизировать на 100% или близко к этому значению. И это круто!
Вот тебе еще пример того, что я сделал буквально вчера, чтобы ты мог посмотреть:)
Календарь пастафарианцев: https://t.me/SvyatyeLapshi где ежедневно будут публиковаться праздники пастафариан. Всем пастафарианам отдельный привет =)
Канал #МамаПонимает https://t.me/MamaPonimaet где я сказал ИИ, что он это профессиональный психолог, консультант по детско-родительским отношениям и автор популярного Telegram-канала. Ну там, на самом деле, очень длинный промт, с нюансами, как он должен писать, что он должен проверять инфу и т.п. и .т.д.
Но, как видишь даже такие вещи уже реальны) Если вдруг зайдет статья. Могу написать потом как я реализовал этот проект по автопубликации тем, там тоже не сложно, на самом деле)
Всех обнял, приподнял =)

Показать полностью 2

Анимешники & ITшники, выручайте

Господа. Хочу дома собрать адекватную систему для мультимедиа автоматизации. Есть сервер, на нем крутится Proxmox. Хочу поднять Jellyfin + radarr + sonarr + qbittorent + prowlarr. И как бы не возникает(почти) проблем с тем, что я указываю название фильма на русском, и 90% он находит и качает. Но вот с аниме вообще беда полная. Почти ничего не качает, хотя на торрентах добавленных эти аниме есть. Поэтому прошу, кто все же смог адекватно заставить работать эту связку, напишите подробно как у вас получилось завести аниме на скачивание...

6

Выращивал одно - выросло другое

Добрый день!
прошу помощи с определением что у меня выросло))
1 должен был быть каролина рипер
2 должен был быть sugar rush
3 должен был быть желтый Тринидад скорпион.
но ни один из них не похож на эти названия

Показать полностью 3

Газовый котел и сухие контакты

Привет всем! Тут по-любому есть люди, которые шарят в этом(да тут есть спецы вообще во всем:) ). Есть у меня газовый котел, хочу его автоматизировать и подключить реле у нему. Подскажите, правильно ли я понимаю, что термогенератор я оставляю включенным как он есть, а реле с поддержкой сухих контактов я подключаю к крайним пинам? Соответственно схема должна быть реле замкнулось - котел греет воду, реле разомкнутое, котел не греет воду

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества