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
В моем журнале я вижу правильные данные с датчика, где моя проблема с публикацией?
Большое спасибо заранее