Нужна помощь из скриптом

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

Модератор: immortal

Jilber
Сообщения: 717
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 117 раз
Поблагодарили: 113 раз

Re: Нужна помощь из скриптом

Сообщение Jilber » Пт апр 24, 2020 11:00 pm

viktor6 писал(а):
Пт апр 24, 2020 10:49 pm
Спасибо просто не знаю как грамотно это все сделать.
вот так вроде заработало

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod("turnOn");
 } else {
 $this->callMethod("turnOff");
 }
А у вас при включенном устройстве status=1, а при выключенном status=0 ? Тогда насколько я понимаю должно быть наоборот:

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod("turnOff");
 } else {
 $this->callMethod("turnOn");
 
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Нужна помощь из скриптом

Сообщение viktor6 » Пт апр 24, 2020 11:21 pm

Jilber писал(а):
Пт апр 24, 2020 11:00 pm
viktor6 писал(а):
Пт апр 24, 2020 10:49 pm
Спасибо просто не знаю как грамотно это все сделать.
вот так вроде заработало

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod("turnOn");
 } else {
 $this->callMethod("turnOff");
 }
А у вас при включенном устройстве status=1, а при выключенном status=0 ? Тогда насколько я понимаю должно быть наоборот:

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod("turnOff");
 } else {
 $this->callMethod("turnOn");
 
Да но заработало именно так
turnOn

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

postURL('http://192.168.0.120/power', array('value'=>1));
turnOff

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

postURL('http://192.168.0.120/power', array('value'=>0));
switch

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod("turnOn");
 } else {
 $this->callMethod("turnOff");
 }
При
curl -X POST http://192.168.0.120/power?value=1 вкл
curl -X POST http://192.168.0.120/power?value=0 выкл
Добавил на сцену элемент Подсветка но она почему-то не работает, не включает и выключает
СпойлерПоказать
Opera Снимок_2020-04-24_230900_192.168.0.100.png
Opera Снимок_2020-04-24_230900_192.168.0.100.png (68.76 КБ) 3918 просмотров
Opera Снимок_2020-04-24_230916_192.168.0.100.png
Opera Снимок_2020-04-24_230916_192.168.0.100.png (63.2 КБ) 3918 просмотров
Opera Снимок_2020-04-24_230931_192.168.0.100.png
Opera Снимок_2020-04-24_230931_192.168.0.100.png (62.72 КБ) 3918 просмотров
Raspberry Pi3, с образа от Сергея 3.34
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Нужна помощь из скриптом

Сообщение viktor6 » Чт апр 30, 2020 10:27 pm

Еще нужна помощь
При запросе http://192.168.0.120/all выдает
СпойлерПоказать

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

[{"name":"power","label":"Power","type":"Boolean","value":0},{"name":"brightness","label":"Brightness","type":"Number","value":2,"min":1,"max":255},{"name":"pattern","label":"Pattern","type":"Select","value":53,"options":["Pride","Color Waves","Northward Rainbow","Northeastward Rainbow","Eastward Rainbow","Southeastward Rainbow","Southward Rainbow","Southwestward Rainbow","Westward Rainbow","Northwestward Rainbow","Rotating Rainbow","Outward Rainbow","Inward Rainbow","Falling Rainbow","Rising Rainbow","Rotating Palette","Rainbow Twinkles","Snow Twinkles","Cloud Twinkles","Incandescent Twinkles","Retro C9 Twinkles","Red & White Twinkles","Blue & White Twinkles","Red, Green & White Twinkles","Fairy Light Twinkles","Snow 2 Twinkles","Holly Twinkles","Ice Twinkles","Party Twinkles","Forest Twinkles","Lava Twinkles","Fire Twinkles","Cloud 2 Twinkles","Ocean Twinkles","Palette Twinkles","Candy Cane","Fire Noise","Fire Noise 2","Lava Noise","Rainbow Noise","Rainbow Stripe Noise","Party Noise","Forest Noise","Cloud Noise","Ocean Noise","Black & White Noise","Black & Blue Noise","Rainbow","Rainbow With Glitter","Solid Rainbow","Confetti","Sinelon","Beat","Juggle","Fire","Water"]},{"name":"speed","label":"Speed","type":"Number","value":30,"min":1,"max":255},{"name":"autoplay","label":"Autoplay","type":"Section"},{"name":"autoplay","label":"Autoplay","type":"Boolean","value":1},{"name":"autoplayDuration","label":"Autoplay Duration","type":"Number","value":224,"min":0,"max":255},{"name":"solidColor","label":"Solid Color","type":"Section"},{"name":"solidColor","label":"Color","type":"Color","value":"88,179,2"},{"name":"fire","label":"Fire & Water","type":"Section"},{"name":"cooling","label":"Cooling","type":"Number","value":49,"min":0,"max":255},{"name":"sparking","label":"Sparking","type":"Number","value":60,"min":0,"max":255},{"name":"twinkles","label":"Twinkles","type":"Section"},{"name":"twinkleSpeed","label":"Twinkle Speed","type":"Number","value":5,"min":0,"max":8},{"name":"twinkleDensity","label":"Twinkle Density","type":"Number","value":8,"min":0,"max":8},{"name":"coolLikeIncandescent","label":"Incandescent Cool","type":"Boolean","value":1}]
Интересует как можно записать значения
{"name":"power","label":"Power","type":"Boolean","value":0}
в свойства обьекта.
Я в этом е чего не понимаю Хочу сделать обратную связь там должно быть 1 ли 0, вкл или выкл
Raspberry Pi3, с образа от Сергея 3.34
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Нужна помощь из скриптом

Сообщение Chainik » Чт апр 30, 2020 10:38 pm

viktor6 писал(а):
Чт апр 30, 2020 10:27 pm
Еще нужна помощь
...
Это формат json.
Вот тут примерно похожий вопрос
viewtopic.php?f=5&t=3350&start=140
и через 1 пост ответ.
За это сообщение автора Chainik поблагодарил:
viktor6 (Чт апр 30, 2020 10:56 pm)
Рейтинг: 1.16%
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Нужна помощь из скриптом

Сообщение viktor6 » Чт апр 30, 2020 10:57 pm

Chainik писал(а):
Чт апр 30, 2020 10:38 pm
viktor6 писал(а):
Чт апр 30, 2020 10:27 pm
Еще нужна помощь
...
Это формат json.
Вот тут примерно похожий вопрос
viewtopic.php?f=5&t=3350&start=140
и через 1 пост ответ.
Спасибо как я и говорил я в этом не понимаю, в примере указано как сделать для mqtt а у меня http. Вот и не знаю что на что поменять
Raspberry Pi3, с образа от Сергея 3.34
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Нужна помощь из скриптом

Сообщение Chainik » Чт апр 30, 2020 11:58 pm

viktor6 писал(а):
Чт апр 30, 2020 10:57 pm
...
Спасибо как я и говорил я в этом не понимаю, в примере указано как сделать для mqtt а у меня http. Вот и не знаю что на что поменять
Неважно как получен ответ, по mqtt или по http.
Если вам нужен только первый "value", то можно обрезать ответ до содержимого первых фигурных скобок и вытащить уже оттуда.

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

$json = '[{"name":"power","label":"Power","type":"Boolean","value":0},{"name":"brightness","label":"Brightness","type":"Number","value":2,"min":1,"max":255},{"name":"pattern","label":"Pattern","type":"Select","value":53,"options":["Pride","Color Waves","Northward Rainbow","Northeastward Rainbow","Eastward Rainbow","Southeastward Rainbow","Southward Rainbow","Southwestward Rainbow","Westward Rainbow","Northwestward Rainbow","Rotating Rainbow","Outward Rainbow","Inward Rainbow","Falling Rainbow","Rising Rainbow","Rotating Palette","Rainbow Twinkles","Snow Twinkles","Cloud Twinkles","Incandescent Twinkles","Retro C9 Twinkles","Red & White Twinkles","Blue & White Twinkles","Red, Green & White Twinkles","Fairy Light Twinkles","Snow 2 Twinkles","Holly Twinkles","Ice Twinkles","Party Twinkles","Forest Twinkles","Lava Twinkles","Fire Twinkles","Cloud 2 Twinkles","Ocean Twinkles","Palette Twinkles","Candy Cane","Fire Noise","Fire Noise 2","Lava Noise","Rainbow Noise","Rainbow Stripe Noise","Party Noise","Forest Noise","Cloud Noise","Ocean Noise","Black & White Noise","Black & Blue Noise","Rainbow","Rainbow With Glitter","Solid Rainbow","Confetti","Sinelon","Beat","Juggle","Fire","Water"]},{"name":"speed","label":"Speed","type":"Number","value":30,"min":1,"max":255},{"name":"autoplay","label":"Autoplay","type":"Section"},{"name":"autoplay","label":"Autoplay","type":"Boolean","value":1},{"name":"autoplayDuration","label":"Autoplay Duration","type":"Number","value":224,"min":0,"max":255},{"name":"solidColor","label":"Solid Color","type":"Section"},{"name":"solidColor","label":"Color","type":"Color","value":"88,179,2"},{"name":"fire","label":"Fire & Water","type":"Section"},{"name":"cooling","label":"Cooling","type":"Number","value":49,"min":0,"max":255},{"name":"sparking","label":"Sparking","type":"Number","value":60,"min":0,"max":255},{"name":"twinkles","label":"Twinkles","type":"Section"},{"name":"twinkleSpeed","label":"Twinkle Speed","type":"Number","value":5,"min":0,"max":8},{"name":"twinkleDensity","label":"Twinkle Density","type":"Number","value":8,"min":0,"max":8},{"name":"coolLikeIncandescent","label":"Incandescent Cool","type":"Boolean","value":1}]';
preg_match('/{([^}]*)/', $json, $matches);
$json = "{".$matches[1]."}";
$data = json_decode($json);
$T = $data->value;
gg('Имя_Объекта.Имя_Свойства',$T);
За это сообщение автора Chainik поблагодарил:
viktor6 (Пт май 01, 2020 11:19 pm)
Рейтинг: 1.16%
Аватара пользователя
SmoKE_xDDD
Сообщения: 816
Зарегистрирован: Ср апр 17, 2019 5:00 pm
Откуда: Нижний Новгород
Благодарил (а): 110 раз
Поблагодарили: 899 раз

