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?

posta 4 mesi fa131 visualizzazioni
1 Risposta
0
Risposta accettata

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
ESPERTO
Greg_B
con risposta 4 mesi fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande