среда, 8 марта 2023 г.

Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)

 https://stopad.cgood.ru/


## StopAD - Script for blocking advertisements, based on your defined hosts files ## For changing any parameters, please, use this link: https://stopad.cgood.ru/ ## ## @github <https://github.com/tarampampam/mikrotik-hosts-parser> ## @version 4.4.0 ## ## Setup this Policy for script: [X] Read [X] Write [X] Policy [X] Test :local hostScriptUrl "https://stopad.cgood.ru/script/source?format=routeros&version=4.4.0&redirect_to=127.0.0.1&limit=5000&sources_urls=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Ftarampampam%2Fmikrotik-hosts-parser%40master%2F.hosts%2Fbasic.txt,https%3A%2F%2Fadaway.org%2Fhosts.txt,https%3A%2F%2Fwww.malwaredomainlist.com%2Fhostslist%2Fhosts.txt,https%3A%2F%2Fpgl.yoyo.org%2Fadservers%2Fserverlist.php%3Fhostformat%3Dhosts%26showintro%3D0%26mimetype%3Dplaintext&excluded_hosts=localhost,localhost.localdomain,broadcasthost,local,ip6-localhost,ip6-loopback,ip6-localnet,ip6-mcastprefix,ip6-allnodes,ip6-allrouters,ip6-allhosts"; :local scriptName "stop_ad.script"; :local backupFileName "before_stopad"; :local logPrefix "[StopAD]"; do { /tool fetch check-certificate=no mode=https url=$hostScriptUrl dst-path=("./".$scriptName); :delay 3s; :if ([:len [/file find name=$scriptName]] > 0) do={ /system backup save name=$backupFileName; :delay 1s; :if ([:len [/file find name=($backupFileName.".backup")]] > 0) do={ /ip dns static remove [/ip dns static find comment=ADBlock]; /import file-name=$scriptName; /file remove $scriptName; :log info "$logPrefix AD block script imported, backup file (\"$backupFileName.backup\") created"; } else={ :log warning "$logPrefix Backup file not created, importing AD block script stopped"; } } else={ :log warning "$logPrefix AD block script not downloaded, script stopped"; } } on-error={ :log warning "$logPrefix AD block script download FAILED"; };


Как мне всё это дело прикрутить к моему MikroTik-у? Более чем просто — необходимо добавить (System → Scripts → Add New) указанный выше скрипт, а так же добавить задание в планировщик (System → Scheduler → Add New) для его периодического запуска. Если если вы задали имя скрипта AutoADBlock, то в планировщике в поле On Event укажите: /system script run AutoADBlock. Права доступа: [X] Read [X] Write [X] Policy [X] Test.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

среда, 22 февраля 2023 г.

ERROR: Error installing cocoapods:

 Depending on some aspects this might work for you, if you don't mind using the "SUDO" command:


sudo gem install -n /usr/local/bin cocoapods -v 1.8.4


Latest CocoaPods 1.10.0 won't work.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

среда, 9 февраля 2022 г.

Использование Telegram Core API (MTProto) на PHP

Эта заметка не про Bot API, а про Core API Telegram, с помощью которого можно создавать полноценные клиенты для месседжера, и конечно же любой другой софт, например для сбора данных из Телеграма. Основная проблема заключается в том, что общение с серверами Telegram осуществляется по специальному протоколу разработанным внутри компании — MTProto. Именно благодаря этому протоколу данный месседжер и славится своей безопасностью и шифрование данных.

Вас мучают вопросы: как использовать Telegram Api на PHP? Как вызывать функции? Очень много примеров использования telegram api для бота, а как использовать обычное api telegram? Зарегистрировал приложение, получил api_id и api_hash, как получить все сообщения из телеграм-канала? https://core.telegram.org/method/messages.getHistory
Как вызвать этот метод? Как реализовать авторизацию с помощью API Telegram? Тогда эта статья для вас!

Естественно, разбирать нюансы протокола MTProto в данной заметке я не буду. Для работы с ним буду пользоваться PHP-библиотекой MadelineProto, доступной всем желающим на GitHub. Однако, нельзя просто так взять и воспользоваться библиотекой. Есть как минимум три нюанса, которые нужно решить.

Подготовка к установке MadelineProto

Во-первых, нужен установленный Python, будет достаточно версии 2.7.

Во-вторых, библиотека не помечена как стабильная, поэтому для подключения её через composer к существующему проекту нужно немного отредактировать composer.json:

