AWS Greengrass публикует в теме странное исключение

В моем проекте я прочитал с помощью pymodbus значение реестра из моего raspberry py, подключенного через USB-адаптер RS486 к датчику, и хочу опубликовать в теме MQTT с помощью greengrass:

      ...
# Configuration Parameters (default if not passed in environment)
unit_id = int(os.getenv('UNIT_ID') or '1')
port = os.getenv('SERIAL_PORT_DEVICE') or '/dev/ttyUSB0'
mb_baudrate = int(os.getenv('SERIAL_BAUD_RATE') or '9600')
modbus_mode = os.getenv('MODBUS_MODE') or 'rtu'
mb_timeout = int(os.getenv('MODBUS_TIMEOUT') or '1')

mbclient = ModbusClient(method=modbus_mode, port=port, timeout=mb_timeout, baudrate=mb_baudrate)

logger = logging.getLogger(__name__)
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)

# Creating a greengrass core sdk client
client = greengrasssdk.client('iot-data')

def run_sync_client():
    while True:

        mbclient.connect()

        # set the address and number of bytes that will be read on the modbus device
        address = 0x00
        count = 1
        rre = mbclient.read_input_registers(address, count, unit=unit_id)
        logging.info(rre.registers)
        # publish results to topic in AWS IoT
        client.publish(topic='test/topic_data', payload=rre.registers[0].encode())

        time.sleep(5)

run_sync_client()

def lambda_handler(event, context):
    return

Я использовал pip install greengrasssdk для установки моего sdk, но когда я развертываю свою лямбду, создаю свой компонент в greengras и развертываю его на моей малине, я получаю ответ:

2021-02-03T09:22:49.622Z [ОШИБКА] (пул-2-поток-31) IbmutSensor: greengrass_ipc_python_sdk.ipc_client.IPCException: ошибка HTTP 400: неверный запрос. {serviceInstance =0, serviceName=IbmutSensor, currentState=RUNNING}

Я тоже пытался изменить rre.registers[0].encode() с 'test'.encode()но ничего не изменилось. если я удалю client.publish В моем журнале я вижу правильные данные с датчика, где моя проблема с публикацией?

Большое спасибо заранее

0 ответов

Другие вопросы по тегам