Перевод системы яркости лампочек в формат MJD

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
VOVA_iS
Сообщения: 205
Зарегистрирован: Пн фев 04, 2019 10:23 pm
Благодарил (а): 18 раз
Поблагодарили: 30 раз

Перевод системы яркости лампочек в формат MJD

Сообщение VOVA_iS » Ср июл 31, 2019 9:53 am

Здравствуйте, имеются устройства(лампочки и т.п.) у которых яркость выставляется в диапазоне 1- 255.
А в MJD использую процентное отношение.
Передавать данные я понял как

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

$level=($this->getProperty('level'));
$setlevel=$level*2.55;
$setlevel=round($setlevel);
$this->setProperty('tempvalue',$setlevel);
где tempvalue передаётся лампочке.
А вот как организовать обратную связь. Когда меняешь яркость в другой программе а в MJD записываются процентное отношение.
Пытался в MQTT в Replace list вставить

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

3=1, 5=2, 8=3, 10=4, 13=5, 15=6, 18=7, 20=8, 23=9, 26=10, 28=11, 31=12, 33=13, 36=14, 38=15, 41=16, 43=17, 46=18, 48=19, 51=20, 54=21, 56=22, 59=23, 61=24, 64=25, 66=26, 69=27, 71=28, 74=29, 77=30, 79=31, 82=32, 84=33, 87=34, 89=35, 92=36, 94=37, 97=38, 99=39, 102=40, 105=41, 107=42, 110=43, 112=44, 115=45, 117=46, 120=47, 122=48, 125=49, 128=50, 130=51, 133=52, 135=53, 138=54, 140=55, 143=56, 145=57, 148=58, 150=59, 153=60, 156=61, 158=62, 161=63, 163=64, 166=65, 168=66, 171=67, 173=68, 176=69, 179=70, 181=71, 184=72, 186=73, 189=74, 191=75, 194=76, 196=77, 199=78, 201=79, 204=80, 207=81, 209=82, 212=83, 214=84, 217=85, 219=86, 222=87, 224=88, 227=89, 230=90, 232=91, 235=92, 237=93, 240=94, 242=95, 245=96, 247=97, 250=98, 252=99, 254=100,

Но увы количество знаков там ограничено
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Перевод системы яркости лампочек в формат MJD

Сообщение Chainik » Ср июл 31, 2019 10:00 am

Вот рабочий пример (оборудование -- MegaD, протокол -- http).
https://www.ab-log.ru/forum/viewtopic.p ... 406#p35406
VOVA_iS
Сообщения: 205
Зарегистрирован: Пн фев 04, 2019 10:23 pm
Благодарил (а): 18 раз
Поблагодарили: 30 раз

Re: Перевод системы яркости лампочек в формат MJD

Сообщение VOVA_iS » Ср июл 31, 2019 10:09 am

VOVA_iS писал(а):
Ср июл 31, 2019 9:53 am

Пытался в MQTT в Replace list вставить

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

3=1, 5=2, 8=3, 10=4, 13=5, 15=6, 18=7, 20=8, 23=9, 26=10, 28=11, 31=12, 33=13, 36=14, 38=15, 41=16, 43=17, 46=18, 48=19, 51=20, 54=21, 56=22, 59=23, 61=24, 64=25, 66=26, 69=27, 71=28, 74=29, 77=30, 79=31, 82=32, 84=33, 87=34, 89=35, 92=36, 94=37, 97=38, 99=39, 102=40, 105=41, 107=42, 110=43, 112=44, 115=45, 117=46, 120=47, 122=48, 125=49, 128=50, 130=51, 133=52, 135=53, 138=54, 140=55, 143=56, 145=57, 148=58, 150=59, 153=60, 156=61, 158=62, 161=63, 163=64, 166=65, 168=66, 171=67, 173=68, 176=69, 179=70, 181=71, 184=72, 186=73, 189=74, 191=75, 194=76, 196=77, 199=78, 201=79, 204=80, 207=81, 209=82, 212=83, 214=84, 217=85, 219=86, 222=87, 224=88, 227=89, 230=90, 232=91, 235=92, 237=93, 240=94, 242=95, 245=96, 247=97, 250=98, 252=99, 254=100,

Но увы количество знаков там ограничено
Решил по другому:
Изменил в табличке количество знаков на 1000. После этого в Replase list зашли все данные
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Перевод системы яркости лампочек в формат MJD

Сообщение Logrus » Ср июл 31, 2019 10:48 am

VOVA_iS писал(а):
Ср июл 31, 2019 10:09 am
Решил по другому:
а ПУ не пользуетесь, там так-то это решено
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Перевод системы яркости лампочек в формат MJD

Сообщение xor » Ср июл 31, 2019 11:16 am

VOVA_iS писал(а):Здравствуйте, имеются устройства(лампочки и т.п.) у которых яркость выставляется в диапазоне 1- 255.
А в MJD использую процентное отношение.
Передавать данные я понял как

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

$level=($this->getProperty('level'));
$setlevel=$level*2.55;
$setlevel=round($setlevel);
$this->setProperty('tempvalue',$setlevel);
где tempvalue передаётся лампочке.
А вот как организовать обратную связь. Когда меняешь яркость в другой программе а в MJD записываются процентное отношение.
Пытался в MQTT в Replace list вставить

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