"minimum-stability": "dev",

Для того, чтобы composer не ругался на отсутствие стабильных версий зависимостей. Без указания этой директивы во время установки библиотеки будет получена примерно такая ошибка:

Your requirements could not be resolved to an installable set of packages.

Problem 1
 - Installation request for danog/madelineproto ^2.0 -> satisfiable by danog/madelineproto[2.0].
 - danog/madelineproto 2.0 requires danog/primemodule dev-master -> satisfiable by danog/primemodule[dev-master] but these conflict with your requirements or minimum-stability.


Installation failed, reverting ./composer.json to its original content.

Затем нужно указать git-репозиторий библиотеки:

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/danog/phpseclib"
    }
],

и только затем можно устанавливать саму либу:

composer require danog/madelineproto

Если во время установки зависимостей появится ошибка на подобии такой:

github Failed to clone via https, ssh protocols, aborting.
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

То вам нужно обновить версию git.

Регистрация приложения для Telegram API

Теперь нужно зарегистрировать приложение в разделе API development tools и получить App api_id и App api_hash.

Как правильно использовать MadelineProto с Laravel

В-третьих, на сегодняшний день (2017-02-10) мне не удалось запустить MadelineProto из коробки, т.к. начинали сыпаться ошибки типа:

DataCenter: Connecting to DC 2 (main server, ipv4, tcp_full)...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 443...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 80...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 88...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 443 without the proxy...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 80 without the proxy...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
DataCenter: Connection failed, retrying connection on port 88 without the proxy...
Exception: stream_set_timeout() expects parameter 1 to be resource, null given in Socket.php:153
Exception: Undefined offset: 2 in MsgIdHandler.php:77
CallHandler: An error occurred while calling method help.getNearestDc: Undefined offset: 2 in MsgIdHandler on line 77. Recreating connection and retrying to call method...
Exception: Undefined offset: 2 in MTProto.php:641

In MTProto.php line 641:

Undefined offset: 2

На самом деле здесь нет ничего фатального, просто фреймворк Laravel по-умолчанию перехватывает все ошибки и при отсуствии должных обработчиков завершает скрипт даже при наличии не критичных ошибок. Возможно такое поведение присутствует и в других фреймворках. Можно изменить уровень ошибок, добавив в метод \App\Providers\AppServiceProvider::boot() строку:

error_reporting(0);

Но тогда есть вероятность пропустить некритичные ошибки своего приложения.

Вторым способом устранения ошибок будет правка исходника /vendor/danog/madelineproto/src/danog/MadelineProto/Connection.php, а именно нужно закомментировать 3 строки в конструкторе в условии

case 'tcp_full':
//                $this->sock->setOption(\SOL_SOCKET, \SO_RCVTIMEO, $timeout);
//                $this->sock->setOption(\SOL_SOCKET, \SO_SNDTIMEO, $timeout);
//                $this->sock->setBlocking(true);

В коммите 56c0d431768c04009ae9aa3151715b5e6399ec4d эти строки находятся на 105-107 строках файла. Источник проблемы был найден с помощью отладчика xDebug. Проблема заключалась в том, что методы $this->sock->setOption() и  $this->sock->setBlocking() пытались работать с ещё не созданным объектом $this->sock->sock. Если у вас возникнут другие ошибки, то с помощью отладчика вы их легко обнаружите и исправите.

Также в библиотеку могут быть зашиты устаревшие или не актуальные IP-адреса серверов Телеграма. Их всегда можно посмотреть на странице API development tools и передать в ModelineProto через конструктор \danog\MadelineProto\API().

Список всех параметров которые можно изменить в этой библиотеке можно посмотреть в массиве $default_settings метода \danog\MadelineProto\MTProto::parse_settings().

В идеале нужно зарегистрировать для приложения новую чистую учётную запись, но для тестирования и отладки вполне сгодится любая уже имеющаяся учётка Телеграма.

Пример работы MadelineProto на Laravel

Как делать запросы к Telegram API на PHP?

Приведу простой пример кода на базе консольной команды для Laravel:

