Шаблон для WB-MWAC v.2 работает некорректно, вернее не так как работает по умолчанию в самом WB. Например кнопка S6 - включает режим “Влажная уборка” и сигнал от датчиков протечки игнорируется. В Спруте он как датчик протечки идет, а не кнопка! А я прикрепил к этому выходу кнопку! Если включить режим “Влажная уборка” физически или в самом WB, то тревога/сигнализация о протечке игнорируется в WB (как и должно быть), а в Спруте она срабатывает, так как Cпрут не понимает, что включена функция “Влажная уборка”. Вообщем, хотелось бы, чтобы шаблон соответствовал настройкам WB по умолчанию.
Так написал GPT
{
"manufacturer": "Wiren Board",
"model": "WB-MWAC v.2",
"name": "Защита от протечки",
"catalogId": 4983,
"services": [
{
"name": "Кран 1",
"type": "Valve",
"characteristics": [
{
"type": "Active",
"link": {
"type": "Integer",
"topicSearch": "/devices/(wb-mwac-v2_[0-9]{1,3})/controls/Output K1/meta",
"topicGet": "/devices/(1)/controls/Output K1",
"topicSet": "/devices/(1)/controls/Output K1/on"
}
}
]
},
{
"name": "Кран 2",
"type": "Valve",
"characteristics": [
{
"type": "Active",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/Output K2",
"topicSet": "/devices/(1)/controls/Output K2/on"
}
}
]
},
{
"name": "Режим: протечка",
"type": "Switch",
"characteristics": [
{
"type": "On",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/Leakage Mode",
"topicSet": "/devices/(1)/controls/Leakage Mode/on"
}
}
]
},
{
"name": "Режим: влажная уборка",
"type": "Switch",
"characteristics": [
{
"type": "On",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/Cleaning Mode",
"topicSet": "/devices/(1)/controls/Cleaning Mode/on"
}
}
]
},
{
"name": "Счётчик 1",
"visible": false,
"type": "C_WaterMeter",
"characteristics": [
{
"type": "C_CubicMeter",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/P1 Volume"
}
}
]
},
{
"name": "Счётчик 2",
"visible": false,
"type": "C_WaterMeter",
"characteristics": [
{
"type": "C_CubicMeter",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/P2 Volume"
}
}
]
}
]
},
{
"manufacturer": "Wiren Board",
"model": "WB-MWAC v.2",
"name": "Дискретный вход",
"services": [
{
"name": "Состояние входа",
"type": "ContactSensor",
"characteristics": [
{
"type": "ContactSensorState",
"link": {
"type": "Integer",
"topicSearch": "/devices/(wb-mwac-v2_[0-9]{1,3})/controls/(Input [a-zA-Z][0-9]) Single Press Counter/meta",
"topicGet": "/devices/(1)/controls/(2)"
}
}
]
},
{
"name": "Счётчик срабатываний входа",
"visible": false,
"type": "C_PulseMeter",
"characteristics": [
{
"type": "C_PulseCount",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/(2) Counter"
}
}
]
},
{
"name": "Счетчик коротких нажатий",
"visible": false,
"type": "C_PulseMeter",
"characteristics": [
{
"type": "C_PulseCount",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/(2) Single Press Counter"
}
}
]
},
{
"name": "Счетчик длинных нажатий",
"visible": false,
"type": "C_PulseMeter",
"characteristics": [
{
"type": "C_PulseCount",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/(2) Long Press Counter"
}
}
]
},
{
"name": "Счетчик двойных нажатий",
"visible": false,
"type": "C_PulseMeter",
"characteristics": [
{
"type": "C_PulseCount",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/(2) Double Press Counter"
}
}
]
},
{
"name": "Счетчик коротких, а затем длинных нажатий",
"visible": false,
"type": "C_PulseMeter",
"characteristics": [
{
"type": "C_PulseCount",
"link": {
"type": "Double",
"topicGet": "/devices/(1)/controls/(2) Shortlong Press Counter"
}
}
]
}
]
},
{
"manufacturer": "Wiren Board",
"model": "WB-MWAC v.2",
"name": "Кнопка S6",
"services": [
{
"name": "Кнопка S6",
"type": "StatelessProgrammableSwitch",
"characteristics": [
{
"type": "ProgrammableSwitchEvent",
"link": {
"type": "Integer",
"topicGet": "/devices/(1)/controls/Input S6"
}
```
Добрый день.
К сожалению не умею писать “шаблоны” под SprutHub - поэтому не могу проверить правильность предложенного.
У вас в таком виде работает успешно?
Я не проверял, жду ваших специалистов. Насколько я понял, такие шаблоны пишет сотрудник WirenBoard, а не SputHub. Потому и жду от него ответ. Аууу
Добрый день. Простите за долгий ответ.
Я подробнее посмотрю ваш запрос и отвечу вам.
Спасибо за обратную связь.
Нужны уточнения:
Что срабатывает в Спруте в данном случае? Покажите, например, скрином. Правильно ли я понимаю, что появление в топике /devices/wb-mwac-v2_XX/controls/Input S6
единицы вызывает какое-то действие в Спрутхабе минуя наш контроллер?
К сожалению, шаблон самого контроллера для данного модуля создает одинаковые топики что для датчика протечки, что для кнопки и подразумевается как вход.
Если настраивать по дефолту в шаблоне Спрута Вход S6
не датчиком протечки, то лучше будет использовать ContactSensor, а не StatelessProgrammableSwitch.
Пришлите диагностический архив.
“Если настраивать по дефолту в шаблоне Спрута Вход S6
не датчиком протечки, то лучше будет использовать ContactSensor, а не StatelessProgrammableSwitch.” Правильнее будет просто Switch.
" Правильно ли я понимаю, что появление в топике /devices/wb-mwac-v2_XX/controls/Input S6
единицы вызывает какое-то действие в Спрутхабе минуя наш контроллер?" а кто ввел input S6?
Можно поговорить с разработчиком шаблона?
Где в шаблоне Вы увидели для S6 ContactSensor или Switch?
там этот вход идет как LeakSensor!
"manufacturer": "Wiren Board",
"model": "WB-MWAC v.2",
"name": "Датчик протечки",
"services": [
{
"name": "Датчик протечки",
"type": "LeakSensor",
"characteristics": [
{
"type": "LeakDetected",
"link": {
"type": "Integer",
"topicSearch": "/devices/(wb-mwac-v2_[0-9]{1,3})/controls/(Input [a-zA-Z][0-9])/meta",
"topicGet": "/devices/(1)/controls/(2)"
}
}
]
Опишите подробнее вашу проблему. Сейчас мне до конца не ясно: есть проблема по поведению нашего модуля или вопрос только в шаблоне и отображаемых абстракциях?
Это топик создаваемый нашим шаблоном. В шаблоне все входа это Input’ы. В нашем веб-интерфейсе это все представлено входами.
В данном шаблоне для Спрута есть ContactSensor. И есть LeakSensor.
Повторюсь, по топикам нет возможности однозначно определить - настроен модуль на датчик протечки или как кнопка.
Это можно разграничить только если включить опрос “Счетчика коротких нажатий”, тогда в Спруте будет ContactSensor, а не LeakSensor.
Вы можете для Input S6 включить этот канал и данный вход уже будет не “датчиком протечки”.