Драйвер wb-homa-gpio получает необходимые параметры для запуска с файла /etc/wb-homa-gpio.conf, в этом файле должны находиться описания GPIO, с которыми драйвер должен работать. Примеры конфигурационных файлов находятся в папке /usr/share/wb-homa-gpio/. Конфигурационный файл построен по двухуровневой схеме :
{
// отображаемое имя устройства. Публикуется как
// .../meta/name в MQTT
"device_name" : "GPIO DEVICES",
"channels" : [
]
}
Описание одного канала соответствует описанию отдельного Gpio. Параметры, которые описывают Gpio, ниже в примерах:
{
"device_name" : "GPIO DEVICES",
"channels" : [
// канал, в котором не указан direction, по умолчанию работает на выход
{
// name значение которое передается в MQTT в примере ../controls/FET_1
"name" : "FET_1",
// номер Gpio, который описывает данный канал
"gpio" : 22,
// параметр inverted задает инвертированный канал или нет
"inverted" : false
}
//также gpio могут работать на вход и считывать изменения напряжения с клеммника
{
"name" : "D1_IN",
"gpio" : 36,
"inverted" : false,
//для этого указать direction input
"direction" : "input"
// rising прерывания по восходящему фронту, falling по нисходящему,
//both по обоим фронтам, для GPIO с незаданным type по умолчанию устанавливается both
//для счетчиков определяется автоматически, если не указан.
"edge" : "falling"
}
//для работы с счетчиком электроэнергии
{
"name" : "D3_IN",
"gpio" : 38,
"direction" : "input",
"inverted" : false,
// type указывает что gpio описывает счетчик электроэнергии
"type" : "watt_meter",
//множитель для расчета, количество импульсов на kWh
"multiplier" : 1000
},
//для работы с счетчиком воды
{
"name" : "D3_IN",
"gpio" : 38,
"direction" : "input",
"inverted" : false,
// type указывает что gpio описывает счетчик воды
"type" : "water_meter",
//множитель для расчета, количество импульсов на м^3
"multiplier" : 100,
//число знаков после запятой в текущем потреблении (воды, электричества, etc)
"decimal_points_current" : 2,
//число знаков после запятой в полном потреблении (воды, электричества, etc)
"decimal_points_total" : 3,
}
]
}