Управление техникой по ИК каналу

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
vtec
Сообщения: 458
Зарегистрирован: 19 сен 2011, 09:28

Re: Управление техникой по ИК каналу

Сообщение vtec » 27 авг 2015, 09:43

А куда вы выводите кабель? В потолке маленькая дырочка или вообще как? Если например нужно управлять телевизором?

kod.begemot
Сообщения: 385
Зарегистрирован: 21 сен 2013, 00:38

Re: Управление техникой по ИК каналу

Сообщение kod.begemot » 27 авг 2015, 16:50

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

alexsis_76
Сообщения: 1036
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: Управление техникой по ИК каналу

Сообщение alexsis_76 » 01 сен 2015, 17:26

kod.begemot а вы делаете передатчик или приемник
это я к тому что у меня принимается какая то ересь при нажатии на кнопку приемник фиксирует два принятых слова второе видимо есть код нажатой кнопки,оно меняется при нажатии разных кнопок, а первое постоянное, причем первое меняется на каждом пульте, иногда приходит а иногда и нет, при включении устройства даже если не было нажатия на пульте в буфере приема находится принятая посылка(одна)причем значение у нее одно и то же :( может быть это из за того что я 5 в приемник питаю от 3в и это ошибки ,но тогда почему коды клавиш приходят без ошибок
кстати пульты оказывается все разные ,те что постарее шлют только код нажатой клавиши(один ), те что поновее шлют несколько кодов (те что у меня один 3 второй 4) некоторые посылают код при отпускании кнопки , некоторые при нажатии
и еще ,как то странно ведет себя приемник , если пошевелить им из стороны в сторону начинают приниматься случайные посылки(или это нормально)

Fox
Сообщения: 138
Зарегистрирован: 05 авг 2014, 11:01

Re: Управление техникой по ИК каналу

Сообщение Fox » 02 сен 2015, 22:17

vtec писал(а):А куда вы выводите кабель? В потолке маленькая дырочка или вообще как? Если например нужно управлять телевизором?
Вариантов много можно придумать :). Например, у меня управление кондиционером выполнено так:
Вложения
cond 008_1.jpg
cond 008_1.jpg (297.6 КБ) 4184 просмотра

kod.begemot
Сообщения: 385
Зарегистрирован: 21 сен 2013, 00:38

Re: Управление техникой по ИК каналу

Сообщение kod.begemot » 04 сен 2015, 12:19

alexsis_76 писал(а):kod.begemot а вы делаете передатчик или приемник
Приемник мне нужен только для получения кодов, которые потом буду отправлять.

alexsis_76
Сообщения: 1036
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: Управление техникой по ИК каналу

Сообщение alexsis_76 » 04 сен 2015, 14:49

а скажите на сколько у вас различаются коды соседних клавиш например 1 и 2 или 6 и 9 я вроде сделал , работает стабильно,все принимает как надо только вот почему то коды какие то странные , одна клавиша 1263 вторая 336,причем эти коды приходят стабильно, при длинном нажатии постоянно посылается код клавиши, в принципе если плюнуть на значение этих кодов то можно чем нибудь управлять, по крайней мере входы выходы переключает

dnk
Сообщения: 5
Зарегистрирован: 29 сен 2013, 20:06

Re: Управление техникой по ИК каналу

Сообщение dnk » 22 окт 2015, 21:56

Подскажите пожалуйста.
Накопал на али такие передатчики:
http://russian.alibaba.com/product-gs/w ... 49448.html
http://russian.alibaba.com/product-gs/n ... 86917.html
http://russian.alibaba.com/product-gs/n ... 14367.html
Но не могу понять как к ним привязаться по управлению, отправляя команды с сервера. Понятно что с своих программ на телефонах и прочих они управляются. Вообщем надо их API или порекомендуйте похожие. Что нравится, красивое решение, всенаправленность и, у некоторых работа, через вайфай.
Вдруг кто то уже пощупал их или похожие, поделитесь пожалуйста опытом. У меня ядро wiren board и две меги, хочу по ик порулить техникой.

5kull
Сообщения: 53
Зарегистрирован: 19 июл 2015, 17:35

Re: Управление техникой по ИК каналу

Сообщение 5kull » 25 янв 2016, 17:32

dnk писал(а):Подскажите пожалуйста.
Накопал на али такие передатчики:
http://russian.alibaba.com/product-gs/w ... 49448.html
http://russian.alibaba.com/product-gs/n ... 86917.html
http://russian.alibaba.com/product-gs/n ... 14367.html
Но не могу понять как к ним привязаться по управлению, отправляя команды с сервера. Понятно что с своих программ на телефонах и прочих они управляются. Вообщем надо их API или порекомендуйте похожие. Что нравится, красивое решение, всенаправленность и, у некоторых работа, через вайфай.
Вдруг кто то уже пощупал их или похожие, поделитесь пожалуйста опытом. У меня ядро wiren board и две меги, хочу по ик порулить техникой.
Тут есть API и доп. информация: http://rm-bridge.fun2code.de/
Сообщите если что получиться.

dnk
Сообщения: 5
Зарегистрирован: 29 сен 2013, 20:06

Re: Управление техникой по ИК каналу

Сообщение dnk » 22 сен 2016, 16:17

Сообщаю. Поздно, согласен, но лучше поздно, чем никогда. К сожалению, как обычно, никогда нет времени, постоянно занят. :)
Купил Broadlink RM Pro, вначале был в ужасе от принципа построить автоматизацию на нем. Управлялся только из своего приложения и в приложении можно настраивать сценарии, скрипты. Спасало то, что и по 433 Мгц он тоже может управлять сторонними приложениями, т.е. худо бедно, но управлять и настраивать сценарии можно. Даже неплохие, например, появился в квартире определенный объект (поймал WiFi сигнал телефон объекта) и запустились определенные сценарии, покинул объект - другие сценарии. Вообщем наигрался. Ясно, что параллельная система мне не интересна, надо делать связку с основной, а основная работает через mqtt, оттуда все читают и пишут состояния, в том числе скрипты автоматики. Но, оказалось протокол RM pro закрыт и никакого API нет, за исключением бриджей (ссылка в посте выше), запускаемых под Андроид. Принцип прост, делается обучение определенной кнопки с пульта и ей присваивается любая команда. Далее на бридж через http посылаем текстовую команду, а он в свою очередь дергает RM Pro, а RM Pro посылает ИК-сигнал и, допустим, кондиционер реагирует. Т.е. можно уже использовать в своих скриптах на основной системе.

Работает? Вроде да. Но получается, что задействуется лишнее устройство на Android, что никак не вносит успокоения и уверенности в стабильности и правильности схемы. Короче - это костыль. Продолжил и нашел решение на форуме посвященному Broadlink.
Суть такова, прослушивается трафик между мобильным приложением и устройством на определенное действие, например, включение кондиционера, и, путем анализа пакетов, извлекается требуемая посылка и записывается в файл данных, которые именуем Cond-on.dat. На форуме даже опубликована консольная утилита (Windows), позволяющая посылать пакет данных RM Pro для управления, и её тоже можно использовать в сценариях, ура!, Android исключен из цепочки. И да, это работает. Там же опубликовали скрипт на PHP который делает тоже самое, т.е. уже кроссплатформенное решение.

Таким образом, я думаю, что задача решена. Не так как хотелось в итоге и не в том объеме, но устраивает.
Список использованной литературы:
http://broadlink.ru/topic/93/upravlenie ... ge/page/5/ - Тема посвященная работе бриджа на андроид (костыль), но в конце уже найдено конструктивное решение.

P.S. Сейчас реализую работу через Apple HomeKit (через эмулятор), надеюсь получится, если помогут чуть чуть. А это работа через Siri (голосовые команды) и прочие фишки и сценарии iOS, а их там множество и выглядит очень презентабельно. Основная система у меня построена на Wirenboard и часть на MegaD, но через эмулятор можно использовать любую систему, если интересно и не читали про это, напишу в отдельной теме.

xsash
Сообщения: 206
Зарегистрирован: 08 авг 2016, 12:27

Re: Управление техникой по ИК каналу

Сообщение xsash » 22 сен 2016, 22:37

Интересно, пишите

empenoso
Сообщения: 869
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Управление техникой по ИК каналу

Сообщение empenoso » 29 июн 2018, 08:17

А в базе LIRC http://lirc-remotes.sourceforge.net/remotes-table.html нет информации об кондиционерах "LESSAR" (серия COOL+) выбрал его (в первую очередь из-за цены). Методом проб и ошибок можно будет отправлять команды по инструкции https://ab-log.ru/smart-house/ethernet/megad-2561-ir ?

Bonefolder
Сообщения: 237
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Управление техникой по ИК каналу

Сообщение Bonefolder » 30 июн 2018, 12:09

Empenoso, методом проб и ошибок - вряд ли. Проблему передачи ИК команд климатической технике с наскоку не решить. Там в одной команде передаётся пакет параметров. Я немного «покурил» интернет на данную тему. В глубокой теории, вы сможете передать команду Он/Офф для кондея, с «неизвестными» сопутствующими параметрами, по методу описанному Андреем. В моем случае, с кондиционерам ЛЖ, такой номер не прошёл(
вот, что мне удалось нарыть. Правда, на английском. Но здесь объясняется метод передачи пакета. Не совсем улыбается «пристраивать» RM mini в стену. А так же, посылать команды через костыль в виде питоновского скрипта. Возможно, уважаемый Андрей поможет решить данную проблему. Чтобы «раскопанные» команды посылались непосредственно через Мегу, и разработанный им ИК передатчик. Со своей стороны могу помочь покупкой программы реверс инжиниринга ИК команд.
P.S. Андрей, наверное, будет правильнее перенести мои посты, касательно данной темы, из соседнего топика. Просто, не нашёл данную тему изначально(

Bonefolder
Сообщения: 237
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Управление техникой по ИК каналу

Сообщение Bonefolder » 30 авг 2018, 13:11

Управлять техникой по ИК каналу мы научились при помощи статьи Андрея и сайта LIRC. Как теперь это превратить в удобоваримый интерфейс? Как мы знаем, ОpenНab нативно не поддерживает мнемонических схем для отрисовки пульта в BasicUI. Чтение иностранных статей и гугль помогают решить эту проблему.
И так, приступим. Создаем Item

Код: Выделить всё

Number	TV_Remote	"IR"
Sitemap (здесь самое интересное. Как наш пульт будет выглядеть на экране нашего телефона)

Код: Выделить всё

Text label="Samsung" icon="television" {
		Switch item=TV_Remote mappings=[7=" On/Off ", 8=" Source "]
		Switch item=TV_Remote mappings=[1=" ◄ ", 2=" ▲ ", 3=" ▼ ", 4=" ► "]
		Switch item=TV_Remote mappings=[5="✅", 6="❌"]
	}
Не удивляйтесь, что видите символы. Да, их можно использовать. И они будут корректно отображаться на экране. К сожалению, у меня отобразились не все символы юникода. А только взятые здесь
Ну, и самое главное, чтобы наш "пульт" работал необходимо создать правило Rules где и применим наши сборки ИК команд:

Код: Выделить всё

rule "remote control"
when
	Item TV_Remote received command
then
	switch (receivedCommand){
		case 1 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E0A659&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 2 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E006F9&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 3 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E08679&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 4 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E046B9&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 5 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E016E9&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 6 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E0B44B&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 7 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E040BF&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
		case 8 : sendHttpGetRequest("http://192.168.1.14/sec/?pt=12&ir=E0E0807F&irp0=4589&irp1=4511&irp2=591&irp3=1664&irp4=536&irp5=2")
	}
	postUpdate( TV_Remote, 0 ) //  выключаем "залипание" кнопки))
end
В результате проделанной работы получаем нечто подобное (Последние 3 строки, с подписью IR):
Samsung_Remote.png
Samsung_Remote.png (71.87 КБ) 109 просмотров
В моем случае, первые 4 "кнопки" относятся к Samsung TV Binding. Но из-за древности ТВ, пробуждение телевизора из режима сна по HTTP не срабатывало.
P.S. чтобы это работало необходимо иметь установленный HTTP Binding

Bonefolder
Сообщения: 237
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Управление техникой по ИК каналу

Сообщение Bonefolder » 03 сен 2018, 17:07

В продолжение темы, выкладываю свое решение по управлению БК марки LG (LSNH096F1LO и ASNH09GB1U2). Посредством пультов LG 6711A900312 & AKB73315608. Возможно, кому-то и пригодится.
В написании данного решения мне очень помогли советы Igor78, статья Andrey_B (+IR receiver), данная статья Guido Ottaviani. За что им огромное спасибо.
В ходе считывания пультов выяснилось, что за 7 лет (разница между покупками кондиционеров) фирма LG не поменяла свой алгоритм пультов. И там и там - 28 битный идентичный код. Пульт от новых кондишек прекрасно управляет старым кондиционером. Поэтому я считывал коды с нового пульта. А в ходе написания кода для ОН тестировал на старом кондее. И тот и другой отрабатывают нормально
Ввиду собственной лени (считывать и записывать коды, а потом все это скармливать ОН) и отсутствием нужды всех режимов количество комманд было ограничено собственными нуждами и опытом использования кондиционера, за долгие годы.
Единственная разница, что и Igor78 и Guido Ottaviani разобрали коды по-битово и потом их собирали. Моих знаний настолько не хватло. Пришлось немного раздуть правило. Второе отступление - мне (вернее, членам моей семьи) не понравилось решение со "сбором" комманды, с последующей оправкой по нажатию на кнопку "send command"
И так, что умеет мой "пульт". Изменять режимы работы кондиционера: Охлаждение (18-24грд), Обогрев (24-30грд), Осушение (24грд), Вентиляция и Авто (22грд). Изменять температуру, в указанных пределах для режимов охлаждения и обогрева. Изменять скорость работы вентилятора на определенных температурах Охлаждение - 24грд, Обогрев - 24грд, Осушение 24грд, Вентиляция. При переключении режимов, ОН устанавливает режимы: Охлаждение (18грд, макс. обороты вентилятора), Обогрев (30грд, макс. обороты вентилятора), Осушение (24грд, ср. обороты вентилятора), Вентиляция (24грд, бриз) и Авто (22грд, макс. обороты вентилятора). А так же, включать функцию JET & A/Clean. Управление закрылками я не делал. Так как на старом кондее их (практически) нет. Более того, как я понимаю, дистанционное включение необходимо, чтобы к возвращению хозяина домой быстро привести помещение к комфортной температуре (охладить/подогреть). Более тонкие настройки можно произвести с пульта кондея.
Items:

Код: Выделить всё

/* Condey Кухня */
Switch	AC_1_Power	"On/Off"		(AC)
Switch	AC_1_Jet	"JET"			(AC)
Number	AC_1_Mode	"Режим"			(AC)
Number	AC_1_Temp	"Temp [%s]"		(AC)
Number	AC_1_Fan	"Скор.Вент"		(AC)
Switch	AC_1_AClean	"Auto Clean"	(AC)
String	AC_1_String "Реж.АС [%s]"	(AC)
String	AC_1_St 	"[%s]" 
Sitemaps:

Код: Выделить всё

Switch item=AC_1_Power icon="ac" label="Кондиционер"
Text item=AC_1_String icon="settings" label="Настройки Конд. [MAP(Condey.map):%s]" valuecolor=[AC_1_Temp>=25="orange", AC_1_Temp==24="green", 0="white", AC_1_Temp<24="blue"] {
Selection item=AC_1_Mode icon="input" mappings=[0="Охлаждение", 1="Осушение", 2="Вентиляция", 3="Авто", 4="Обогрев"] 
Setpoint item=AC_1_Temp minValue=18 maxValue=30 step=1 icon="temperature"
Selection item=AC_1_Fan icon="flow" mappings=[0="Low", 1="Med", 2="Max", 3="Flow"]
Switch item=AC_1_Jet
Switch item=AC_1_AClean
} 
Condey.map

Код: Выделить всё

0_18=18 \❄️
0_19=19 \❄️
0_20=20 \❄️
0_21=21 \❄️
0_22=22 \❄️
0_23=23 \❄️
0_24=24 \❄️
4_24=24 \🌞
4_25=25 \🌞
4_26=26 \🌞
4_27=27 \🌞
4_28=28 \🌞
4_29=29 \🌞
4_30=30 \🌞
1_24=24 \💧
2_24=24 \🌀
3_22=22 \🌼
N/A= \⛄
NULL = \⛄ 
Нуб и конечно же правила. Куда ж без них Rules:

Код: Выделить всё

var ac_mode = 0
var ac_temp = 18
var ac_fan = 2
var ac_state = "0-18-2"
var Timer set_timer = null

// Condey mode:			0="Охлаждение", 1="Осушение", 2="Вентиляция", 3="Авто", 4="Обогрев"
// Condey Fan Speed:	0="Low", 1="Med", 2="Max", 3="Flow"

rule "Condey_1 On/Off" // Кондей на кухне
when
	Item AC_1_Power changed
then
	switch (AC_1_Power.state) {
		case ON: sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8800347&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
		case OFF: sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=88C0051&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
	}
end

rule "Condey_1 JET"  // Кондей на кухне, команда JET
when
	Item AC_1_Jet changed
then
	switch (AC_1_Jet.state) {
		case ON: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8810089&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 0) 
			postUpdate(AC_1_Temp, 18)
			postUpdate(AC_1_Fan, 2)
			set_timer = createTimer(now.plusSeconds(3600))
            		[
                		AC_1_Jet.postUpdate(OFF) // Выключает кнопку JET. Кондишка сама переключиться в режим 18грд охлаждения
                		set_timer = null
            		]
		}
		case OFF: sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880834F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
	}
