지금 내가 알아본 바로는, n8n을 활용한 미세먼지 알림 시스템이 정말 유용하답니다. 이 글에서는 n8n과 미세먼지 API를 통해 어떻게 간편하게 미세먼지 알림을 받을 수 있는지 자세히 알려드릴게요.
- n8n으로 나만의 알림봇 만들기
- 2. 현재 시간 확인 및 주중/주말 체크
- 오늘 날짜 및 데이터 수정하기
- 3. 데이터 변환 방법
- 4. 미세먼지 API에 맞춰 데이터 수정하기
- 미세먼지 데이터 요청하기
- 5. HTTP Request 발송
- 6. 필요한 데이터 필터링
- 미세먼지 상태 판단 및 알림 전송
- 7. 미세먼지 상태 판단하기
- 8. 데이터 정리 및 웹훅으로 전송
- 알림 시스템 결과 확인하기
- 자주 묻는 질문 (FAQ)
- HTTP 요청을 보낼 때 주의할 점은 무엇인가요?
- n8n 설정 후 알림이 오지 않는 경우, 어떻게 해결하나요?
- 미세먼지 API는 어떻게 발급하나요?
- 주말 알림을 끌 수 있는 방법은 무엇인가요?
- 함께보면 좋은글!
n8n으로 나만의 알림봇 만들기
제가 직접 n8n을 사용해를 만들면서 느낀 것은, 더 이상 매일 어플을 열고 미세먼지 수치를 확인할 필요가 없다는 점이에요. 이 알림봇은 자동으로 미세먼지 정보를 수집하고, 주중에는 알림을 보내주고 주말에는 알림을 생략해서 저를 보다 편하게 해준답니다.
- 2시간마다 알림 발송 설정
n8n의 기능을 활용해서 2시간마다 알림을 보내는 설정을 합니다. 크론탭으로 매일 특정한 시간에 동작하도록 설정할 수 있는데요, 매일 10시, 14시, 16시에 알림이 온다니 정말 편리하죠? 아래는 제가 설정한 크론탭 예시예요.
시간 설정 | 설명 |
---|---|
10시 | 매일 오전 10시에 알림 |
14시 | 매일 오후 2시에 알림 |
16시 | 매일 오후 4시에 알림 |
크론탭 설정이 처음이라면 Crontab.guru 웹사이트를 참고하면 도움이 많이 될 거예요.
2. 현재 시간 확인 및 주중/주말 체크
알림이 동작할 시점에 현재 시간을 가져오고, 주중인지 주말인지를 체크해봅니다. 유의할 점은, 주말에는 알림이 필요 없다는 거죠. Date & Time
노드를 사용하여 쉽게 현재 시각을 받아오고, 이를 기반으로 알림 여부를 결정해요.
javascript
// 현재 시간 가져오기
const currentTime = new Date();
// 필요한 조건에 따라 현재 요일 체크
const isWeekend = (currentTime.getDay() === 0 || currentTime.getDay() === 6);
이렇게 주말인지 아닌지 쉽게 확인할 수 있답니다.
오늘 날짜 및 데이터 수정하기
이 부분에서는 오늘 날짜를 확인하고 필요한 형태로 데이터를 변환하는 과정을 설명할게요. n8n에서 입력받은 데이터를 기반으로 우리가 원하는 날짜 형태로 변환할 수 있습니다.
3. 데이터 변환 방법
String
형태로 받아온 입력 데이터를 처리하여 “YYYYMMDD” 형식으로 변환해요. 이를 위해 아래와 같은 JS 코드를 사용했어요.
javascript
const currentDate = new Date($input.first().json.currentDate);
const formattedDate = currentDate.toISOString().slice(0,10).replace(/-/g,"");
이렇게 하면 YYYYMMDD 형식으로 확실히 변환이 가능해요.
4. 미세먼지 API에 맞춰 데이터 수정하기
각자 지역에 따라 미세먼지 API를 설정해야 하는데요. 저는 한국환경공단의 대기오염통계 API를 사용해요. API 설정 시, 특정 미세먼지 정보에 대한 요청이 가능하도록 파라미터 명을 잘 맞춰주셔야 해요.
미세먼지 데이터 요청하기
이제는 미세먼지 API에 HTTP 요청을 보내는 단계입니다. 적절한 파라미터로 요청을 보내면, 원하는 미세먼지 데이터를 반환받을 수 있습니다.
5. HTTP Request 발송
API에 잘 요청을 보낸 후, 아래와 같이 결과를 확인할 수 있어요. 특히, 동적으로 데이터가 잘 넘어오는지 체크하는 것이 중요하죠. 파라미터를 설정할 때는 API 가이드를 기반으로 설정해주시면 돼요.
javascript
const response = await axios.get(apiUrl, { params: apiParams });
HTTP 요청이 성공적으로 진행된다면, 응답에서 필요한 데이터만 필터링하여 추출할 수 있습니다.
6. 필요한 데이터 필터링
이 단계에서는 제가 필요한 지역의 최신 데이터를 필터링합니다. 예를 들어, “유성구”의 최신 데이터를 추출하기 위해 첫 번째로 해당 항목을 찾아내는 코드를 작성했어요.
javascript
const filteredData = items.find(item => item.cityName === '유성구');
이렇게 하면 유성구의 최신 미세먼지 정보만을 손쉽게 얻을 수 있어요.
미세먼지 상태 판단 및 알림 전송
이제 우리는 미세먼지 상태를 판단하고 알림을 전송할 준비가 되었어요. 미세먼지 수치에 따라 상태를 판별하고, 그에 맞는 알림을 보내는 과정을 설명할게요.
7. 미세먼지 상태 판단하기
저는 WHO 기준을 바탕으로 미세먼지 상태를 나눠봅니다. 아래와 같은 함수를 사용하여 PM10과 PM2.5 수치에 따른 상태를 판단해요.
javascript
function getAirQuality(pm10, pm25) {
// 등급 판별 로직
...
}
이 로직을 통해 미세먼지 상태에 대한 정보를 만들 수 있어요.
8. 데이터 정리 및 웹훅으로 전송
마지막으로 모든 데이터를 하나의 메시지로 정리한 후, 웹훅을 통해 알림을 전송합니다. JS 코드를 통해 JSON 형태로 수집된 정보를 정리하고, 이를 발송하면 끝이에요.
알림 시스템 결과 확인하기
이제 n8n에서 설정한 워크플로우가 저장되고, 여러분이 설정한 시간에 자동으로 알림이 온답니다. 직접 해보면, 정말 뿌듯함을 느끼실 거예요!
제가 직접 경험하고, 확인한 n8n으로의 미세먼지 알림 시스템 구축이 여러분에게도 큰 도움이 되길 바라요.
자주 묻는 질문 (FAQ)
HTTP 요청을 보낼 때 주의할 점은 무엇인가요?
API에 따라 요청 포맷과 파라미터가 다를 수 있으니, 해당 API의 문서를 꼼꼼히 체크하는 것이 중요해요.
n8n 설정 후 알림이 오지 않는 경우, 어떻게 해결하나요?
워크플로우가 제대로 설정되었는지, 크론탭 설정이 맞는지를 다시 한 번 확인해보는 것이 도움이 됩니다.
미세먼지 API는 어떻게 발급하나요?
각국의 기준에 맞는 공공 데이터 포털에서 제공하는 API를 찾아서 신청하시면 됩니다.
주말 알림을 끌 수 있는 방법은 무엇인가요?
if
노드를 사용하여 특정 요일에만 알림이 이루어지도록 설정할 수 있어요.
자동화 같은 편리함을 취하면서 환경도 챙길 수 있는 방법을 줄곧 찾아왔는데, n8n 덕분에 더욱 똑똑하게 관리할 수 있게 되었네요.
키워드: n8n, 미세먼지 알림, 미세먼지 API, 자동화, 크론탭, 환경모니터링, 공공데이터, 알림봇, 데이터필터링, 스마트홈, IoT.