Вход / Регистрация / Добавить статью

API объекта Device в dzVents. Атрибуты и методы

dzVents
Содержание

Если у вас есть скрипт dzVents, который запускается при переключении устройства в Domoticz, вторым параметром, переданным функции execute, будет объект device. Кроме того, каждое устройство в Domoticz можно найти в коллекции domoticz.devices(). Объект device имеет набор фиксированных
атрибутов, таких как name и idx. Однако многие устройства имеют разные атрибуты и методы в зависимости от их (аппаратного) типа, подтипа и других идентификаторов устройства.  Вы получите сообщение об ошибке, если вы вызываете метод на устройстве, которое его не поддерживает. Поэтому, пожалуйста, проверьте свойства устройства для вашего конкретного оборудования, чтобы увидеть, какие из них поддерживаются (может быть выполнено в коде скрипта!). dzVents распознает большинство типов устройств в Domoticz и создает соответствующие атрибуты и методы.

Атрибуты и методы объекта device для всех устройств

  • active: Логика. Верно для некоторых общих состояний, таких как ‘On’ или ‘Open’ или ‘Motion’. То же, что и bState.
  • batteryLevel: Число. Если это применимо для этого устройства, оно будет от 0 до 100.
  • bState: Логика. Верно для некоторых общих состояний, таких как ‘On’ или ‘Open’ или ‘Motion’. Лучше использовать active.
  • changed: Логика. True, если устройство было изменено.
  • description: Строка. Описание устройства.
  • deviceId: Строка. Другой идентификатор устройств в Domoticz. dzVents использует атрибут id (x). См. Список устройств в настройках Domoticz.
  • deviceSubType: Строка. См. Таблицу устройств в Domoticz GUI.
  • deviceType: Строка. См. Таблицу устройств в Domoticz GUI.
  • dump(): Функция. Покажет все атрибуты в журнале Domoticz. Игнорирует настройку уровня журнала.
  • hardwareName: Строка. См. Таблицу устройств в Domoticz GUI.
  • hardwareId: Строка. См. Таблицу устройств в Domoticz GUI.
  • hardwareType: Строка. См. Таблицу устройств в Domoticz GUI.
  • hardwareTypeValue: Число. См. Таблицу устройств в Domoticz GUI.
  • icon: Строка. Название иконки в Domoticz GUI.
  • id: Число. Индекс устройства. Вы можете найти индекс в списке устройств (столбец idx) в настройках Domoticz. Является достаточно уникальным для того, чтобы в dzVents обрабатывался как id.
  • idx: Число. То же, что id: индекс устройства.
  • lastUpdate: Объект Time. Время, когда устройство было обновлено.
  • name: Строка. Название устройства.
  • nValue: Число. Численное представление состояния.
  • rawData: Таблица. Все значения являются типами String и содержат необработанные данные, полученные от Domoticz.
  • setState(newState): Функция. Общий метод обновления переключателей. Например: device.setState(‘On’). Поддерживает параметры для команд.
  • state: Строка. Для переключателей используется состояние типа ‘On’ или ‘Off’. Для диммеров это также ‘On’ или ‘Off’, но есть и атрибут для регулировки (яркости). Для селекторных переключателей (Dummy switch) состояние это имя текущего выбранного уровня. Соответствующий числовой уровень этого состояния можно найти в атрибуте rawData: device.rawData[1]
  • signalLevel: Число. Если это применимо для этого устройства, оно будет от 0 до 100.
  • switchType: Строка. См. Таблицу устройств в Domoticz GUI.
  • switchTypeValue: Число. См. Таблицу устройств в Domoticz GUI.
  • timedOut: Логика. Верно, когда устройство не доступно.
  • unit: Число. Device unit. См. Список устройств в настройках Domoticz.
  • update(< params >): Функция. Общий метод обновления. Принимает любое количество параметров, которые будут отправлены обратно в Domoticz. Здесь нет необходимости передавать device.id. Пример обновления температуры: device.update(0,12). В commandArray это выглядит так, [‘UpdateDevice’]='<idx>|0|12′. Поддерживает параметры для команд.

Атрибуты и методы объекта device для определенных устройств

В зависимости от типа устройства, которое добавлено в Domoticz, получаем от него различные данные. Ниже будут прописаны все типы данных, которые получить с типов устройств.

Для чего мне это нужно? Допустим у меня есть датчик освещенности и я хочу в теле сценария dzVents использовать его показания для составления логики, но не знаю как получить показания с него. Моя задумка — включать свет, если освещенность меньше значения в 35 lux. Ищу в этой статье ‘Датчик освещения‘ и вижу ‘lux: Число. Уровень в люксах для датчиков света‘. Теперь я понимаю что показатель освещенности я смогу вытащить в локальную переменную так: local LUX = domoticz.devices(‘Мой датчик освещенности’).lux. Теперь локальная переменная LUX содержит значение уровня освещенности, а использовать его в сценарии dzVents я буду по следующей логике. Если LUX < 35 , нужно включить свет.

Итак, поехали:

Air quality [Качество воздуха]

  • co2: Число. PPM
  • quality: Строка. Качество воздуха.
  • updateAirQuality(ppm): Функция. Передает содержание CO2. Поддерживает параметры для команд.

Alert sensor [Датчик предупреждения]

  • color: Число. Цвет предупреждения. См. Цветовые постоянные domoticz для возможных значений.
  • text: Строка.
  • updateAlertSensor(level, text): Функция. Уровень может быть domoticz.ALERTLEVEL_GREY, ALERTLEVEL_GREEN, ALERTLEVEL_YELLOW, ALERTLEVEL_ORANGE, ALERTLEVEL_RED. Поддерживает параметры для команд.

Ampère, 1-phase [Ампер, 1-фазный]

  • current: Число. Ампер.
  • updateCurrent(current): Функция. Текущее значение в амперах. Поддерживает параметры для команд.

Ampère, 3-phase [Ампер, трехфазный]

  • current1, current2, current3: Число. Ампер.
  • updateCurrent(current1, current2, current3): Функция. Значения в амперах. Поддерживает параметры для команд.

Barometer sensor [Датчик барометра]

  • barometer. Число. Барометрическое давление.
  • forecast: Число.
  • forecastString: Строка.
  • updateBarometer(pressure, forecast): Функция. Обновляет барометрическое давление. Прогноз может быть domoticz.BARO_STABLE, BARO_SUNNY, BARO_CLOUDY, BARO_UNSTABLE, BARO_THUNDERSTORM. Поддерживаетпараметры для команд.

Counter and counter incremental [Счетчик]

  • counter: Число.
  • counterToday: Число. Сегодняшнее значение счетчика.
  • updateCounter(value): Функция. Поддерживает параметры для команд.
  • valueQuantity: Строка. Для счетчиков.
  • valueUnits: Строка.

Custom sensor [Пользовательский датчик]

  • sensorType: Число.
  • sensorUnit: Строка.
  • updateCustomSensor(value): Функция. Поддерживает параметры для команд.

Distance sensor [Датчик расстояния]

  • distance: Число.
  • updateDistance(distance): Функция. Поддерживает параметры для команд.

Electric usage [Использование электричества]

  • WhActual: Число. Текущее потребление в ваттах.
  • updateEnergy(energy): Функция. В ваттах. Поддерживает параметры для команд.

Evohome

  • setPoint: Число.
  • updateSetPoint(setPoint, mode, until): Функция. Обновляет заданное значение. Режим может быть
  • domoticz.EVOHOME_MODE_AUTO, EVOHOME_MODE_TEMPORARY_OVERRIDE or EVOHOME_MODE_PERMANENT_OVERRIDE. Вы можете предоставить дату (в формате ISO 8601, например: os.date(«!%Y-%m-%dT%TZ»)). Поддерживает параметры для команд.

Gas [Газ]

  • counter: Число. Значение в кубических метрах
  • counterToday: Число. Значение в кубических метрах
  • updateGas(usage): Функция. Использование в dm3 (литры). Поддерживает параметры для команд.

Group [Группа]

  • devices(): Функция. Возвращает коллекцию связанных устройств. Поддерживает те же итераторы, что и для
  • domoticz.devices() : forEach(), filter(), find(), reduce(). Обратите внимание, что функция не позволяет вам получить устройство по его имени или идентификатору. Для этого используйте domoticz.devices()
  • toggleGroup(): Функция. Переключает состояние группы. Поддерживает параметры для команд.
  • switchOff(): Функция. Поддерживает параметры для команд.
  • switchOn(): Функция. Поддерживает параметры для команд.

Humidity sensor [Датчик влажности]

  • humidity: Число.
  • humidityStatus: Строка.
  • humidityStatusValue: Число. Значение совпадает с domoticz.HUM_NORMAL, -HUM_DRY, HUM_COMFORTABLE, — HUM_WET.
  • updateHumidity(humidity, status): Функция. Обновляет влажность, статус может быть domoticz.HUM_NORMAL, HUM_COMFORTABLE, HUM_DRY, HUM_WET. Поддерживает параметры для команд.

Kodi

  • kodiExecuteAddOn(addonId): Функция. Отправляет команду Execute Addon без передачи параметров. Addon IDs встроены в конфигурацию аддонов и не следует путать с Addon Name. Например.
  • kodiPause(): Функция. Ставит на паузу при воспроизведении.
  • kodiPlay(): Функция. Отправляет команду Play, только если устройство работает и приостановлено.
  • kodiPlayFavorites([position]): Функция. Воспроизводит элемент из списка избранного Kodi. При желании, начиная с позиции. Избранные позиции, по умолчанию, начинаются с 0.
  • kodiPlayPlaylist(name, [position]): Функция. Будет воспроизводиться музыкальный или видео Smart Playlist с именем. При желании, начиная с позиции. Избранные позиции, по умолчанию, начинаются с 0.
  • kodiSetVolume(level): Функция. Устанавливает громкость (0 <= уровень <= 100).
  • kodiStop(): Функция. Останавливает устройство. Действует только при воспроизведении.
  • kodiSwitchOff(): Функция. Выключает устройство, если поддерживается в настройках.

kWh, Electricity (instant and counter) [кВтч, электричество (мгновенный и счетчик)]

  • counterToday: Число.
  • updateElectricity(power, energy): Функция. Поддерживает параметры для команд.
  • usage: Число.
  • WhToday: Число. Общее использование Вт/ч за день. Обратите внимание, что устройство Вт/ч, а не кВт/ч!
  • WhTotal: Число. Общее использование Вт/ч.
  • WhActual: Число. Фактическое значение.

Leaf wetness [Количество росы]

  • wetness: Число. Значение влажности
  • updateWetness(wetness): Функция. Поддерживает параметры для команд.

Logitech Media Server

  • pause(): Функция. Ставит на паузу при воспроизведении. Поддерживает параметры для команд.
  • play(): Функция. Если устройство выключено, оно включится и начнет воспроизведение. Поддерживаетпараметры для команд.
  • playFavorites([position]): Функция. Запускает список воспроизведения. position необязательна (0 = поумолчанию). Поддерживает параметры для команд.
  • playlistID: Число.
  • setVolume(level): Функция. Устанавливает громкость (0 <= уровень <= 100). Поддерживает параметры длякоманд.
  • startPlaylist(name): Функция. Запускает плейлист по его name . Поддерживает параметры для команд.
  • stop(): Функция. Останавливает устройство. Действует только при воспроизведении. Поддерживает параметры для команд.
  • switchOff(): Функция. Выключает устройство. Поддерживает параметры для команд.

Lux sensor [Датчик освещения]

  • lux: Число. Уровень в люксах для датчиков света.
  • updateLux(lux): Функция. Поддерживает параметры для команд.

