Category (Click)
개발보드 덕질하기

Zigbee to MQTT (Z2M) 인터뷰 캐시 삭제

 차완기 - @2/26/2024, 2:26:00 PM
최근 nRF Connect SDK를 공부하며 간단한 Zigbee 디바이스를 만들어보고 있습니다.
코드를 조금씩 바꾸어 보면서 원하는 기능을 만들어가고 있는데요, 그러던 중 엄청난 삽질에 빠지게 되었습니다. 증상을 재현하자면 아래와 같습니다.

증상 재현

prj.conf 추가 (Zigbee 채널에 맞게)
nRF Connect SDK의 light_bulb 예제를 다운로드한 후 Z2M에 맞게 채널을 수정해 nRF52840 DK에 Flash합니다.
const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access; const definition = { zigbeeModel: ['Dimable_Light_v0.1'], model: 'nRF52840DK', vendor: 'Nordic', description: 'Nordic nRF52840DK, SDK V2.2.0, Light Bulb Sample - exposes', fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.ignore_basic_report, fz.temperature], toZigbee: [tz.light_onoff_brightness, tz.ignore_rate, tz.level_config], exposes: [e.light_brightness(), e.temperature()], // e.temperature().withEndpoint(12) }; module.exports = definition;
JavaScript
복사
그 후 Z2M에서 디바이스가 인식될 수 있도록 커스텀 디바이스를 추가합니다. 이 내용을 참고했습니다.
그렇게 하면 장치가 인식되는데요, 위와 같은 클러스터 구조를 가지게 됩니다.
main.c 수정
여기에서 Endpoint를 10에서 1로 변경하게 되면 아래와 같이 변하게 됩니다.
분명히 Endpoint 10은 없어야 하지만 그대로 남아있는게 보이죠.

해결 방법

장치를 삭제하고 재시작하면 깔끔하게 지워집니다.
ㅎㅎ..이렇게 간단했다니
다시 인터뷰를 진행해 클러스터 구조가 의도한 대로 돌아온 것을 확인할 수 있습니다.