diff --git a/.framework.yaml.un~ b/.framework.yaml.un~ new file mode 100644 index 0000000..36e572f Binary files /dev/null and b/.framework.yaml.un~ differ diff --git a/.main.py.un~ b/.main.py.un~ new file mode 100644 index 0000000..71ab3cd Binary files /dev/null and b/.main.py.un~ differ diff --git a/README.md b/README.md index 329ce7e..e31a5d4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,30 @@ -# nodeq-mqtt-test2 +# 이 코드 템플릿은 SDT Cloud 환경에서 mqtt 메세지를 발행하는 코드입니다. -Your repository description \ No newline at end of file +# 패키지 설치 +- 코드는 sdtcloudnodeqmqtt 패키지를 사용합니다. 아래 명령어로 패키지를 다운로드 해야합니다. +```bash +$ pip install sdtcloudnodeqmqtt +``` + +# 코드 작성 +- 코드는 runAction 함수에서 동작하고자 하는 기능을 작성합니다. +- msg 변수는 발행될 메세지 입니다. +- sdtcloudpubsub의 pubMessage 함수는 발행할 메세지 내용인 dictionary 타입 변수를 입력 받아 처리합니다. + +# 메세지 발행 +- 다음 변수로 메세지를 발행하는 코드를 작성하면... +```bash +msg = { + "message": "Hello World" +} +``` +- 실제로 발행되는 메세지은 다음과 같습니다. +```bash +msg = { + "data": { + "message": "Hello World" + }, + "timestamp": 12312311... +} + +``` diff --git a/config.json b/config.json new file mode 100644 index 0000000..13eb577 --- /dev/null +++ b/config.json @@ -0,0 +1,4 @@ +{ + "KEY1": "VALUE1", + "KEY2": "VALUE2" +} \ No newline at end of file diff --git a/framework.yaml b/framework.yaml new file mode 100644 index 0000000..297bc03 --- /dev/null +++ b/framework.yaml @@ -0,0 +1,11 @@ +version: bwc/v2 # bwc 버전 정보입니다. +spec: + appName: test-app # 앱의 이름입니다. + runFile: main.py # 앱의 실행 파일입니다. + env: + bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.) + virtualEnv: base # 사용할 가상환경 이름입니다. + package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) +stackbase: + tagName: v1.0.1 # Stackbase(gitea)에 릴리즈 태그명 입니다. + repoName: nodeq-mqtt-test2 # Stackbase(gitea)에 저장될 저장소 이릅니다. diff --git a/framework.yaml~ b/framework.yaml~ new file mode 100644 index 0000000..89cca81 --- /dev/null +++ b/framework.yaml~ @@ -0,0 +1,11 @@ +version: bwc/v2 # bwc 버전 정보입니다. +spec: + appName: test-app # 앱의 이름입니다. + runFile: main.py # 앱의 실행 파일입니다. + env: + bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.) + virtualEnv: base # 사용할 가상환경 이름입니다. + package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) +stackbase: + tagName: v1.0.1 # Stackbase(gitea)에 릴리즈 태그명 입니다. + repoName: nodeq-mqtt-test # Stackbase(gitea)에 저장될 저장소 이릅니다. diff --git a/main.py b/main.py new file mode 100644 index 0000000..73f9b2c --- /dev/null +++ b/main.py @@ -0,0 +1,21 @@ +import sdtcloudnodeqmqtt +import time +import uuid +import random + +sdtcloud = sdtcloudnodeqmqtt.sdtcloudnodeqmqtt() +sdtcloud.setClient(f"device-app-{uuid.uuid1()}") # parameter is client ID(string) + +def runAction(): + while True: + msg = [{ + "house_id": "JJ58", + "device_type": "gas", + "pulse_count": random.randint(0, 1) + }] + sdtcloud.pubMessage(msg) + time.sleep(10) + +if __name__ == "__main__": + runAction() + diff --git a/main.py~ b/main.py~ new file mode 100644 index 0000000..fcc2efa --- /dev/null +++ b/main.py~ @@ -0,0 +1,21 @@ +import sdtcloudnodeqmqtt1 +import time +import uuid +import random + +sdtcloud = sdtcloudnodeqmqtt.sdtcloudnodeqmqtt() +sdtcloud.setClient(f"device-app-{uuid.uuid1()}") # parameter is client ID(string) + +def runAction(): + while True: + msg = [{ + "house_id": "JJ58", + "device_type": "gas", + "pulse_count": random.randint(0, 1) + }] + sdtcloud.pubMessage(msg) + time.sleep(10) + +if __name__ == "__main__": + runAction() + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5fa06d3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +# Write package's name that need your app. +#awsiotsdk +pyyaml +gpiod +pymodbus +pytz +AWSIoTPythonSDK +#sdtcloudpubsub \ No newline at end of file