Onkyo receiver

  • onkyoEISCPCommand(command): Функция. Отправляет команду EISP на ресиверы Onkyo.

OpenTherm gateway

  • setPoint: Число.
  • updateSetPoint(setPoint): Функция. Поддерживает параметры для команд.

P1 Smart meter

  • counterDeliveredToday: Число.
  • counterToday: Число.
  • usage1, usage2: Число.
  • return1, return2: Число.
  • updateP1(usage1, usage2, return1, return2, cons, prod): Функция. Обновляет устройство. Поддерживаетпараметры для команд.
  • usage: Число.
  • usageDelivered: Число.

Percentage [Проценты]

  • percentage: Число.
  • updatePercentage(percentage): Функция. Поддерживает параметры для команд.

Philips Hue Light

См. Переключатель ниже.

Pressure [Давление]

  • pressure: Число.
  • updatePressure(pressure): Функция. Поддерживает параметры для команд.

Rain meter [Счетчик дождя]

  • rain: Число.
  • rainRate: Число.
  • updateRain(rate, counter): Функция. Поддерживает параметры для команд.

RGBW(W) / Lighting Limitless/Applamp [Освещение RGBW(W)]

Внимание! Не работает для шлюза сяоми

  • decreaseBrightness(): Функция. Поддерживает параметры для команд.
  • increaseBrightness(): Функция. Поддерживает параметры для команд.
  • setDiscoMode(modeNum): Функция. Активирует disco mode, 1 =< modeNum <= 9. Поддерживает параметры для команд.
  • setKelvin(Kelvin): Функция. Устанавливает уровень освещенности в Кельвинах (Только для устройств RGBWW). Поддерживает параметры для команд.
  • setNightMode(): Функция. Устанавливает лампу в ночной режим. Поддерживает параметры для команд.
  • setRGB(red, green, blue): Функция. Устанавливает цвет лампы в RGB. Значения от 0 до 255. Поддерживает параметры для команд.
  • setWhiteMode(): Функция. Устанавливает лампу в белый. Поддерживает параметры для команд.

Scale weight [Шкала веса]

  • weight: Число.
  • udateWeight(): Функция. Поддерживает параметры для команд.

Scene [Сцена]

  • devices(): Функция. Возвращает коллекцию связанных устройств. Поддерживает те же итераторы, что и для domoticz.devices() : forEach(), filter(), find(), reduce(). См. перебор коллекции: итераторы. Обратите внимание, что функция не позволяет вам получить устройство по его имени или идентификатору. Для этого используйте domoticz.devices()
  • switchOn(): Функция. Поддерживает параметры для команд.
  • switchOff(): Функция. Поддерживает параметры для команд.

Security Panel [Панель безопасности]

Создание устройства безопасности:
1. Установите пароль панели безопасности в настройках Domoticz.
2. Активируйте панель безопасности (Setup > More Options > Security Panel и установите ее в режим Disarm (используя пароль)).
3. Перейдите в список устройств в (Setup > Devices). Устройство панели безопасности должно отображаться в разделе ‘Не используется’.
4. Добавьте устройство и дайте ему имя.

Методы / атрибуты:

  • armAway(): Функция. Устанавливает устройство безопасности в режим Armed Away. Поддерживает параметры для команд.
  • armHome(): Функция. Устанавливает устройство безопасности в режим Armed Home. Поддерживает параметры для команд.
  • disarm(): Функция. Устанавливает устройство безопасностив режим Disarm. Поддерживает параметры для команд.
  • state: Строка. Те же значения, что и для domoticz.security.

Solar radiation [Солнечная радиация]

  • radiation: Число. В Watt/m2.
  • updateRadiation(radiation): Функция. Поддерживает параметры для команд.

Soil moisture [Влажность почвы]

  • moisture: Число. В сантибарах (cB).
  • updateSoilMoisture(moisture): Функция. Поддерживает параметры для команд.

Sound level [Уровень звука]

  • level: Число. В dB.
  • updateSoundLevel(level): Функция. Поддерживает параметры для команд.

