Начнем с того что к модулю ESP8266 с прошивкой от WiFiOT для управления замком подключил датчик DS18B20 к GPIO 0 , схема подключения трехпроводная, питание от 3.3 в. модуля, хоть и пишут что датчик надо питать от 5в. он прекрасно работает и от 3.3 в , по крайней мере у меня.
В веб интерфейсе самого модуля необходимо настроить MQTT , GPIO, и 1Ware
Если все верно настроено и подключено то напротив окошка где вводится период будет надпись ОК. А на главной странице будет показано количество датчиков ds и их температура.
как настроить MQTT брокер расписано здесь.
Настраиваем NODE-Red:
Из раздела Input перетягиваем блок MQTT на наше поле, кликаем по нему, и нажимаем карандашик напротив поля Server, для настроек подключения к MQTT брокеру
Нажимаем Update, и приступаем к настройке самого блока нам нужен топик с сенсором. Модуль ESP отправляет сообщение в следующий топик email/hostname/sensors/xxx где emil - это логин или emal , который используется для доступа к MQTT брокеру(серверу), hostname - это имя модуля, настраивается на вкладке настроек Main
QoS это режим ожидания подтверждения доставки, в целом актуально если он одинаков и на PUB и на SUB, можно ставить 0.
Далее надо создать функцию для преобразования сообщения к формату блока HomeKit , для этого тянем блок function и в нем прописываем следующую строку:
msg.payload = {"CurrentTemperature":msg.payload}
return msg;
Далее тянем блок homekit выбираем уже настроенный мост (здесь говорилось как его настраивать)
В поле Service выбираем TemperatureService сохраняем. Устанавливаем связи:
Это пример моей конфигурации . Для импорта выбираем menu -->import -->clipboard и в окно вставляем указанный ниже код:
[{"id":"7123fb81.bad3f4","type":"mqtt in","z":"11d178c3.bf7937","name":"","topic":"home/ESP1/sensors/dsw1","qos":"2","datatype":"json","broker":"aa394a63.041648","x":131,"y":372,"wires":[["7271e5e1.2c803c"]]},{"id":"1f06a34d.ad415d","type":"homekit-service","z":"11d178c3.bf7937","isParent":true,"bridge":"b8bab0f7.dc328","parentService":"","name":"tempesp","serviceName":"TemperatureSensor","topic":"","filter":false,"manufacturer":"Zamotaev inc.","model":"zamok 1","serialNo":"1","characteristicProperties":"{\"StatusActive\":true}","x":589,"y":373,"wires":[[]],"info":"Try one of these: \nName, CurrentTemperature, StatusActive, \nStatusFault, StatusLowBattery, StatusTampered, Name"},{"id":"7271e5e1.2c803c","type":"function","z":"11d178c3.bf7937","name":"temp convert for home kit","func":"msg.payload = {\"CurrentTemperature\":msg.payload}\nreturn msg;","outputs":1,"noerr":0,"x":382,"y":373,"wires":[["1f06a34d.ad415d"]]},{"id":"aa394a63.041648","type":"mqtt-broker","z":"","name":"MyHome","broker":"192.168.1.50","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"b8bab0f7.dc328","type":"homekit-bridge","z":"","bridgeName":"Home","pinCode":"144-22-344","port":"","allowInsecureRequest":false,"manufacturer":"Zamotaev inc.","model":"MyHome","serialNo":"12345","customMdnsConfig":false,"mdnsMulticast":true,"mdnsInterface":"","mdnsPort":"","mdnsIp":"","mdnsTtl":"","mdnsLoopback":true,"mdnsReuseAddr":true}]
И еще один пример конфигурации для передачи температуры самой малинки в приложение "Дом":
[{"id":"ea56e8fa.1a8e88","type":"inject","z":"11d178c3.bf7937","name":"tic 5 minutes","topic":"tempC","payload":"","payloadType":"str","repeat":"300","crontab":"","once":false,"onceDelay":"","x":120,"y":389,"wires":[["2e800b3a.6b1174"]]},{"id":"2e800b3a.6b1174","type":"exec","z":"11d178c3.bf7937","command":"vcgencmd measure_temp","addpay":false,"append":"","useSpawn":"","timer":"","name":"read cpu temperature","x":313,"y":396,"wires":[["f7d6d266.08d0b"],[],[]]},{"id":"f7d6d266.08d0b","type":"function","z":"11d178c3.bf7937","name":"format temperature","func":"msg.payload = Number(msg.payload.slice(5,-3));\nmsg.payload = {\"CurrentTemperature\":msg.payload}\nreturn msg;","outputs":"1","noerr":0,"x":522,"y":390,"wires":[["82d65c12.83ebd"]]},{"id":"733f7c72.2cda84","type":"comment","z":"11d178c3.bf7937","name":"Read Raspberry Pi cpu temperature","info":"Reads the Raspberry Pi cpu temperature every 15 seconds, \nformats the data to tidy up the string and \nthen sends the data to the IBM Watson IOT platform\n\nAfter deploying the example, open the Watson IoT\nnode and click the link button to take you to the \nQuickstartdashboard for your flow.\n","x":159,"y":336,"wires":[]},{"id":"82d65c12.83ebd","type":"homekit-service","z":"11d178c3.bf7937","isParent":true,"bridge":"b8bab0f7.dc328","parentService":"","name":"temprpi","serviceName":"TemperatureSensor","topic":"","filter":false,"manufacturer":"Zamotaev inc.","model":"zamok 1","serialNo":"1","characteristicProperties":"{\"StatusActive\":true}","x":706,"y":382,"wires":[[]],"info":"Try one of these: \nName, CurrentTemperature, StatusActive, \nStatusFault, StatusLowBattery, StatusTampered, Name"},{"id":"b8bab0f7.dc328","type":"homekit-bridge","z":"","bridgeName":"Home","pinCode":"144-22-344","port":"","allowInsecureRequest":false,"manufacturer":"Zamotaev inc.","model":"MyHome","serialNo":"12345","customMdnsConfig":false,"mdnsMulticast":true,"mdnsInterface":"","mdnsPort":"","mdnsIp":"","mdnsTtl":"","mdnsLoopback":true,"mdnsReuseAddr":true}]