2017-11-17 10 views
0

免責事項:これは初めてのWSおよびMQTTの作業であり、構造が正しくない可能性があります。これを指摘してください。Autoban asyncioクライアントの引数

私はasyncioでautobanを使用して、WebSocketを介してHA(HomeAssistant)インスタンスにメッセージを送受信します。

私のPythonコードがメッセージを受信すると、MQTTを使用してメッセージをAWS IoTサービスに転送します。このコミュニケーションは双方向に働く必要があります。

私はこの作業をすべてがファイル内に浮かぶスクリプトとして作っています。 私はこの作業をクラス構造で行いたいと考えています。これが私の最終的な作業の仕方です。

これを行うには、WebSocketClientProtocolをAWSクライアントとして.publish.subscribeにアクセスする必要があります。 WebSocketClientProtocolの初期化はファクトリを介して行われますが、結果としてどのように引数を渡すかわかりません。例えば:私はHomeAssistantProtocolにaws_iot_clientを渡すことができますどのように

if __name__ == "__main__": 

    aws_iot_client = AWSIoTClient(...) 

    factory = WebSocketServerFactory('ws://localhost:8123/api/websocket') 
    factory.protocol = HomeAssistantProtocol 

私はアウトバーンの例を発見した - ツイストこのWebSocketClientProtocolサブクラスにself.factoryを使用しないが、これはasyncioには使用できません。

答えて

0

run_until_completeを呼び出すとtransport, protocolインスタンスが返されるので、AWSクライアントに渡すことができます。

loop = asyncio.get_event_loop() 
coro = loop.create_connection(factory, '127.0.0.1', 9000) 
transport, protocol = loop.run_until_complete(coro) 
関連する問題