Switch (dimmer, selector etc.) [Переключатель (диммер, селектор и т. д.)]

Для различных переключателей существуют разные методы. Вы всегда можете использовать общий метод setState(newState).

  • close(): Функция. Устанавливает устройство в статус ‘Close’, если оно его поддерживает. Поддерживает параметры для команд.
  • dimTo(percentage): Функция. Включает диммер и / или уменьшает до указанного уровня. Поддерживает параметры для команд.
  • lastLevel: Число. Уровень диммера перед выключением. Примечание: lastLevel показывает только предыдущий уровень, если у вас есть триггер для самого устройства. Так, например, у вас есть триггер для ‘myDimmer’ и диммер устанавливается от 20% до 30%, в сценарии myDimmer.level == 30 и myDimmer.lastLevel == 20.
  • level: Число. Для диммеров и других устройств ‘Set Level..%’ этот уровень имеет значение, например для селекторных переключателей.
  • levelActions: Строка. Раздельный список действий с URL для селекторных переключателей..
  • levelName: Строка. Имя текущего уровня для селекторных переключателей.
  • levelNames: Таблица. Таблица с именами уровней для селекторных переключателей.
  • maxDimLevel: Число.
  • open(): Функция. Устанавливает устройство в статус ‘Open’, если оно его поддерживает. Поддерживает параметры для команд.
  • stop(): Функция. Устанавливает устройство в статус ‘Stop’, если оно его поддерживает(например шторы). Поддерживает параметры для команд.
  • switchOff(): Функция. Выключает устройство, если поддерживается. Поддерживает параметры для команд.
  • switchOn(): Функция. Включает устройство, если поддерживается. Поддерживает параметры для команд.
  • switchSelector(level): Функция. Переключает селекторный переключатель на определенный уровень (числовое значение, см. Edit Device в Domoticz для такого устройства, чтобы получить список значений). Поддерживает параметры для команд.
  • toggleSwitch(): Функция. Переключает состояние переключателя (если поддерживается), например On / Off, Open / Close и т. д.

Temperature sensor [Датчик температуры]

  • temperature: Число.
  • updateTemperature(temperature): Функция. Примечание: температура должна быть в градусах Цельсия. Используйте domoticz.toCelsius() для преобразования температуры Фаренгейта в Цельсий. Поддерживает параметры для команд.

Temperature, Barometer sensor [Датчик температуры, барометра]

  • barometer: Число.
  • forecast: Число.
  • forecastString: Строка.
  • temperature: Число.
  • updateTempBaro(temperature, pressure, forecast): Функция. Прогноз может быть domoticz.BARO_STABLE, BARO_SUNNY, BARO_CLOUDY, BARO_UNSTABLE, BARO_THUNDERSTORM. Примечание: температура должна быть в градусах Цельсия. Используйте domoticz.toCelsius() для преобразования температуры Фаренгейта в Цельсий. Поддерживает параметры для команд.

Temperature, Humidity, Barometer sensor [Датчик температуры, влажности, барометра]

  • barometer: Число.
  • dewPoint: Число.
  • forecast: Число.
  • forecastString: Строка.
  • humidity: Число.
  • humidityStatus: Строка.
  • humidityStatusValue: Число. Значение совпадает с domoticz.HUM_NORMAL, -HUM_DRY, HUM_COMFORTABLE, -HUM_WET.
  • temperature: Число.
  • updateTempHumBaro(temperature, humidity, status, pressure, forecast): Функция. Прогноз может быть domoticz.BARO_NOINFO, BARO_SUNNY, BARO_PARTLY_CLOUDY, BARO_CLOUDY, BARO_RAIN. статус может быть domoticz.HUM_NORMAL, HUM_COMFORTABLE, HUM_DRY, HUM_WET. Примечание: температура должна быть в градусах Цельсия. Используйте domoticz.toCelsius() для преобразования температуры Фаренгейта в
    Цельсий. Поддерживает параметры для команд.

