스마트 홈/esp32

하우스 개폐기 완료

다자바무커 2022. 1. 8. 19:32
반응형

드디어 나의 아름다운 코드를 업로드 하고

아버지 비닐하우스 개폐기를 폰으로 관리할 수 있게 되었다.

 


사실 코드만 작성해두고 며칠이나 지난 뒤 오늘 갑자기 출발하게 되었다.

그래서 걱정이 쬐끔 있었는데 그래도 뭐 나의 코드는 완벽하니까 쉬울것 같아서 

내 맥북, 맥북 충전기(요즘 맥이 배터리가 용량이 줄어 빨리 줄어든다), 마이크로 5핀 케이블, USB-A to C 젠더 피복 벗기개, 니퍼만 들고 반성(아빠 농장)으로 갔다.


도착 하자마자 코드를 업로드 하고

홈어시스턴트로 실행!!!

.

.

.

했지만 어뎁터 선이 모터드라이브에서 빠져 있었다.

여기서 시간 조금 잡아먹음 ㅋㅋㅋ

.

.

.

전기 공급 시간을 조절한 뒤 개폐기를 열고 닫고 멈추고는 잘 작동했다.

그래도 혹시모를 상황에 대비하여 개폐기 모터의 리미트를 조정하는데 시간이 걸렸다.

.

.

.

이후에 아빠가 새로운 생길 수 있는 문제를 알려 주셨는데...

바로 정전일 경우였다...

.

.

.

!!!!!!!!!!

 

사아실 
문제1.
문제가 되지 않을 거라 생각했던 부분인데 
전기가 공급되면 
이 친구가 홈어시턴트 서버에 연결되고 나서 100을 입력받아 무조건 열림이 된다.
그런데 이게 전기 공급되는 그 부분을 닫힘으로 정하게 되고 그러면 열리는 정도를 벗어나게 된다.
그래서 내가 모터의 리미트를 믿고 코드를 작성한 거여서 매우 매우 당황스러운 일이 발생한거다.
문제2.
그리고 열리다 멈출 때에는 그 값이 홈어시스턴트로 잘 넘어가서 문제가 없는데
닫히는 도중에 멈춤을 누르면 값이 홈어시스턴트로 안넘어가 얼마나 열렸는지 알 방법이 없어 코드를 수정했다.

문제2부터 다루면

멈추는 부분에서 생긴 문제이니까 이 부분을 보고 고민을 해보니 preTime이 setTime보다 크더라도 Time1은 양수라 줄어든 정도를 preTime에서 빼주어야하는데 더해주어서 값이 너무 크게 나와 계속 열림으로 표시되는 문제였다.

 

그래서 구분지어서 더하고 빼주게 만들었더니 해결되었다.

 

문제1.

문제1은 아두이노(Esp32)의 코드에서 생기는 문제라기 보다는 홈어시스턴트(Home Assistant)의 MQTT서버에서 서버에 연결되었을 때에 값을 계속 보내주는게 문제이기 때문에 qos를 조절하여 보아도 해결되지 않아 구글링을 하여 찾아보니

https://community.home-assistant.io/t/mqtt-to-retain-or-not-to-retain/64547

 

MQTT: To Retain, or Not To Retain?

Hello beautiful people!! I think I understand what retain does, but maybe I don’t since I’ve read a lot of people “fixing” problems by turning off retain: true. Here’s my (mis)understanding/desire: If a sensor publishes a message and includes the

community.home-assistant.io

retaindmf 사용하라고 나와있었다. 내가 사용한 MQTT Cover 사이트에 접속해보니

https://www.home-assistant.io/integrations/cover.mqtt/

 

MQTT Cover

Instructions on how to integrate MQTT covers into Home Assistant.

www.home-assistant.io

retain의 기본 값이 false였다. 그래서

retain: true를 추가하고 configuration.yaml을 저장하고 홈어시스턴트(Home Assistant)를 재부팅하였다.

 이제는 정전처럼 전기 코드를 뺏다 껴도 무조건 열리지 않고 멈추게 되었다.

아주 잘 작동한다 ㅋ

 

 

 

 

반응형