일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 배당
- 해외주식
- Python
- 애플
- 파이썬
- 나스닥
- 공모주
- 현대통신
- homebridge
- esp32
- 티스토리챌린지
- matter
- 코스피
- MQTT
- ConnectedHomeIP
- 국내주식
- 오블완
- Apple
- Espressif
- Bestin
- cluster
- 미국주식
- Home Assistant
- 매터
- 홈네트워크
- raspberry pi
- RS-485
- 월패드
- SK텔레콤
- 힐스테이트 광교산
- Today
- Total
목록홈네트워크(IoT)/광교아이파크 (42)
YOGYUI
[5] 마무리 거실, 침실, 컴퓨터방 모두 적절하게 액세서리 추가 { "accessory": "Thermostat", "name": "Living room thermostat", "apiroute": "http://localhost:9999/heat/room1", "temperatureDisplayUnits": 0, "currentRelativeHumidity": false, "heatOnly": true, "maxTemp": 40, "minTemp": 5, "minStep": 0.5, "listener": true, "port": 12345, "manufacturer": "Bestin", "serial": "yogyui thermostat", "model": "Bestin", "pollInterval"..
[4] Homebridge plug-in 설정 플러그인 키워드 thermostat으로 검색해보니 대다수 플러그인들은 Nest나 Honeywell같은 IoT 제품군들과 연계하여 사용해야 하는 것들이다 좀 더 찾아보니 @tommrodrigues가 업로드한 homebridge-web-thermostat가 HTTP기반 제어가 가능해 선택! https://github.com/Tommrodrigues/homebridge-web-thermostat#readme Tommrodrigues/homebridge-web-thermostat Homebridge plugin for a web-based thermostat. Contribute to Tommrodrigues/homebridge-web-thermostat devel..
[3] 서버 구현하기 기존에 구현해둔 Flask 서버 코드에 난방 관련 코드를 추가하자 아직 어떤 homebridge plug-in을 쓸지 결정하지 않았으므로 뼈대만 구축해둔다 RoomInfo 클래스에 난방 관련 (On/Off, 현재 온도, 설정 온도) 속성 추가 Serial 통신 객체 추가 Serial Packet Parsing (난방 관련) 구문 추가 # app.py import os import sys import time import queue import requests from typing import List from flask import Flask, request, json, render_template from common import RoomInfo from Serial485.Seri..
[2] 온도 설정 패킷 모으기 조명과 마찬가지로, 온도 설정 패킷 전송 시 최후 바이트가 '모종의 규칙'을 따르지 않으면 정상적으로 동작하지 않았다 규칙 판단은 나중으로 미루고 일단은 모든 온도 설정값에 대한 명령 패킷을 모아놓기로 한다 (5℃ ~ 40℃ 까지 0.5℃ 간격이므로 각 방별로 71개씩 모으면 된...다...) 더보기 [거실 난방 온도 설정 패킷 모음] 02 28 0E 12 FE 01 00 05 00 00 00 00 00 D0 02 28 0E 12 11 01 00 45 00 00 00 00 00 69 02 28 0E 12 42 01 00 06 00 00 00 00 00 83 02 28 0E 12 5F 01 00 46 00 00 00 00 00 30 02 28 0E 12 70 01 00 07 ..
[1] Prepare 난방, 환기, 가스 관련 통신 케이블은 홈네트워크 게이트웨이 터미널의 "CTRL RS-485"에 연결되어 있다 혹시나싶어 조명 쪽 RS-485와 함께 묶어서 읽어보니 바이트스트림이 뒤섞여서 도저히 파싱할 수 없게 되었다 결국 RS485 to USB 컨버터를 하나 더 구매해서 라즈베리파이에 추가 연결! 바이트스트림을 제대로 후킹하는지 확인한 후, 조명 제어 때와 같이 거실의 중앙 월패드 이리저리 조작하면서 패킷 파싱 조명 개발 때와 마찬가지로 바이트스트림 패턴 분석 시도 02 28 15 A1 C3 10 22 03 02 17 00 CC 02 17 00 D0 02 54 00 C8 E5 02 28 07 11 C4 02 F9 02 28 10 91 C4 02 02 17 00 D0 00 25 0..
[7] 최종 구현 결과 앞서 구현한 결과를 토대로 주방 조명 4개, 안방(침실) 조명 2개, 작은방(컴퓨터방) 조명 2개 모두 http-switch 액세서리로 등록한 후 display name을 적절하게 변경 Home 앱에서 스위치들을 각각 알맞는 방에 배정 스위치 모두 제대로 작동하고, Siri로 제어 가능한 것도 확인! (애플워치로도 시리 접근 가능하니 굉장히 편하다) 최소 비용으로 집안 조명을 모바일 기기랑 연동해서 제어할 수 있게 만들었다!!! (분양받은 아파트로 이사가면 아예 모든 기기를 처음부터 Homekit이랑 연동할 수 있게 대공사할 계획) 지금까지 구현한 시스템의 schematic은 다음과 같다 구현 코드는 다음과 같다 (Git 업로드는 상황봐서 할 예정) 객체지향 코딩을 하긴 했는데 허..
[6] Notification Server 도입하기 외부에서 조명을 제어했을 경우 (ex: 사용자가 월패드로 제어) switch status는 url 호출 전까지 갱신되지 않는 문제가 있다 config.json 스위치 액세서리의 pullInterval 속성을 변경해서 자주 갱신해도 되지만 (클라이언트가 나 혼자니깐!), 빠른 응답속도 및 서버 부하를 고려해서 Notification Server를 도입하도록 하자 앞서 설치한 homebridge-http-switch 플러그인의 개발자(@supereg)가 만든 homebridge-http-notification-server 플러그인을 설치해주자 https://github.com/Supereg/homebridge-http-notification-server#r..
[5] Homebridge 연동 Homekit에서 커스텀 악세서리 다루고자할 때 최고의 솔루션은 Homebridge라고 생각한다 https://homebridge.io/ Homebridge Homebridge adds HomeKit support to your non-HomeKit smart home devices. homebridge.io 왠만한 스위치류 및 센서류 제어랑 관련된 기능은 입맛에 맞는 플러그인 검색해서 깔고 configuration만 잘 해주면 된다 보통 집안 조명 제어는 dimmer 계열 월패드나 스위치 모듈을 따로 사서 장착하는 경우가 많은데, 나는 기존 홈네트워크 시스템 HW는 최대한 건드리지 않는 방향으로 방향을 잡았기 때문에 (전세다...) 기존 기능, 즉 형광등 끄기/켜기만 되..
[4] HTTP 서버 구축 테스트 라즈베리파이에 연결된 RS-485 to USB 디바이스를 외부에서 접근 가능하게 하는 여러 방법 중 가장 보편적인 방법은 HTTP 서버를 구축하는 것이라고 생각했다 (외부에서 인터넷을 통한 접근, 궁극적으로는 아이폰/아이패드 활용) JAVA, Node.js, 혹은 Python Flask, Python Django 등 다양한 프레임워크로 서버 구축을 해보았는데, 경험상 빠른 프로토타이핑에는 Flask가 제일 좋아 보여 선택했다 (시리얼 통신 프로토타이핑을 파이썬으로 하는 바람에...) 추후 안정성이나 사용자 인증같은 부가기능을 사용하기 위해 Node로 교체할 지 여부는 TODO로 남겨놓기로 한다 https://flask.palletsprojects.com/en/1.1.x/..
[3] RS-485 Signal Hooking 최신버전 라즈비안 깔아두면 FT232 계열은 드라이버 별도로 설치하지 않아도 장치가 잘 인식된다 pyserial 패키지 이용해서 우선 어떤 패킷이 RS-485 통신 라인에 실리는지 후킹해보자 pip3 install pyserial # Test.py # 1. 일단 신호 들어오는지나 보자 import serial recv_cnt = 0 max_recv = 200 ser = serial.Serial() ser.port = '/dev/ttyUSB0' ser.baudrate = 9600 ser.open() while True: if ser.in_waiting > 0: recv = ser.read(ser.in_waiting) print(' '.join(['{:02X}'..
[2] Prepare 터미널 상단에는 두 개의 RS-485 포트가 두 개 있고 체결된 케이블 라벨은 다음과 같다 PCB 실크 결선 수 케이블 라벨 ENERGY 485(A/B) 3 EM, CM, ?? (라벨없음...) CTRL 485(A/B) 3 난방, 가스, 환기 EM, CM이 뭘 뜻하는지도 모르겠고, 케이블 하나는 라벨도 없지만 왠지 ENERGY 쪽 485가 조명일 거 같은 느낌이 들었다 (사실은 다른 쪽 먼저 시도해보고 아닌 걸 깨달은거지만) 485 신호를 hooking해보자 [준비물] RS-485 to USB Converter 엘xx츠나 디xxxx트같은 쇼핑 사이트에서 RS-485 to USB 검색하면 제품들 많이 나온다 FT232 계열 USB 신호변환 칩 달린 놈으로 골라봤다 (CP210x 계열은..
[1] Introduction 2020년 2월경 이사온 오피스텔은 아주 기초적인 수준의 홈네트워크가 구축되어 있음 브랜드 이름은 "Bestin" 현대산업개발(아이파크 시공사) 계열사인 HDC아이콘트롤스가 개발한 자체 홈네트워크 시스템같음 거실 벽면에 붙은 월패드로 이것저것 제어가 가능하다 (전력, 온수, 난방 실시간 사용량 및 월간 누적 사용량 모니터링도 가능) 제어 영역 정리해보면 다음과 같다 카테고리 방 제어 조명 거실, 안방, 주방, 작은방 끄기, 켜기 난방 거실, 안방, 작은방 끄기, 켜기, 온도 설정, 시간 예약 도어락 현관 열기 (닫기 안됨) 환기 다용도실 끄기, 켜기, 풍량 조절, 시간 예약 가스 주방 닫기 (열기 안됨) 엘리베이터 호출, 현재 층수 확인, 도착 시 알림 (매뉴얼 보면 주차장..