Temperature, Humidity [Температура, влажность]

  • dewPoint: Число.
  • humidity: Число.
  • humidityStatus: Строка.
  • humidityStatusValue: Число. Значение совпадает с domoticz.HUM_NORMAL, -HUM_DRY, HUM_COMFORTABLE, -HUM_WET.
  • temperature: Число.
  • updateTempHum(temperature, humidity, status): Функция. Статус может быть domoticz.HUM_NORMAL, HUM_COMFORTABLE, HUM_DRY, HUM_WET. Примечание: температура должна быть в градусах Цельсия. Используйте domoticz.toCelsius() для преобразования температуры Фаренгейта в Цельсий. Поддерживает параметры для команд.

Text [Текст]

  • text: Строка.
  • updateText(text): Функция*. Поддерживает параметры для команд.

Thermostat set point [Значение термостата]

  • setPoint: Число.
  • updateSetPoint(setPoint): Функция. Поддерживает параметры для команд.

UV sensor [УФ-датчик]

  • uv: Число. УФ-индекс.
  • updateUV(uv): Функция. УФ-индекс. Поддерживает параметры для команд.

Visibility [Видимость]

  • visibility: Число. В км.
  • updateVisibility(distance): Функция*. В км. Поддерживает параметры для команд.

Voltage [Напряжение]

  • voltage: Число.
  • updateVoltage(voltage): Функция*. Поддерживает параметры для команд.

Waterflow [Водный поток]

  • flow: Число. В Л/м.
  • updateWaterflow(flow): Функция*. В Л/м. Поддерживает параметры для команд.

Wind [Ветер]

  • chill: Число.
  • direction: Число. Градусы.
  • directionString: Строка. Форматированное направление ветра, такое как N, SE.
  • gust: Число.
  • temperature: Число.
  • speed: Число.
  • updateWind(bearing, direction, speed, gust, temperature, chill): Функция. В градусах, направление в N, S, NNW и т. д., Скорость в м / с, порыв в м / с, температура и охлаждение по Цельсию. Примечание: температура должна быть в градусах Цельсия. Используйте domoticz.toCelsius() для преобразования температуры Фаренгейта в Цельсий. Поддерживает параметры для команд.

Zone heating [Обогрев зон]

  • setPoint: Число.
  • heatingMode: Строка.

Z-Wave Thermostat mode [Режим термостата Z-Wave]

  • mode: Число. Номер текущего режима.
  • modeString: Строка. Название режима.
  • modes: Таблица. Перечисляет все доступные режимы.
  • updateMode(modeString): Функция. Устанавливает новый режим. Поддерживает параметры для команд.

 

Денис Лунин

Радиоинженер, техно-гик. Есть опыт разработчика.

Оцените автора
( Пока оценок нет )
Добавить комментарий

"Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности

  1. Рашид

    Добрый день.
    Не получается правильно установить атрибут к датчику открытия двери xiaomi для получения статуса «Открыто» или «Закрыто» в dzVents. Проверочный сценарий не работает:
    return {
    on = {
    devices = {
    ‘Дверь’
    }
    },
    execute = function(domoticz, triggeredItem)
    local VikluchP = domoticz.devices(‘Vikluch_polka’)
    local Door_dr = domoticz.devices(‘Дверь’)
    if (Door_dr.state == «On») then
    VikluchP.switchOn()
    end
    if (Door_dr.state == «Off») then
    VikluchP.switchOff().afterSec (5)
    end
    end
    }
    При замене на Door_dr.active срабатывает на закрытую дверь. Мне нужно фиксировать статус как на «Открыто», так на «Закрыто».
    Вариант Door_dr.state == «Open» и Door_dr.state == «Closed» также не работает.
    При этом, если создать сценарий в Blockly с проверкой на «Open» и «Closed», то срабатывает.
    Как правильно установить атрибут? Промежуточный выход пока нашел c использованием lastUpdate.secondsAgo.
    Заранее спасибо.

    Ответить