public function handle() {

        // Если файл с сессией уже существует, использовать его
        if(file_exists( env('TELEGRAM_SESSION_FILE') ) ) {
            $madeline = new API( env('TELEGRAM_SESSION_FILE') );
        } else {
        // Иначе создать новую сессию
            $madeline = new API([
                'app_info' => [
                    'api_id' => env('TELEGRAM_API_ID'),
                    'api_hash' => env('TELEGRAM_API_HASH'),
                ]
            ]);

            // Задать имя сессии
            $madeline->session = env('TELEGRAM_SESSION_FILE');

            // Принудительно сохранить сессию
            $madeline->serialize();

            // Начать авторизацию по номеру мобильного телефона
            $madeline->phone_login( env('TELEGRAM_PHONE') );
            // Запросить код с помощью консоли
            $code = readline('Enter the code you received: ');
            $madeline->complete_phone_login($code);
        }

        $messages = $madeline->messages->getHistory(['peer' => '@ANY_CHANNEL_ID', 'offset_id' => 0, 'offset_date' => 0, 'add_offset' => 0, 'limit' => 10, 'max_id' => 0, 'min_id' => 0, 'hash' => 0, ]);

        foreach($messages['messages'] as $msg) {
            dump($msg);
        }

    }

Для тех, кто не умеет в Laravel, кратко поясню. Вызовы env() — это запросы значений из файла конфигурации, можно заменить их на константы или захардкодить. Собственно:

TELEGRAM_SESSION_FILE — любое значение, которое можно использовать в качестве имени файла.

TELEGRAM_API_ID и TELEGRAM_API_HASH — Данные из API development tools.

TELEGRAM_PHONE — мобильный номер существующий учётки, например, +7XXXXXXXXXX.

Теперь пояснения о происходящем в коде. Сессия — достаточно важный объект клиента, без него при каждом запуске скрипта авторизовываться и вводить код из сообщения, который Telegram высылает либо в смс либо через сам месседжер. Также на этапе авторизации происходит вся знаменитая шифровочная телеграм-магия. Процесс не быстрый, на моём тестовом стенде он мог затягиваться на минуты.

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

API: Running APIFactory...
API: MadelineProto is ready!
API: Serializing MadelineProto...
Login: Sending code...
Login: Code sent successfully! Once you receive the code you should use the complete_phone_login function.
Enter the code you received: ...
Login: Logging in as a normal user...
MTProto: Trying to copy authorization from dc 2 to dc 1
MTProto: Trying to copy authorization from dc 2 to dc 3
MTProto: Trying to copy authorization from dc 2 to dc 4
ResponseHandler: Parsing updates received via the socket...

После чего можно полноценно использовать все возможности Telegram Core API, например,  $messages = $madeline->messages->getHistory().

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

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

вторник, 1 февраля 2022 г.

Пакеты Flutter, которые я использую в каждом проекте


В этой статье я просто хочу познакомить новых пользователей с моими любимыми пакетами.

Речь пойдет о некоторых из лучших пакетов Flutter, которые могут сократить время разработки и повысить производительность вашего приложения Flutter в кратчайшие сроки.

Эти пакеты и библиотеки Flutter используются для различных аспектов технологии Flutter. Итак, давайте с них начнем.

Управление состоянием

Я считаю, что riverpod — это самое прекрасное решение для управления состоянием.

Оно быстрое, надежное, совершенное. Ниже перечислены причины, по которым стоит выбрать Riverpod:

  • Он не зависит напрямую от Flutter SDK.

  • Riverpod можно использовать для создания и обеспечения однонаправленного потока данных с классами моделей, которые являются иммутабельными (то есть они не меняются).

  • Riverpod не зависит напрямую от дерева виджетов; его работа похожа на работу локатора служб. Провайдеры объявляются глобально и могут быть использованы в любом месте приложения

  • отлавливает ошибки программирования во время компиляции, а не во время исполнения

  • устраняет вложенность для прослушивания/комбинирования объектов

  • обеспечивает тестируемость кода

  • поддержка автоудаления

  • сравнение предыдущего и нового состояния

  • реализует механизм отмены-повторения (undo-redo)

  • отладка состояния приложения

Читайте мое руководство для riverpod.

Чистый код

flutter_hooks дает нам гораздо более чистый код и избавляет нас от бойлерплейт-кодов, обрабатывая их все за нас.

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

Формы

Я использую его для создания более четких и качественных форм flutter. Это помогает нам избавиться от большого количества бойлерплейт-кода.

Также у меня есть статья об этом пакете.

Моделирование

Классы данных в Dart — отстой. Потому что вам нужно вручную обрабатывать такие функции, как toJson-fromJson, они мутабельны и много чего еще.

