私はaws iotに取り組んでおり、シェルスクリプトを介して端末によって更新されたシャドウ状態を取得できます.しかし、root@raspberrypiを取得できます:~# ./aws_subscribe.py同期エラーが発生しています 以下に添付されています。 次のリンクをたどった
質問する
433 次
1 に答える
0
これは私が得ることができる限りです。これは私がラズベリーパイで実行しているので、証明書が必要です。ラムダの証明書が必要かどうかわかりません。シャドウの状態は、カスタム コールバックで返されます。これは、それを行うことを決定した彼らの方法です。コールバックの外で影の状態を取得する方法をまだ理解できていないので、実際に印刷以外の便利なことを行うことができます。
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTShadowClient
import logging
import json
def get(payload, responseStatus, token):
dict = json.loads(payload)
print(str(dict["state"]["desired"]["State"])) #make sure this matches your shadow names
# Read in command-line parameters
useWebsocket = False
host = "XXXXXYourINFO HEREXXXXXX.iot.us-east-1.amazonaws.com"
rootCAPath = "XXXXXYourINFO HEREXXXXXX"
certificatePath = "XXXXXYourINFO HEREXXXXXX"
privateKeyPath = "XXXXXYourINFO HEREXXXXXX"
# Configure logging
logger = logging.getLogger("AWSIoTPythonSDK.core")
logger.setLevel(logging.DEBUG)
streamHandler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
streamHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
# Init AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient("basicShadowUpdater")
myAWSIoTMQTTShadowClient.configureEndpoint(host, 8883)
myAWSIoTMQTTShadowClient.configureCredentials(rootCAPath, privateKeyPath, certificatePath)
# AWSIoTMQTTShadowClient configuration
myAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime(1, 32, 20)
myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout(10) # 10 sec
myAWSIoTMQTTShadowClient.configureMQTTOperationTimeout(5) # 5 sec
# Connect to AWS IoT
myAWSIoTMQTTShadowClient.connect()
# Create a deviceShadow with persistent subscription
Bot = myAWSIoTMQTTShadowClient.createShadowHandlerWithName("GarageRBP", True)
#get the shadow here and the state is included in the custom callback
Bot.shadowGet(get, 5)
于 2017-01-12T13:46:21.180 に答える