Извиняюсь за свою “оперативность”. Не могу выделить время и добраться, на этой неделе постараюсь. Надо результат, т.к. rfsniffer мне кажется более перспективным.
Как я понял, rfsniffer - замена rfm69-linux. Так?
Я потихоньку правлю mqtt_devices.py для поддержки кнопок пультов noolite - изменение яркости, сценарии т.п. (сейчас поддерживается только включение/выключение?)
Проблема в том, что я ну совсем не из этой области, я .NET’чик
Поэтому реализация идет довольно медленно и кривовато.
Есть смысл дальше этим заниматься (когда есть время) или забить и ждать?
Спасибо!
Поставил. В /run/wb-homa-rfsniffer.log сообщения появляются.
например вот:
28/01 19:16:38 [2762] RF Received: nooLite:flip=1 cmd=2 addr=1a9f fmt=00 crc=10 __repeat=2 (parsed from 136 lirc_t). RSSI=-86 (-100)
28/01 19:16:39 [2762] RF Received: nooLite:flip=0 cmd=0 addr=1a9f fmt=00 crc=7c __repeat=2 (parsed from 141 lirc_t). RSSI=-84 (-100)
28/01 19:16:39 [2762] RF Received: nooLite:flip=1 cmd=2 addr=1a9f fmt=00 crc=10 __repeat=2 (parsed from 157 lirc_t). RSSI=-89 (-100)
или вот, другой пульт:
28/01 19:21:29 [2762] RF Received: nooLite:flip=0 cmd=4 addr=e19e fmt=00 crc=8d __repeat=2 (parsed from 151 lirc_t). RSSI=-65 (-100) 28/01 19:21:41 [2762] RF Received: nooLite:flip=1 cmd=4 addr=e19e fmt=00 crc=91 __repeat=2 (parsed from 142 lirc_t). RSSI=-68 (-100) 28/01 19:21:47 [2762] RF Received: nooLite:cmd=60 b0=3c type=1 addr=c33c fmt=01 crc=4a (parsed from 132 lirc_t). RSSI=-61 (-100) 28/01 19:21:47 [2762] Msg from nooLite cmd=60 b0=3c type=1 addr=c33c fmt=01 crc=4a
но в MQTT никаких изменений нет.
единственное исключение - датчик движения, он появился с параметром control = There is a movement
noolite_rx_0x1b1c There is a movement alarm (ro) /devices/noolite_rx_0x1b1c/controls/There is a movement 1
Open log file /run/wb-homa-rfsniffer.log 28/01 18:57:21 [31203] ************************************** started ********************************************** 28/01 18:57:21 [31203] Using SPI device /dev/spidev32766.0, lirc device /dev/lirc0, mqtt on localhost 28/01 18:57:21 [31203] Error opening device /dev/lirc0 28/01 18:57:21 [31203] Candidate is: /dev/lircd 28/01 18:57:21 [31203] Candidate is: /dev/lirc1 28/01 18:57:21 [31203] Candidate is: /dev/lirc0
unknown_devices_politics - не трогал, стоит show; use_devices_list = false
если я правильно понимаю ваши картинки, то у меня WB 5.6
Подскажите, в какую сторону копать?
Еще один баг. Кнопку можно нажать быстро - тогда в логах появляется сообщение типа
28/01 21:17:00 [5461] RF Received: nooLite:flip=0 cmd=4 addr=ab91 fmt=00 crc=ae __repeat=2 (parsed from 142 lirc_t). RSSI=-84 (-100)
а можно держать долго, тогда будет пара сообщений при нажатии, и еще несколько при отпускании.
Если держать кнопку не очень долго, скажем так треть секунды, тогда в логе появляется две-три записи:
28/01 21:10:44 [5461] RF Received: nooLite:flip=0 cmd=4 addr=ab91 fmt=00 crc=ae __repeat=2 (parsed from 134 lirc_t). RSSI=-85 (-100)
28/01 21:10:44 [5461] Msg from nooLite flip=0 cmd=4 addr=ab91 fmt=00 crc=ae __repeat=2
или вот:
28/01 21:12:12 [5461] RF Received: nooLite:flip=1 cmd=4 addr=ab91 fmt=00 crc=b2 __repeat=2 (parsed from 130 lirc_t). RSSI=-99 (-100)
28/01 21:12:12 [5461] RF Received: nooLite:flip=1 cmd=4 addr=ab91 fmt=00 crc=b2 __repeat=2 (parsed from 56 lirc_t). RSSI=-99 (-100)
28/01 21:12:12 [5461] Msg from nooLite flip=1 cmd=4 addr=ab91 fmt=00 crc=b2 __repeat=2
реакция удивительна: в MQTT появляется топик
noolite_rx_0xab91 There is a movement /devices/noolite_rx_0xab91/controls/There is a movement 0
когда появляется значение 1, а когда 0 я пока не понял. В любом случае, я нажимаю кнопку это не датчик движения. Баг легко повторяется с разными пультами.
Тем не менее устройства как кнопки в MQTT не появляются.
P.S. Я тут новенький, не все традиции знаю. Может нужно баг-репорты оформлять отдельными топиками?
Нажатия кнопки посылают сообщения привязки и отвязки. Они принимаются, но никак не обрабатываются, это так и должно быть. В mqtt отправляются только сообщения с полезной информацией.
Возможно у вас датчик, который еще не не поддерживается. (cmd=60 - такого я еще не видел).
Я обновил файл пакета.
Там же описано как делать дамп приходящих пакетов.
Поэтому если есть проблемы именно с информационными пакетами, скиньте, пожалуйста, дамп (и название соответствующего устройства тоже).
Будет очень круто, если на каждый случай будет файлик-два, описание случая и название устройства.
Обновился.
Под кнопками я имел ввиду внешние кнопки для пультов к которым их можно подключить. В моем случае это PK311
Не знаю поменялась ли логика, или я ночью не совсем правильно описал как повторить баг.
В общем сейчас так: нажимаем кнопку 2-3 раза. Обычно хватает 2 нажатия меньше чем за секунду, логику не пойму до конца, вроде как первый раз нужно чуть дольше держать, а второй раз - очень кратко. Не глядя в MQTT сложно сказать получилось ли повторить этот баг или нет, но *.rcf в архив приложил.
https://dl.dropboxusercontent.com/u/61728590/Wb_2017_01_29.zip
Устройства достаточно старые им примерно 2 года.
Пульт PK311 (+внешняя механическая кнопка) адрес ab91,
адрес 1a9f - это сенсорный пульт PU212-1 (нажимал кнопку включения/увеличения яркости)
Исправлено ошибочное распознавание как датчика движения. Реакция на кнопку теперь должна быть адекватной. (контрол state со значениями 0, 1, меняется по нажатию кнопки).
Кстати, если у вас есть другие устройства, я был бы благодарен за дампы их сигналов и описания того, что должно происходить, это очень бы помогло в тестировании и избегании таких глупых ошибок, как определение кнопки датчиком движения).
Вечер добрый.
Спасибо за оперативность.
Вот еще немного логов https://dl.dropboxusercontent.com/u/61728590/Wb_2017_01_30.zip
Действия были такие:
пульт PU212-1, адрес 0x1a9f (две кнопки), адрес 0x1a9e (одна кнопка, вызов сценария)
- долгое нажатие на кнопки увеличения/уменьшения яркости - нужно рулить диммером. Как я понимаю вначале идет команда 1 или 3 (вверх или вниз), при отпускании команда 10.
- короткое и долгое нажатие на кнопку сценария. По идее ноолайтовые устройства должны учитывать сценарии, но нам проще - для этой команды - LoadPreset = 7 по идее нужен просто switch. Ну или на крайний случай pushbutton (но тогда придется самому делать из нее switch в жаваскрипте)
пульт PU312-1, адреса 0x0840, 0x0841, 0x0842 - по одной кнопке вызова сценария (команда 7).
видимо долгое нажатие на кнопки вызова сценария никак не отследить, жаль, ну пусть хоть обычными выключателями поработают.
еще есть PU111-1, но там вроде ничего интересного, один канал всего.
забыл еще уточнить. название MQTT топика содержит “State”, в rfsniffer с заглавной буквы, раньше было с маленькой. javaScript регистрозависимый. предлагаю сделать “State” как везде, с маленькой буквы, чтобы не приходилось гадать - где как.
Простите, что вмешиваюсь в разговор, но, насколько я вижу, вы как раз поддерживаете работу с беспроводными устройствами 433mhz. Можно ли вас попросить обратить внимание на вот эту ветку Подключение датчиков Oregon 433 mhz. Никакого внятного совета, к сожалению, не дождался
Если коротко , то у меня сохраняется проблема с работой датчика oregon thn132n. Подскажите, пожалуйста, куда и как копать?
Прошу прощения за оффтопик.
Вот попробуйте rfsniffer, который в этой ветке обсуждается.
так уже пробовал, самое интересное, что периодически ( собственно как и должно быть) вижу:
24/01 15:32:48 [16050] RF Recieved: Oregon:type=EC40 id=58 ch=1 t=-8.9. RSSI=-105 (-105)
24/01 15:32:48 [16050] Msg from Oregon type=EC40 id=58 ch=1 t=-8.9
24/01 15:33:27 [16050] RF Recieved: Oregon:type=EC40 id=58 ch=1 t=-8.9. RSSI=-105 (-105)
24/01 15:33:27 [16050] Msg from Oregon type=EC40 id=58 ch=1 t=-8.9
Но это неправдивые данные! ( метеостанция видит совершенно другую температуру)
Вот выше коллега написал, что нужно сделать в таком случае, чтобы мы могли разобраться:
Здравствуйте.
Пытаюсь установить rfsniffer
root@wirenboard-#: dpkg -i wb-homa-rfsniffer_1.0.4-2_armel.deb
Получаю
dpkg: regarding wb-homa-rfsniffer_1.0.4-2_armel.deb containing wb-homa-rfsniffer:
wb-homa-rfsniffer conflicts with wb-homa-ism-radio
wb-homa-ism-radio (version 1.17.1) is present and installed.
dpkg: error processing wb-homa-rfsniffer_1.0.4-2_armel.deb (–install):
conflicting packages - not installing wb-homa-rfsniffer
Errors were encountered while processing:
wb-homa-rfsniffer_1.0.4-2_armel.deb
Т.Е. насколько я понимаю мне необходимо удалить пакет wb-homa-ism-radio?
Да, все правильно. Эти пакеты логически не совместимы. Если хотите запускать rfsniffer без удаления ism-radio, то это можно сделать вручную: wb-homa-rfsniffer -c wb-homa-rfsniffer.conf
(предварительно остановив сервис ism-radio). Файлы можно получить распаковав пакет.
Решил тоже попробовать и посмотреть. Сразу после установки заметил что rfsniffer сильно грузит процессор. По snmp до 100, top:
Как-то оно сильно подозрительно… пока остановил сей новый сервис без дальнейших действий.
И еще вопрос: с помощью rfsniffer реально использовать китайский радиобрелок на 433 мгц? C ism-radio видел приходящие с него пакеты, но толку от этого не было. Если и с rfsniffer прогнозируется такой же результат, то просто забуду про эту тему, поскольку кроме брелка я не планирую использовать что-либо радиоканальное на 433.
Странно. У меня эпизодически по top’у использование процессора у rfsniffer подскакивает до 20%, а обычно его не видно вообще.
Да, но это потребует некоторых усилий.
- Нужен дамп для каждой из кнопок. Юрий выше писал, как его сделать
- Нужно сделать декодер для брелка. Тут вариантов 3: сделать самому (исходники доступны), попросить команду Wirenboard, могу сделать я (если будут дампы и нет подвоха с кодировкой).
И да, точно работают брелки:
Возможно сильно загаженый эфир. Ради интереса посмотрел у себя - в простое меньше 1%, если быстро нажимать кнопки на 3х пультах сразу - подскакивает до 20-25, один раз видел 29%.
Думаю проверить эту версию очень просто - отключите антенну, нагрузка должна упасть.
Приболел вчера. Сегодня попробовал еще раз. Удалил пакет и поставил заново. Подождал минут 5. С загрузкой все то же самое. Видно, что rfsniffer отжирает процессор ровно на ту долю, чтобы загрузить его полностью. Эфир не загажен, с ism-radio такого не было. Если есть мысли как провести диагностику - пишите, сделаю. Никаких настроек я не делал, может надо что-то делать? Перед установкой удалил из mqtt все пульты noolight и wb-homa-rcd. Пока этот вопрос не решен, говорить о дампах преждевременно.
Теперь о пультах… Можно глянуть ТУТ. У меня есть пульты на чипе HCS301. Используются давно вместе с приемником-декодером, подключенным к дискретным входам. Управляет сигнализацией. Как я понимаю, их использовать нереально, там плавающий код, раньше искал - вроде никому не удалось его вскрыть. Есть еще пульт на чипе EV1527, взял для пробы в надежде что его удастся привязать в WB. Вот с ним может и можно что-то сделать, но я пока не понимаю как.