일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 현대통신
- 코스피
- 미국주식
- 나스닥
- 애플
- 공모주
- 국내주식
- Espressif
- 해외주식
- 매터
- matter
- 월패드
- 엔비디아
- 힐스테이트 광교산
- 티스토리챌린지
- Python
- Home Assistant
- 오블완
- Apple
- 배당
- esp32
- RS-485
- raspberry pi
- Bestin
- ConnectedHomeIP
- homebridge
- MQTT
- 라즈베리파이
- 홈네트워크
- Today
- Total
목록전체 글 (709)
YOGYUI

[2] Homebridge 연동 1. Homebridge Plug-in 설치 homebridge 플러그인 'valve' 키워드로 검색 후 @tommrodrigues의 homebridge-web-valve 플러그인 설치 (환기 때 사용한 web-fan 플러그인 개발자, API가 유사하여 선택) https://www.npmjs.com/package/homebridge-web-valve homebridge-web-valve Homebridge plugin for a web-based valve www.npmjs.com 환기와 유사하게 홈브릿지 액세서리 추가 { "accessory": "WebValve", "name": "Kitchen Gas Valve", "apiroute": "http://localhost:..

[1] Prepare 주방 가스레인지 옆 도시가스관을 보니 전자식 도시가스 개폐장치(신우전자, SV-20H)가 설치되어 있다 수동식 개폐기가 기존 가스관에 있어서 이중으로 차단...이 되고 있다 차단기 상단에 있는 컨트롤러에 연결되어 있는 flat cable을 쫓아가니 레이지 후드 상단 수납함에 있는 홈네트워크 통신 모듈 발견 모듈 이름은 '주거용주방자동소화장치(제어부,옥내용)'이고, 역시나 신우전자의 AFE-1020E 모델이다 (관련 링크) 모듈 아래에 소화제가 담긴 통이 있는걸보니, 화재 감지 시 자동으로 소화 기능이 동작하도록 설계된 것 같다 (테스트를 위해 불을 질러볼 수는 없으니...그냥 그런걸로) 역시나... 통신모듈의 프로토콜 명세서는 검색이 힘들었다 Home Network Gateway의 ..

[3] 동작 확인 Home App에 의한 환기 시스템 제어 외부 제어에 의한 상태 변경 시 갱신 풍량 설정 UX 반응 (3구간으로 나누어져서 각각 미풍, 약풍, 강풍에 대응) 조작해보니 풍량 조절 UX가 마음에 들지는 않는다. 버튼 형식으로 풍량 조절할 수 있는 플러그인이 있으면 갈아타야겠다 (애초에 0~100단계 지원되는 Fan 하드웨어가 있기는 한가? 실링팬?) 제조사 광고를 보면 24시간 풀가동하는게 집안 공기질을 위해 좋다고 한다 (소비전력 37W라 전기료도 얼마 안든다고 주장) 그런데 풍량을 미풍으로 설정해둬도 각 방마다 설치되어 있는 환기구가 작동할 때 약간의 저주파 진동음이 귀에 거슬릴 때가 있다 (특히 수면 시) 조금이나마 전기도 아낄겸, 집에 공기청정기도 빵빵하게 많이 돌아가고 있으니 야..

[2] Homebridge 설정 1. Homebridge 플러그인 설치 플러그인 검색 키워드로 ventilation/ventilate로 검색해보니 적당한 결과가 없어서 일반 선풍기처럼 사용하고자 Fan 키워드로 검색, @Tommorodrigues의 homebridge-web-fab 플러그인을 발견 https://github.com/Tommrodrigues/homebridge-web-fan Tommrodrigues/homebridge-web-fan Homebridge plugin for a web-based fan. Contribute to Tommrodrigues/homebridge-web-fan development by creating an account on GitHub. github.com (난방..

[1] Prepare 다용도실 천장에 설치된 환기장치 스티커 확대해보니 Bestin 제품 (아이파크 시공사 = HDC, Bestin = HDC아이콘트롤스 브랜드) 단지 내 홈네트워크 구축 위해 자체 제작하는 라인업이 있네 (아무래도 외부 업체 제품 사용하면 통신 프로토콜 변환 어댑터가 필요할테니) 제품 카테고리가 단순히 '환기' 장치가 아니라 '전열교환기'로 표기되어 있다 bestin.icontrols.co.kr/product/summary2_2.asp BESTIN 베스트인, 아이콘트롤스 bestin.icontrols.co.kr 전열교환기라는 단어 자체가 생소해서 검색 좀 해봤다 en.wikipedia.org/wiki/Energy_recovery_ventilation Energy recovery vent..

1. openweathermap.org 사이트 가입하기 https://home.openweathermap.org/users/sign_in Members Enter your email address and we will send you a link to reset your password. home.openweathermap.org 회원가입 시 사용한 이메일주소로 인증메일 오면 Verify 2. API Key 확인, 복사 API Key 값 메모장에 복사해두기 3. Homebridge plugin 설치 플러그인 이름: homebridge-weather-plus homebridge-weather-plus A comprehensive weather plugin for homekit with current obs..

[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는 최대한 건드리지 않는 방향으로 방향을 잡았기 때문에 (전세다...) 기존 기능, 즉 형광등 끄기/켜기만 되..
나중에 시간날때 Git에 올려야겠다... [Structure] ---- -------- Define.py -------- Threads.py -------- SerialComm.py # Define.py import datetime import threading def checkAgrumentType(obj, arg): if type(obj) == arg: return True if arg == object: return True if arg in obj.__class__.__bases__: return True return False class Callback(object): _args = None _callback = None def __init__(self, *args): self._args = a..