end

rule "Condey_1 Auto Clean" // Кондей на кухне, команда AutoClean
when
	Item AC_1_AClean changed
then
	switch (AC_1_AClean.state) {
		case ON: sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=88C00B7&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
		case OFF: sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=88C00C8&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
	}
end

rule "Condey_1 Mode Select"  // Кондей на кухне, Выбор режима
when
	Item AC_1_Mode received command
then
	switch (receivedCommand) {
		case 0: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880834F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 0) 
			postUpdate(AC_1_Temp, 18)
			postUpdate(AC_1_Fan, 2)
		}
		case 1: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8809924&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 1) 
			postUpdate(AC_1_Temp, 24)
			postUpdate(AC_1_Fan, 1)
		}
		case 2: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880A352&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 2) 
			postUpdate(AC_1_Temp, 24)
			postUpdate(AC_1_Fan, 3)
		}
		case 3: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880B746&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 3) 
			postUpdate(AC_1_Temp, 22)
			postUpdate(AC_1_Fan, 2)
		}
		case 4: {
			sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CF4F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
			postUpdate(AC_1_Mode, 4) 
			postUpdate(AC_1_Temp, 30)
			postUpdate(AC_1_Fan, 2)
		}
	}
end

rule "AC State" // Кондей на кухне, Состояние ("конструктор" состояния команды для посылки)
when
	Item AC_1_Mode changed or
	Item AC_1_Temp changed or
	Item AC_1_Fan changed