3=1, 5=2, 8=3, 10=4, 13=5, 15=6, 18=7, 20=8, 23=9, 26=10, 28=11, 31=12, 33=13, 36=14, 38=15, 41=16, 43=17, 46=18, 48=19, 51=20, 54=21, 56=22, 59=23, 61=24, 64=25, 66=26, 69=27, 71=28, 74=29, 77=30, 79=31, 82=32, 84=33, 87=34, 89=35, 92=36, 94=37, 97=38, 99=39, 102=40, 105=41, 107=42, 110=43, 112=44, 115=45, 117=46, 120=47, 122=48, 125=49, 128=50, 130=51, 133=52, 135=53, 138=54, 140=55, 143=56, 145=57, 148=58, 150=59, 153=60, 156=61, 158=62, 161=63, 163=64, 166=65, 168=66, 171=67, 173=68, 176=69, 179=70, 181=71, 184=72, 186=73, 189=74, 191=75, 194=76, 196=77, 199=78, 201=79, 204=80, 207=81, 209=82, 212=83, 214=84, 217=85, 219=86, 222=87, 224=88, 227=89, 230=90, 232=91, 235=92, 237=93, 240=94, 242=95, 245=96, 247=97, 250=98, 252=99, 254=100,

Но увы количество знаков там ограничено
Не понял, проблема диапазон 0-255 привести к 0-100%?
Х_%=(яркость_от_0_до_255/255)*100
В чём подвох-то, таблицы?

Отправлено с моего Redmi 4X через Tapatalk


Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Перевод системы яркости лампочек в формат MJD

Сообщение Chainik » Ср июл 31, 2019 11:23 am

xor писал(а):
Ср июл 31, 2019 11:16 am
...
Х_%=(яркость_от_0_до_255/255)*100
...
Отправлено с моего Redmi 4X через Tapatalk
Только надо не забыть округлить до целых

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

$value = round($value/255*100, 0);
VOVA_iS
Сообщения: 205
Зарегистрирован: Пн фев 04, 2019 10:23 pm
Благодарил (а): 18 раз
Поблагодарили: 30 раз

Re: Перевод системы яркости лампочек в формат MJD

Сообщение VOVA_iS » Ср июл 31, 2019 11:40 am

xor писал(а):
Ср июл 31, 2019 11:16 am
VOVA_iS писал(а):Здравствуйте, имеются устройства(лампочки и т.п.) у которых яркость выставляется в диапазоне 1- 255.
А в MJD использую процентное отношение.
Передавать данные я понял как

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

$level=($this->getProperty('level'));
$setlevel=$level*2.55;
$setlevel=round($setlevel);
$this->setProperty('tempvalue',$setlevel);
где tempvalue передаётся лампочке.
А вот как организовать обратную связь. Когда меняешь яркость в другой программе а в MJD записываются процентное отношение.
Пытался в MQTT в Replace list вставить

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

3=1, 5=2, 8=3, 10=4, 13=5, 15=6, 18=7, 20=8, 23=9, 26=10, 28=11, 31=12, 33=13, 36=14, 38=15, 41=16, 43=17, 46=18, 48=19, 51=20, 54=21, 56=22, 59=23, 61=24, 64=25, 66=26, 69=27, 71=28, 74=29, 77=30, 79=31, 82=32, 84=33, 87=34, 89=35, 92=36, 94=37, 97=38, 99=39, 102=40, 105=41, 107=42, 110=43, 112=44, 115=45, 117=46, 120=47, 122=48, 125=49, 128=50, 130=51, 133=52, 135=53, 138=54, 140=55, 143=56, 145=57, 148=58, 150=59, 153=60, 156=61, 158=62, 161=63, 163=64, 166=65, 168=66, 171=67, 173=68, 176=69, 179=70, 181=71, 184=72, 186=73, 189=74, 191=75, 194=76, 196=77, 199=78, 201=79, 204=80, 207=81, 209=82, 212=83, 214=84, 217=85, 219=86, 222=87, 224=88, 227=89, 230=90, 232=91, 235=92, 237=93, 240=94, 242=95, 245=96, 247=97, 250=98, 252=99, 254=100,

Но увы количество знаков там ограничено
Не понял, проблема диапазон 0-255 привести к 0-100%?
Х_%=(яркость_от_0_до_255/255)*100
В чём подвох-то, таблицы?

Отправлено с моего Redmi 4X через Tapatalk
Проблема в обратной связи в mjd
Из MJD передать данные в лампочку не проблема
И обратно тоже не проблема
Но как сделать что бы свойство одно было

Хотя вопрос решился увеличением знаков в поле Replace list в модуле mqtt
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Перевод системы яркости лампочек в формат MJD

Сообщение Chainik » Ср июл 31, 2019 12:39 pm

VOVA_iS писал(а):
Ср июл 31, 2019 11:40 am
...
Но как сделать что бы свойство одно было
...
Храните в свойстве, к примеру, значение в диапазоне 0-100. В этом случае перед отправкой лампочке простейшей математикой конвертируете в диапазон 0-255. При получении по обратной связи от устройства фактического значения (0-255) обратной математикой конвертируете значение в диапазон 0-100 и сохраняете в свойство.
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Перевод системы яркости лампочек в формат MJD

Сообщение Logrus » Ср июл 31, 2019 2:15 pm

а нахрен вы самокат то изобретаете 0_0
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить