質問編集履歴

3

一部修正しました。

2020/01/09 00:43

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -40,10 +40,6 @@
40
40
 
41
41
 
42
42
 
43
- mqttを使うプログラムが初めてのため、不備がありましたら、指摘していただけると助かります
44
-
45
-
46
-
47
43
  ##プログラムコード
48
44
 
49
45
  ```python
@@ -68,22 +64,6 @@
68
64
 
69
65
  ])
70
66
 
71
- template_message = TemplateSendMessage(
72
-
73
- alt_text='Buttons alt text', template=buttons_template)
74
-
75
- line_bot_api.reply_message(event.reply_token, template_message)
76
-
77
- else:
78
-
79
- data = 'その他'
80
-
81
- line_bot_api.reply_message(
82
-
83
- #event.reply_token, TextSendMessage(text=event.message.text))
84
-
85
- event.reply_token, TextSendMessage(text='正しい文字を入力して下さい。'))
86
-
87
67
 
88
68
 
89
69
  @handler.add(PostbackEvent)
@@ -102,34 +82,6 @@
102
82
 
103
83
  client.tls_set("/etc/ssl/certs/ca-certificates.crt")
104
84
 
105
-
106
85
 
107
- client.username_pw_set("hogehoge", "hogehoge")
108
-
109
- client.connect("hogehoge.com", xxxxx)
110
-
111
- # 通信処理スタート
112
-
113
- client.loop_start() # subはloop_forever()だが,pubはloop_start()で起動だけさせる
114
-
115
- if event.postback.data == 'ON':
116
-
117
- client.publish("test","on") # トピック名とメッセージを決めて送信
118
-
119
- line_bot_api.reply_message(
120
-
121
- event.reply_token, TextSendMessage(text='点灯しました。'))
122
-
123
- elif event.postback.data == 'OFF':
124
-
125
- client.publish("test","off") # トピック名とメッセージを決めて送信
126
-
127
- line_bot_api.reply_message(
128
-
129
- event.reply_token, TextSendMessage(text='消灯しました。'))
130
-
131
- elif event.postback.data == 'その他':
132
-
133
- client.publish("test","xxxx") # トピック名とメッセージを決めて送信
134
86
 
135
87
  ```

2

質問のタイトルを変更しました。

2020/01/09 00:43

投稿

raspypy
raspypy

スコア247

test CHANGED
@@ -1 +1 @@
1
- Python Cloudmqtt Publishプログラムについて
1
+ Python paho mqtt Publishプログラムについて
test CHANGED
File without changes

1

質問の内容を詳しく書き直しました。

2020/01/09 00:01

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -32,39 +32,15 @@
32
32
 
33
33
  ③のメッセージがpublishできずに困っています。
34
34
 
35
+ プログラムを実行すると、「ON」または「OFF」以外のメッセージのときは、
35
36
 
37
+ 「正しい文字を入力して下さい。」と返信があるのですが、
36
38
 
37
- 次のコードが**handle_text_message(event)**内に記述されてないことが原因だと思うのですが、
38
-
39
- 次のコードを、両方の関数内に記述するのが正解なのでしょうか。
40
-
41
- mqttに関するプログラム初めてのため、よく分からず質問に上げていただきした
39
+ websocketで確認すると、xxxxpublishていません
42
40
 
43
41
 
44
42
 
45
- ```python
46
-
47
- client = mqtt.Client() # クラスのインスタンス(実体)の作成
48
-
49
- client.on_connect = on_connect # 接続時のコールバック関数を登録
50
-
51
- client.on_disconnect = on_disconnect # 切断時のコールバックを登録
52
-
53
- client.on_publish = on_publish # メッセージ送信時のコールバック
54
-
55
-
56
-
57
- client.tls_set("/etc/ssl/certs/ca-certificates.crt")
58
-
59
-
60
-
61
- client.username_pw_set("hogehoge", "hogehoge")
62
-
63
- client.connect("hogehoge.com", xxxxx)
43
+ mqttを使うプログラムが初めてのため、不備がありましたら、指摘していただけると助かります
64
-
65
- ```
66
-
67
-
68
44
 
69
45
 
70
46
 
@@ -100,11 +76,9 @@
100
76
 
101
77
  else:
102
78
 
103
- client.publish("test","xxxx") # トピック名とメッセージを決めて送信
79
+ data = 'その他'
104
80
 
105
81
  line_bot_api.reply_message(
106
-
107
- #botは停止中
108
82
 
109
83
  #event.reply_token, TextSendMessage(text=event.message.text))
110
84
 
@@ -154,26 +128,8 @@
154
128
 
155
129
  event.reply_token, TextSendMessage(text='消灯しました。'))
156
130
 
157
-
131
+ elif event.postback.data == 'その他':
158
132
 
159
- if __name__ == "__main__":
160
-
161
- arg_parser = ArgumentParser(
162
-
163
- usage='Usage: python ' + __file__ + ' [--port <port>] [--help]'
164
-
165
- )
166
-
167
- arg_parser.add_argument('-p', '--port', type=int, default=int(os.environ.get('PORT', 8000)), help='port')
168
-
169
- arg_parser.add_argument('-d', '--debug', default=False, help='debug')
170
-
171
- arg_parser.add_argument('--host', default='0.0.0.0', help='host')
172
-
173
- options = arg_parser.parse_args()
174
-
175
-
176
-
177
- app.run(debug=options.debug, host=options.host, port=options.port)
133
+ client.publish("test","xxxx") # トピック名とメッセージを決めて送信
178
134
 
179
135
  ```