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

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

Модератор: immortal

Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Вт окт 22, 2019 11:49 am

У вас видимо устройство включается\выключается одной кнопкой, иначе бы при повторном запуске метода turnOff у вас бы не включался свет. Вам нужно задать правило для скрипта turnOff, чтобы сверял статус и запускал метод turnOff, только когда status 1, если status 0, то метод просто не сработает
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

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

Сообщение viktor6 » Вт окт 22, 2019 11:54 am

Divan писал(а):
Вт окт 22, 2019 11:49 am
У вас видимо устройство включается\выключается одной кнопкой, иначе бы при повторном запуске метода turnOff у вас бы не включался свет. Вам нужно задать правило для скрипта turnOff, чтобы сверял статус и запускал метод turnOff, только когда status 1, если status 0, то метод просто не сработает
Да устройство вкл/вык одной кнопкой.
Можно пример что нужно добавить в скрипт?
Raspberry Pi3, с образа от Сергея 3.34
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Вт окт 22, 2019 12:20 pm

Я собрал код в блокли.

В настройке метода turnOff, выбираем никогда не вызывать родительский метод.
СпойлерПоказать
метод turnOff.jpg
метод turnOff.jpg (107.9 КБ) 3588 просмотров
Пример кода в блокли. Метод запустится только, если стоит статус 1, если стоит статус 0, то метод не сработает. Но, если вы выберите запускать родительский метод, то этот код не будет работать.
СпойлерПоказать
код в методе turnOff.JPG
код в методе turnOff.JPG (80.85 КБ) 3588 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Вт окт 22, 2019 12:32 pm

То же самое сделайте и для метода turnOn, чтобы он у вас при повторном вызове не сработал, в правило для статуса, нужно установить 0. Тогда метод запустится, если стоит статус 0, а если статус 1, то метод не запустится.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

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

Сообщение viktor6 » Вт окт 22, 2019 12:59 pm

Вроде все сделал правильно но не хочет выключатся устройство по ссылке хотя выключатель(кнопка) выключается
СпойлерПоказать
78.jpg
78.jpg (30.58 КБ) 3579 просмотров

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

if ($this->getProperty('status') == 1) {
  if (getGlobal('wifi'.'.'.'admin') == 0 && getGlobal('wifi'.'.'.'luda') == 0) {
    $this->setProperty('status', '0');
    getURL('http://\'.gg(\'girlynda2.ipaddr\').\'/off\'', 0);
    say('дома нет', 2);
  }
}
Raspberry Pi3, с образа от Сергея 3.34
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Вт окт 22, 2019 1:11 pm

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

if ($this->getProperty('status') == 1) {
if (getGlobal('wifi'.'.'.'admin') == 0 && getGlobal('wifi'.'.'.'luda') == 0) {
$this->setProperty('status', '0');
getURL('http://\'.gg(\'girlynda2.ipaddr\').\'/off\'', 0); - по мне это неверный код, так как у вас же был такой код getURL('http://'.gg('girlynda2.ipaddr').'/off', 0);
say('дома нет', 2);
}
}

Сам код в PHP

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

if ($this->getProperty('status') == 1) {
  if (getGlobal('wifi.admin') == 0 && getGlobal('wifi.luda') == 0) {
    $this->setProperty('status', '0');
    getURL('http://'.gg('girlynda2.ipaddr').'/off', 0);
    say('дома нет', 2);
  }
}
За это сообщение автора Divan поблагодарил:
viktor6 (Вт окт 22, 2019 3:52 pm)
Рейтинг: 1.16%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

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

Сообщение viktor6 » Ср окт 23, 2019 8:40 am

Divan писал(а):
Вт окт 22, 2019 1:11 pm
Если хотите использовать код PHP, то после блокли нужно его подкорректировать, убрать лишние точки и символы.

if ($this->getProperty('status') == 1) {
if (getGlobal('wifi'.'.'.'admin') == 0 && getGlobal('wifi'.'.'.'luda') == 0) {
$this->setProperty('status', '0');
getURL('http://\'.gg(\'girlynda2.ipaddr\').\'/off\'', 0); - по мне это неверный код, так как у вас же был такой код getURL('http://'.gg('girlynda2.ipaddr').'/off', 0);
say('дома нет', 2);
}
}

Сам код в PHP

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

if ($this->getProperty('status') == 1) {
  if (getGlobal('wifi.admin') == 0 && getGlobal('wifi.luda') == 0) {
    $this->setProperty('status', '0');
    getURL('http://'.gg('girlynda2.ipaddr').'/off', 0);
    say('дома нет', 2);
  }
}
Блин ну не хотет он выключать устройство и все
ошибка тут как по мне

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

if (getGlobal('wifi.admin') == 0 && getGlobal('wifi.luda') == 0) {
должно

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

if (getGlobal("admin.WiFi") == 0 && getGlobal("luda.WiFi") == 0) {
Raspberry Pi3, с образа от Сергея 3.34
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Ср окт 23, 2019 10:58 am

тогда включите запускать родительский метод перед запуском кода
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

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

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

Ребята помогите, не хочу новую тему создавать.
Суть такова сделал гирлянду на esp+ ws2812b и управляю через http https://github.com/evilgeniuslabs/tree-v2
Создал класс ws2812 в нем свойство girlynda2 и методы
turnOn

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

SetGlobal('girlynda2.status', 1);
turnOff

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

SetGlobal('girlynda2.status', 0);
switch

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

if (getGlobal("girlynda2.status") =="1")
{
 postURL('http://192.168.0.120/power', array('value'=>1));
} else if (getGlobal("girlynda2.status") =="0") 
{ 
 postURL('http://192.168.0.120/power', array('value'=>0));
}
но почему когда в консоле прописую cm("girlynda2.switch"); гирлянда не выключается.
Что не так я делаю?
Raspberry Pi3, с образа от Сергея 3.34
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

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

viktor6 писал(а):
Чт апр 23, 2020 10:31 pm
...
Что не так я делаю?
Может код метода switch чуть поменять?

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

if (getGlobal("girlynda2.status") =="1")
{
 postURL('http://192.168.0.120/power', array('value'=>0));
} else if (getGlobal("girlynda2.status") =="0") 
{ 
 postURL('http://192.168.0.120/power', array('value'=>1));
}
Ответить