directman

 
<<< Back

Меню пылесоса Xiaomi в телеграмм

Основные команды.

Необходимо создать класс устроства (можно импортировать мой https://yadi.sk/d/v7V9cRNYP3lveQ)

Пылесос должен быть добавлен в модуле xiaomimiio, прописан токен. Свойства импортированного объекта MiVacuumCleaner должны быть привязаны к свойствам модуля xiaomimiio пылесоса.

Команды:

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();

// $option[] = $telegram_module->buildInlineKeyboardButton($text=$state." ".$obj,"","Callback_fm_".$dir."/".$obj,"");

$option = array(
$telegram_module->buildInlineKeyboardButton($text="Запустить уборку","", "Callback_uborka_start",""),
$telegram_module->buildInlineKeyboardButton($text="Закончить уборку","", "Callback_uborka_stop",""), 
$telegram_module->buildInlineKeyboardButton($text="На базу","",          "Callback_uborka_home",""), 
$telegram_module->buildInlineKeyboardButton($text="Остановить уборку","","Callback_uborka_pause",""),  
$telegram_module->buildInlineKeyboardButton($text="Найти","",            "Callback_uborka_findme",""),   
$telegram_module->buildInlineKeyboardButton($text="Убрать зону рядом","","Callback_uborka_spot",""),  
$telegram_module->buildInlineKeyboardButton($text="Текущее состояние","","Callback_uborka_now","")
) ;

$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $telegram_module->buildInlineKeyBoard($option);

$content = array('chat_id' => $chat_id, 'text' => "Выберите папку: ".$dir, 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
$telegram_module->sendContent($content); 

Callback:


//$telegram_module->sendMessageToAll($callback);
//$telegram_module->sendMessageToAll(substr($callback,9,6));
//$telegram_module->sendMessageToAll(substr($callback,16));

if (substr($callback,9,6) == 'uborka')
{

 include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();

if (substr($callback,16) == 'start'){sg('MiVacuumCleaner.command','app_start');}
if (substr($callback,16) == 'stop') {sg('MiVacuumCleaner.command','app_stop');;}
if (substr($callback,16) == 'home') {sg('MiVacuumCleaner.command','app_charge');;}
if (substr($callback,16) == 'findme') {sg('MiVacuumCleaner.command','find_me');;} 
if (substr($callback,16) == 'spot') {sg('MiVacuumCleaner.command','app_spot');;}  
if (substr($callback,16) == 'pause') {sg('MiVacuumCleaner.command','app_pause');;}   
if (substr($callback,16) == 'now')  {rs("vacuumtelega");
 } 

}

Сценарий vacuumtelega:

    include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$luts=gg("MiVacuumCleaner.timestamp");
$diff=(gmdate('i',trim(time()-$luts)));

$pattern = "|\b[0]+([1-9][\d]*)|is"; 
$diff2= preg_replace($pattern, "\\1", $diff); 
$status .= "Информация о пылесосе  была обновлена  "  .$diff2 . " минут назад.";

if (gg('MiVacuumCleaner.online')=='1') {$status =$status." Пылесос на связи, "; }
else   {$status=$status." Связь с пылесосом отсутсвует,";}

if (gg("MiVacuumCleaner.state_text")=='Charging')  {$status =$status." заряжается, установлен на базе, "; }
if (gg("MiVacuumCleaner.state_text")=='Cleaning')  {$status =$status." производит уборку, "; }
if (gg("MiVacuumCleaner.state_text")=='Back to home')  {$status =$status." едет на базу, "; }
if (gg("MiVacuumCleaner.state_text")=='Sleeping')  {$status =$status." отдыхает от трудовых будней, "; }
if (gg("MiVacuumCleaner.state_text")=='Pause')  {$status =$status." установлен на паузу, "; }

//$status .= " температура двигателя ".round(gg("kia ceed.etemp"))." градусов, температура в салоне  ".round(gg("kia ceed.ctemp"))." градусов.";
$status .= " Заряд аккумуляторной батареи ".gg("MiVacuumCleaner.battery")." процентов. ";
if (gg("MiVacuumCleaner.battery")<10) {$status = $status." Внимание, аккумулятор сильно разряжен, рекомендуется зарядить как можно скорее!";}
$status .= " Последняя уборка заняла  ".round(gg("MiVacuumCleaner.clean_time")/60)." минут, ";
$status .= " убрано ".round(gg("MiVacuumCleaner.clean_area")/1000000,1)." метров. ";

if (gg("MiVacuumCleaner.error_text")=='No error')  {$status =$status." Ошибок не зафиксировано. "; }
if (gg("MiVacuumCleaner.error_text")=='Clean main brush')  {$status =$status." Необходимо очистить нижнюю щетку."; }
//////////////////////////////////
$resurs=1800;
$resursp=100-round((gg("MiVacuumCleaner.sensor_dirty_time")/60*100)/$resurs);
$resursh=round(($resurs-(gg("MiVacuumCleaner.sensor_dirty_time")/60))/60);
$status .= " Очистка боковых сенсоров необходима через $resursh часов.";
$resurs=18000;
$resursp=100-round((gg("MiVacuumCleaner.main_brush_work_time")/60*100)/$resurs);
$resursh=round(($resurs-((gg("MiVacuumCleaner.main_brush_work_time")/60)))/60);
if ($resursp<30) {$replacemain=1; }else{  $replacemain=0;}
$status .= " Ресурс нижней щетки ".$resursp." процентов ($resursh часов).";

$resurs=12000;
//$resurs=120;
$resursp=100-round((gg("MiVacuumCleaner.side_brush_work_time")/60*100)/$resurs);
$resursh=round(($resurs-((gg("MiVacuumCleaner.side_brush_work_time")/60)))/60);
if ($resursp<30){ $replaceside=1;} else  {$replaceside=0;}

$status .= " Ресурс боковой щетки ".$resursp." процентов ($resursh часов).";
$resurs=9000;
//$resurs=90;
$resursp=100-round((gg("MiVacuumCleaner.filter_work_time")/60*100)/$resurs);
$resursh=round(($resurs-((gg("MiVacuumCleaner.filter_work_time")/60)))/60);
if ($resursp<30) {$replacefilter=1;} else {$replacefilter=0;}
$status .= " Ресурс фильтра ".$resursp." процентов ($resursh часов).";

if (($replacefiler=='1')or
($replaceside=='1') or
($replacemian=='1'))
{$status .= " Необходимо преобрести расходники: ";
if ($replaceside==1) $status .= "боковую щетку "  ; 
if ($replacefiler==1) $status .= "фильтр ";
if ($replacemain==1) $status .= "главную щетку "  ;
 $status .= ".";
}
$telegram_module->sendMessageToAll($status);

Discuss (6) (3)

See also:
2021-03-02 Добавляем новые или недостающие метрики управления устройств в модуле zigbee2mqtt
2021-02-16 Установка Majordomo на JetHUB D1
2021-02-02 Shelly 1
2020-09-30 Команды для назначения владельцев папок
2020-09-16 Собираем список ip вызывных панелей с поддержкой SIP
2020-07-03 Получаем безопасный доступ к Web странице MajorDoMo
2020-04-24 Установка MajorDoMo на synology в 3 клика
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-01-25 Команды для настройки прав пользователей на папку с majordomo
2020-01-23 Отключаем строгий режим MYSQL штатными средствами
2019-10-12 Подключаем светодиодные ленты к контроллеру MegaD
2019-10-11 Варианты интеграции электроприводов
2019-09-30 Выбор источников сигнала телевизоров LG 2013
2019-09-29 Узнаем версию дистрибутива linux
2019-09-24 Установка необходимых пакетов в xpenology через docker
2019-09-16 Примеры разметки Markdown
2019-09-14 Краткий обзор выключателей, в том числе Sonoff T4EU1C
2019-09-13 Сценарий для канала @MajorDoMo_feed
2020-03-26 Опыт установки Synology DSM
2019-09-09 Делаем majordroid лаунчером андройд по-умолчанию.
2019-09-04 Реализация сценария "кто-то пришел"
2019-09-02 Отправляем график hightcharts свойства любого объекта в телеграмм
2019-09-17 Автономная сигнализация на базе контроллера megad-2561
2019-08-27 Управление громкостью терминалов через телеграмм
2019-08-26 Полноценная консоль в браузере (wetty)
2019-08-16 Точечное регулирование радиаторов отопления
2019-08-18 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
2019-08-13 Общедоступная ссылка с закатом, рассветом и текущей погодой
2019-07-24 Самый дешевый вариант видеонаблюдения
2019-07-22 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
2019-07-22 Запуск Majordroid на старом железе
2019-07-15 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
2019-07-05 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
2019-07-04 О приборах учета и удаленном снятии показаний (вода и газ)
2019-07-04 О приборах учета и удаленном снятии показаний (электричество)
2019-07-03 Конвертируем rs-485 в TCP-IP
2019-06-24 Наблюдение за радиационной обстановкой в регионе
2019-06-06 Удобный просмотр данных сенсоров через телеграмм
2019-06-06 Просмотр камер через телеграмм
2019-06-06 Управление светом через телеграмм
2019-06-06 Колор-пикер для телеграм
2019-05-06 Список символов emoji
2019-04-17 Установка z-way на Ubuntu
2019-04-16 Решение проблемы ERROR 1040 (HY000): Too many connections
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66