then
	ac_mode=AC_1_Mode.state 
    	ac_fan=AC_1_Fan.state
    	ac_temp=AC_1_Temp.state
	AC_1_String.postUpdate(ac_mode+"_"+ac_temp)
	ac_state=(ac_mode+"-"+ac_temp+"-"+ac_fan)
	AC_1_St.postUpdate(ac_state)
end

rule "Condey_1 Temp Change" // Кондей на кухне, Изменение Температуры и Скорости вентилятора
when
	Item AC_1_Temp received command or
	Item AC_1_Fan received command
then
   	if (ac_state.equals("0-18-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880834F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    } // Охл - 18 гр - Макс. обороты
   	if (ac_state.equals("0-19-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808440&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    } // Охл - 19 гр - Макс. обороты
  	if (ac_state.equals("0-20-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808541&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    } // Охл - 20 гр - Макс. обороты
    if (ac_state.equals("0-21-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808642&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    } // Охл - 21 гр - Макс. обороты
    if (ac_state.equals("0-22-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808743&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    } // Охл - 22 гр - Макс. обороты
     if (ac_state.equals("0-23-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808844&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    }  // Охл - 23 гр - Макс. обороты
    if (ac_state.equals("0-24-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808945&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    }  // Охл - 24 гр - Макс. обороты
    if (ac_state.equals("0-24-3")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808956&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")	
    }  // Охл - 24 гр - Бриз
    if (ac_state.equals("0-24-0")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808901&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Охл - 24 гр - Мин. обороты
    if (ac_state.equals("0-24-1")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=8808923&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Охл - 24 гр - Сред. обороты
    if (ac_state.equals("4-24-3")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880C95A&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 24 гр - Бриз
    if (ac_state.equals("4-24-0")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880C905&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 24 гр - Мин. обороты
    if (ac_state.equals("4-24-1")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880C927&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 24 гр - Сред. обороты
    if (ac_state.equals("4-24-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880C949&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 24 гр - Макс. обороты
    if (ac_state.equals("4-25-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CA4A&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 25 гр - Макс. обороты
    if (ac_state.equals("4-26-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CB4B&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 26 гр - Макс. обороты
    if (ac_state.equals("4-27-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CC4C&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 27 гр - Макс. обороты
    if (ac_state.equals("4-28-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CD4D&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 28 гр - Макс. обороты
    if (ac_state.equals("4-29-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CE4E&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 29 гр - Макс. обороты
    if (ac_state.equals("4-30-2")) {
    	sendHttpGetRequest("http://192.168.0.14/sec/?pt=12&ir=880CF4F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Обогрев - 30 гр - Макс. обороты
    if (ac_state.equals("2-24-0")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=880A30D&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Вентиляция - 24 грд - Мин. обороты
    if (ac_state.equals("2-24-1")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=880A32F&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Вентиляция - 24 грд - Сред. обороты
    if (ac_state.equals("2-24-2")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=880A341&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Вентиляция - 24 грд - Макс. обороты
    if (ac_state.equals("2-24-3")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=880A352&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }   // Вентиляция - 24 грд - Бриз
    if (ac_state.equals("1-24-0")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=8809902&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Осушение - 24 грд - Мин. обороты
     if (ac_state.equals("1-24-1")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=8809924&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Осушение - 24 грд - Сред. обороты
    if (ac_state.equals("1-24-2")) {
    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=8809946&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
    }  // Осушение - 24 грд - Макс. обороты
//	else {
//    	sendHttpGetRequest("http://192.168.1.114/sec/?pt=12&ir=880B746&irp0=8900&irp1=4150&irp2=530&irp3=1550&irp4=510&irp5=3")
//  	postUpdate(AC_1_Mode, 3) 
//		postUpdate(AC_1_Temp, 22)
//		postUpdate(AC_1_Fan, 2)
//    }
 end 
К сожалению, я не силен в написании правил. Можно было бы использовать ArrayList, но я этого не осилил. Так же, у меня вышел затык с окончанием кода else. В случае несуществующего конструктива кода переводить кондиционер в режим Auto. Если кто подскажет решение, буду благодарен
Добавлю пару скриншотов. Как это все выглядит в приложении ОН на телефоне.
IMG_3560.jpg
IMG_3560.jpg (27.34 КБ) 80 просмотров
IMG_3564.jpg
IMG_3564.jpg (62.6 КБ) 80 просмотров
IMG_3562.jpg
IMG_3562.jpg (38.7 КБ) 80 просмотров
IMG_3563.jpg
IMG_3563.jpg (27.58 КБ) 80 просмотров

Ответить