IoT Hub의 메시지 라우팅을 사용할 때 수치가 제대로 저장되지 않을 때의 체크포인트

IoT Hub의 메시지 라우팅을 사용할 때 수치가 제대로 저장되지 않을 때의 체크포인트
개시하다
IoT 장치에서 보내온 정보를 저장소에 저장할 때 인코딩 주위에 주의해야 할 점이 있기 때문에 공유합니다.
메시지 라우팅
정보 라우팅 기능은 다음을 참조하십시오.
쉽게 말하면 IoTHub가 어디에 데이터를 쓰는 기능이다.
Azure IoT Hub 메시지 라우팅
IoT Hub 메시지 라우트를 사용하여 device-to-Cloud 메시지를 다른 엔드포인트로 보내기
IoT Hub의 메시지 라우팅과 Event Grid 비교
메시지 라우팅 문제 해결
이벤트
Stream Analytics 등에서 데이터를 정상적으로 읽을 수 있지만 스토리지 장치에 저장된 데이터는 이상하다.
예를 들어 이렇게 바디에 미스터리한 값을 넣은 상태에서 저장 장치에 저장된다.

처리하다.
대응이라기보다는 예의다.
아래와 같이 메일에 속성을 설정하여 발송합니다.
python

msg.content_encoding = "utf-8"
msg.content_type = "application/json"

전체적인 예(정보 내용은 나의 코드의 일부분을 발췌했다)
python

from azure.iot.device.aio import IoTHubDeviceClient
from azure.iot.device import  Message

conn_str = os.getenv("IOTHUB_DEVICE_CONNECTION_STRING")

# Create instance of the device client using the connection string
device_client = IoTHubDeviceClient.create_from_connection_string(conn_str)

msg = Message('{{"temperature": {temperature:0.1f},"humidity": {humidity:0.1f},"timestamp_jst":"{timestamp}"}}'.format(temperature = temperature, humidity = humidity,timestamp = dt))
msg.message_id = uuid.uuid4()
msg.correlation_id = "correlation-1234"
msg.content_encoding = "utf-8"
msg.content_type = "application/json"

# Send a single message
print(msg)
await device_client.send_message(msg)


나의 경우 IoThub의 코드 샘플에 포함된python이 아래의 상태에서 예법을 준수하지 않아서 이런 현상이 발생했다.
초간단한 정보 전송 코드라 이 부분은 생략했다.

python


import os
import asyncio
from azure.iot.device.aio import IoTHubDeviceClient


async def main():

    # Fetch the connection string from an enviornment variable
    conn_str = os.getenv("IOTHUB_DEVICE_CONNECTION_STRING")

    # Create instance of the device client using the connection string
    device_client = IoTHubDeviceClient.create_from_connection_string(conn_str)

    # Connect the device client.
    await device_client.connect()

    # Send a single message
    print("Sending message...")
    await device_client.send_message("This is a message that is being sent")
    print("Message successfully sent!")

    # Finally, shut down the client
    await device_client.shutdown()


if __name__ == "__main__":
    asyncio.run(main())

참고 자료
IoT Hub message routing: now with routing on message body
Why IoT Hub message is not decoded corretly in storage JSON blob?

좋은 웹페이지 즐겨찾기