Такие решения, как JSON to Dart и quicktype, дают нам лишь ограниченную конфигурацию и кастомизацию.

Но существуют два пакета, которые предоставляют полное решение для классов данных. Они хорошо кастомизируются, очень надежны, избавляют нас от огромного количества бойлерплейт-кода.

Это json_serializable и freezed

  • json_serializable помогает конвертировать наши модели в JSON или наоборот.

  • freezed также помогает создавать иммутабельные классы, что повышает надежность наших моделей.

JSON Serializable + Freezed - это идеальный вариант. С вашими моделями теперь не будет никаких проблем.

HTTP-клиент

dio намного лучше, чем пакет http.

Потому что он имеет интерцепторы и расширенные возможности, плагины cache_interceptor, pretty_dio_logger, cookie_manager; также можно создавать свои собственные интерцепторы.

Анимации

Lottie — это упрощенный пакет для создания анимации. Вы можете создавать анимацию в Adobe After Effects и легко анимировать на Flutter. Он быстрый и легкий, поэтому можно не беспокоиться о вероятных проблемах с памятью и процессором. Это сделает ваше приложение гораздо более удобным для пользователя.

Также вы можете найти множество анимаций здесь.

Хранилище

shared_preferences в порядке, но он медленный и очень ограниченный, слишком примитивный и переоцененный.

Я использую в основном пакет hive, но сейчас полюбил objectbox

  • Прост в использовании

  • Довольно быстрый

  • Безопасен (расширенная поддержка шифрования)

  • Работает не только с примитивами, также поддерживает и сложные объекты

  • Даже быстрее hive и поддерживает автоматическую синхронизацию данных между устройствами

I18N И L10N (Интернационализация и локализация)

Если ваше приложение многоязычное, то intl просто необходим, потому что он оказывает большую помощь в решении проблем локализации, таких как:

  • Часовые пояса

  • Временные форматы 

  • Форматы чисел

  • Форматы валют

  • Множественные числа и гендерные особенности …

Продакшн-хелпер

Вам не нужно обрабатывать все нативные коды и файлы.

Создайте нативную заставку всего одной командной строки.

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

Навигация и утилиты

GetX имеет довольно хорошую систему навигации и множество полезных функций.

  • Простота использования

  • Навигация без contex

  • Поддержка динамических URL

  • Поддержка промежуточного программного обеспечения

  • Также обладает таким количеством дополнительных функций, что я не в состоянии их все перечислить.

Подробнее прочитать можно здесь.

Также я использую это решение для управления состоянием и внедрения зависимости, но только для средних и небольших проектов.

Лучший UI/UX опыт 

Почему не нижний лист (bottom sheet) по умолчанию?

  • Он гораздо удобнее для пользователя

  • Возможность просмотра с внутренней прокруткой + перетаскивание вниз для закрытия

  • Поддержка нативного нижнего листа в виде стопки

  • Хорошо кастомизируемый

Пакет flash - это как швейцарский армейский нож. Он отлично кастомизируется и чрезвычайно мощный.

Я использую его для диалоговых окон, снекбаров и тостов.

Он хорошо кастомизируемый и гораздо более удобный для пользователя

Автоматическое кэширование изображений и профессиональная обработка изображений.


Материал подготовлен в рамках курса «Flutter Mobile Developer».

Всех желающих приглашаем на бесплатный двухдневный интенсив «Flutter engine, анимация и ее оптимизация». На интенсиве мы рассмотрим самые глубокие механизмы Flutter Engine и научимся создавать сложные и плавные анимации как на мобильных платформах, так и веб-версии, использовать инструменты профилирования для исключения "замерзания" интерфейса. Также мы затронем тему использования WebGL в веб-приложениях на Flutter для создания трехмерных сцен. Регистрация здесь.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

пятница, 19 ноября 2021 г.

СМС команды для часов Smart Baby Watch (все модели)

СМС команды для часов Smart Baby Watch (все модели)

СМС-команды следует отправлять на номер телефона в часах. Буквы pw означают обращение к часам. 123456 — установленный по умолчанию пароль, позволяющий отсылать команды программирования, # — знак завершения команды.

Если вы не получаете ответа, используйте альтернативный пароль: вместо 123456 введите 523681.

Часы не отвечают на SMS — читайте здесь.

*Используйте горизонтальную прокрутку внизу таблицы

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

Настраиваем детские SMART часы сервисными командами, модели Q50, Q90, Q100




Еще не так давно иметь у себя мобильный телефон могли позволить только хорошо обеспеченные люди. Наличие телефона считалось роскошью, и что уж говорить о наличии такого устройства у ребенка. Времена меняются, технологии развиваются, мобильная техника становится доступнее. И уже никого не удивишь звонком с маленькой "трубки". Практически у каждого взрослого есть свой личный телефон. Поэтому сейчас все чаще поднимается вопрос оснащения такими же устройствами и своих детей.






И все бы хорошо, купил кнопочный телефон и ребенок на связи, но нет, в отличии от взрослых к таким телефонным аппаратам выставляются определенные требования.


- Ввиду своей активности, ребенок может не всегда находиться рядом с телефоном и соответственно не всегда вовремя ответить.


- Пока у детей не сформировалась ответственность и ощущение ценности к тем или иным предметам, высок риск, что телефон будет потерян/сломан/утоплен/т.п. в первый же день.


- А также устройство должно быть всегда на связи для того, чтобы можно было определить, где находится ребенок, и проконтролировать его перемещение.
















Опираясь на эти основные требования, были изобретены специальные детские смарт часы. Преимущества умных таких часов заключаются в их многофункциональности и удобстве использования. Владелец такого гаджета получает фактически «три в одном». Устройство обеспечивает мобильную связь, дает возможность принимать звонки и быстро связаться с кем-либо из родителей, предоставляет выход в интернет (для связи с приложением). Определяет местоположение. Как измерительный прибор, устройство предоставляет информацию о времени, физической активности, калориях.


Такие детские часы имеют управление через приложение на смартфоне. Сами же часы никаких сложных настроек не имеют, вернее сказать, нажимая на кнопки детских часов ничего настроить не получится.






Как же тогда настроить детские смарт часы?




Для внесения сервисных настроек в умные часы используются СМС команды на SIM-карту, которая в них установлена.


Так как часы умеют также отправлять уведомления на смартфон родителей, например, при нажатии кнопки SOS, низком уровне батареи, выход за предел разрешенной зоны нахождения и т.п., не лишним будет выбрать тариф у оператора с некоторым количеством СМС.


Сами команды имеют простую структуру: запрос к настройкам, пароль к настройкам, команда и закрытие запроса (#) .






Одними из наиболее распространенными детскими часами являются Smart baby watch. К плюсам этих часов относится бесплатное приложение SeTracker. В котором осуществляется управление часами. Приложение можно скачать, как на Android (из Play Market), так и на IOS для IPhone.












Какие наиболее распространенные ошибки возникают в часах и какие команды для их устранения




СМС-команды следует отправлять на номер телефона в часах. Буквы pw означают обращение к часам. 123456 — установленный по умолчанию пароль, позволяющий отсылать команды программирования, # — знак завершения команды.


В ответном СМС придет результат обработки сервисного запроса.






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


Данная проблема связана с тем, что часы сообщаются с сервером приложения по разным адресам IP для разных регионов. Т.е. в часах настроен другой адрес сервера и приложение его не видит.


К слову говоря, есть и другие сервисы помимо SeTracker, которые занимаются управлением детскими часами. Для того, чтобы smart baby watch могли соединиться с другими сервисом используют как раз эту команду для смены IP адреса.




Команда смены адреса сервиса выглядит следующим образом:


pw,123456,ip,52.28.132.157,8001#
или
pw,123456,ip,52.28.132.157,9001#






Здесь - сервер для региона Европа и Африка Порт 8001 (или 9001)


Список всех серверов:
Европа и Африка 52.28.132.157
Азия и Океания 54.169.10.136
Северная Америка 54.153.6.9
Южная Америка 54.207.93.14
Гонконг 58.96.181.173 и 47.91.138.192






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


Такое бывает, когда вроде бы все хорошо, но что-то перестало работать после внесения настроек.


Команда для сброса:


pw,123456,factory#


Возможно, после сброса потребуется произвести повторную настройку IP сервера.


Также следует отметить, данная команда приведет устройство к заводским настройкам, но не отвяжет его от аккаунта приложения Setracker. Если вы купили их БУ и там уже привязан аккаунт, то необходимо обратиться к предыдущему владельцу для отвязки или уже непосредственно к разработчикам ПО Setracker, данная услуга платная.








Еще несколько полезных команд




Перезагрузка и выключение


Бывают случаи, что часы могут потерять сервер, зависнуть или еще каки-то образом потерять связь с приложением. На часах установлена система защиты от детей и так просто их перезагрузить или выключить с вставленной сим-картой не получится.


Поэтому есть 2-е сервисные команды для выключения часов и их перезагрузки:




pw,123456,reset# - с данной командой произойдет перезагрузка детских часов
pw,123456,poweroff# - данная команда привет к выключению smart baby watch








Найти часы (в виде звукового сигнала с детских часов)




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


pw,123456,find#








Включить прослушку с часов (обратный звонок на указанный номер)




На указанный номер поступит звонок с часов. Вы будете слышать все через микрофон часов, но ребенок не будет об этом знать. Следует отметить, что о прослушке ребенок догадаться все-таки сможет, т.к. в данном режиме часы перестанут отвечать на нажатия кнопок до завершения сеанса.




pw,123456,monitor,номер телефона#








Установить интервал передачи данных на сервер




Для наиболее трепетных родителей или наоборот, родителей дающих детям максимум свободы, может понадобиться настройка интервала передачи данных на сервер.


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


Во-втором, чем реже, тем дольше будут детские часы работать без подзарядки. В тоже время можно самостоятельно производить запрос в приложении на определение местоположения ребенка с любым интервалом.




pw,123456,upload,300# - вместо "300", указывается значение в секундах








Установка APN оператора SIM-карты




В случае, если после вставления сим-карты на ней не работает интернет, возможны 2 основных случая.


1. Оператор блокирует передачу данных (интернет) в данном типе устройств с выбранным Тарифным планом (необходимо обратиться к своему оператору за консультацией по тарифу)


2. В часах не встают автоматические настройки APN точки доступа. (узнать у оператора настройки APN и отправить команду на часы)




pw,123456,apn,имя apn,логин,пароль#






Для России: МТС:
pw,123456,apn,internet.mts.ru,mts,mts#
БиЛайн: pw,123456,apn,internet.beeline.ru,beeline,beeline#
Мегафон: pw,123456,apn,internet,gdata,gdata#
Теле2: pw,123456,apn,internet.tele2.ru#
Ёта: pw,123456,apn,internet.yota# СМАРТС: pw,123456,apn,internet.smarts.ru#
БайкалВестКом: pw,123456,apn,inet.bwc.ru,bwc,bwc#
Мотив: pw,123456,apn,inet.ycc.ru,motiv#








Получить информацию о некоторых настройках (в частности регистрационный номер и imei)




Так как код для регистрации в приложении представлен на наклейке на детских смарт часах, очень часто он стирается и при необходимости добавить часы в аккаунт требуется его изъятие из памяти самих часов. Для этого есть 2е команды. Простая - указан imei и REG-код. Расширенный - выводится дополнительная информация о других настройках часов.




pw,123456,ts# - расширенный
pw,123456,tt# - упрощенный






Расширенный вариант выглядит примерно следующим образом:
ver:G36DN_096_V1.00_2017.10.10_18.59.33; - версия
ID:2802400000; - ID часов
imei:869128020000000; -Imei
ZCM:028202100000000; -регистрационный код
ip_url:52.28.132.157; - адрес сервера
port:8001; - порт сервера
center:89123456789; -основной номер для уведомлений
slave:; - дополнительный номер телефона
sos1:; - 1 номер SOS
sos2:; - 2 номер SOS
sos3:; - 3 номер SOS
upload:60S; - интервал между передачей данных
bat level:21; - уровень батареи
language:9; - выбранный язык
zone:2.00; - регион использования
GPS:NO(0); - сигнал GPS спутников
GPRS:OK(100); - состояние передачи данных (работа интернета)








В заключении хочется отметить, что мы привели наиболее актуальные сервисные запросы для детских смарт часов smart baby watch, с примерами наиболее частых случаев их использования.


С помощью сервисных СМС команд вы можете выполнить любые действия, что и в бесплатном приложении. При желании можно пойти дальше и по своему усмотрению отключать / или включать какие-то системные настройки. Например, можно отключить Wi-Fi, Bluetooth, GPS и т.п.


Однако, детские часы призваны упрощать жизнь, а не усложнять ее, поэтому все необходимые настройки выведены в приложение и данные команды используются в исключительных случаях и никак не для повседневного использования в замен приложения.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

друзья )

Сохраняйте и делитесь желаниями, и не забывайте о важных датах! парсинг центр