Re: Нужна помощь из скриптом

Сообщение SmoKE_xDDD » Пт май 01, 2020 12:23 am

Chainik писал(а):
Чт апр 30, 2020 11:58 pm
viktor6 писал(а):
Чт апр 30, 2020 10:57 pm
...
Спасибо как я и говорил я в этом не понимаю, в примере указано как сделать для mqtt а у меня http. Вот и не знаю что на что поменять
Неважно как получен ответ, по mqtt или по http.
Если вам нужен только первый "value", то можно обрезать ответ до содержимого первых фигурных скобок и вытащить уже оттуда.

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

$json = '[{"name":"power","label":"Power","type":"Boolean","value":0},{"name":"brightness","label":"Brightness","type":"Number","value":2,"min":1,"max":255},{"name":"pattern","label":"Pattern","type":"Select","value":53,"options":["Pride","Color Waves","Northward Rainbow","Northeastward Rainbow","Eastward Rainbow","Southeastward Rainbow","Southward Rainbow","Southwestward Rainbow","Westward Rainbow","Northwestward Rainbow","Rotating Rainbow","Outward Rainbow","Inward Rainbow","Falling Rainbow","Rising Rainbow","Rotating Palette","Rainbow Twinkles","Snow Twinkles","Cloud Twinkles","Incandescent Twinkles","Retro C9 Twinkles","Red & White Twinkles","Blue & White Twinkles","Red, Green & White Twinkles","Fairy Light Twinkles","Snow 2 Twinkles","Holly Twinkles","Ice Twinkles","Party Twinkles","Forest Twinkles","Lava Twinkles","Fire Twinkles","Cloud 2 Twinkles","Ocean Twinkles","Palette Twinkles","Candy Cane","Fire Noise","Fire Noise 2","Lava Noise","Rainbow Noise","Rainbow Stripe Noise","Party Noise","Forest Noise","Cloud Noise","Ocean Noise","Black & White Noise","Black & Blue Noise","Rainbow","Rainbow With Glitter","Solid Rainbow","Confetti","Sinelon","Beat","Juggle","Fire","Water"]},{"name":"speed","label":"Speed","type":"Number","value":30,"min":1,"max":255},{"name":"autoplay","label":"Autoplay","type":"Section"},{"name":"autoplay","label":"Autoplay","type":"Boolean","value":1},{"name":"autoplayDuration","label":"Autoplay Duration","type":"Number","value":224,"min":0,"max":255},{"name":"solidColor","label":"Solid Color","type":"Section"},{"name":"solidColor","label":"Color","type":"Color","value":"88,179,2"},{"name":"fire","label":"Fire & Water","type":"Section"},{"name":"cooling","label":"Cooling","type":"Number","value":49,"min":0,"max":255},{"name":"sparking","label":"Sparking","type":"Number","value":60,"min":0,"max":255},{"name":"twinkles","label":"Twinkles","type":"Section"},{"name":"twinkleSpeed","label":"Twinkle Speed","type":"Number","value":5,"min":0,"max":8},{"name":"twinkleDensity","label":"Twinkle Density","type":"Number","value":8,"min":0,"max":8},{"name":"coolLikeIncandescent","label":"Incandescent Cool","type":"Boolean","value":1}]';
preg_match('/{([^}]*)/', $json, $matches);
$json = "{".$matches[1]."}";
$data = json_decode($json);
$T = $data->value;
gg('Имя_Объекта.Имя_Свойства',$T);
А зачем что то обрезать?
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Нужна помощь из скриптом

Сообщение Chainik » Пт май 01, 2020 12:30 am

SmoKE_xDDD писал(а):
Пт май 01, 2020 12:23 am
...
А зачем что то обрезать?
Если не обрезать, мой код выдаст в "$data->value" пустое значение. Для положительного результат без обрезки нужен более "продвинутый" код.
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Нужна помощь из скриптом

Сообщение viktor6 » Пт май 01, 2020 9:41 pm

Не сердитесь но где указать адрес http://192.168.0.120/all
Raspberry Pi3, с образа от Сергея 3.34
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Нужна помощь из скриптом

Сообщение Chainik » Пт май 01, 2020 10:03 pm

viktor6 писал(а):
Пт май 01, 2020 9:41 pm
Не сердитесь но где указать адрес http://192.168.0.120/all
Нет повода сердится (первая строка должна выглядеть так вместо той, которая есть сейчас):

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

$json = file_get_contents('http://192.168.0.120/all');
За это сообщение автора Chainik поблагодарил:
viktor6 (Пт май 01, 2020 11:19 pm)
Рейтинг: 1.16%
Ответить