How to publish plain text payload from AWS Lambda python function to IOT Core?

0

I want to publish the value 0 65432 0 192.168.2.1 502 5 1 6 338 0 to an IOT core topic from my lambda function. These are Modbus commands, that our modems can only interpret without surrounding quotes. However, IOT Core always receives the value including the quotes, which the modems cannot interpret. How do I publish this value without quotes as my IOT Core payload?

demandé il y a 4 mois131 vues
1 réponse
0
Réponse acceptée

Hi. Are you sending 0 65432 0 192.168.2.1 502 5 1 6 338 0 as a string? I think that's what you mean. 37 bytes are sent, and 37 bytes received by subscribers. No characters added.

Lambda:

import boto3
import json

def lambda_handler(event, context):
    print('Hello')
    iot = boto3.client('iot')
    endpoint = iot.describe_endpoint(endpointType='iot:Data-ATS')['endpointAddress']
    print(f'{endpoint}')
    iot_data = boto3.client('iot-data', endpoint_url=f'https://{endpoint}')
    iot_data.publish(topic='repost', qos=0, payload='0 65432 0 192.168.2.1 502 5 1 6 338 0')

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

And using mosquitto_sub as the subscriber because it reports the number of bytes:

@ubuntu:~/Desktop$ mosquitto_sub -h foobar-ats.iot.us-east-1.amazonaws.com -p 8883 -t repost --cert 8ffe5d98-certificate.pem.crt --key 8ffe5d98-private.pem.key --cafile AmazonRootCA1.pem -d
Client mosq-23ZjsfCHOnWUais1gn sending CONNECT
Client mosq-23ZjsfCHOnWUais1gn received CONNACK (0)
Client mosq-23ZjsfCHOnWUais1gn sending SUBSCRIBE (Mid: 1, Topic: repost, QoS: 0, Options: 0x00)
Client mosq-23ZjsfCHOnWUais1gn received SUBACK
Subscribed (mid: 1): 0
Client mosq-23ZjsfCHOnWUais1gn received PUBLISH (d0, q0, r0, m0, 'repost', ... (37 bytes))
0 65432 0 192.168.2.1 502 5 1 6 338 0

Perhaps I misunderstand your problem.

profile pictureAWS
EXPERT
Greg_B
répondu il y a 4 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions