python開發華為雲應用側進行裝置接入
用python接入華為雲,最自己的IOT裝置進行監督
這算是做一個應用端吧,把之前沒有寫好的補上,華為家的名字也是奇奇怪怪,反正就是自己的python連線華為雲讀取裝置
儘量寫的不要太難,就是跟著一步步做就好啦 分為:得到產品,獲取資料,下發資料
發現一個除錯小工具—>好像只能除錯token
新增連結描述
得到產品
建立token
token就是當一個網站有了你的token之後,不用post進行請求,直接get就好啦
找到我們需要的------>進這個網頁華為token認證
"username”即IAM使用者名稱、“password”即登入華為雲密碼、“domainname”即賬號名,“projectname”專案
密碼應該是登入華為雲的密碼
import requests
import json
url = "https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens"
HEADERS = { "Content-Type": "application/json;charset=UTF-8","User-Agent": "API Explorer","X-Auth-Token": "***", }
FormData = {
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "hw05803451"
},
"name": "hw05803451",
"password": "登入華為的密碼"
}
}
}
}
}
res = requests.post(url=url,data=json.dumps(FormData),headers=HEADERS)
print(res.text)
token成功返回
獲取資料
我日了,除錯了這麼久,發現直接去裝置影子查詢,就可以查所有的資料,也不知道是不是資料接收是因為要資料時時上報才能開啟資料接收的
沒關係,我們看歷史的最新資料一樣可以達到要求
得到ak 和sk
上面的網站拿到
除錯著除錯著,發現好像sdk原來是這樣用的,改sdk算了,反正不是有介面嘛,哈哈哈哈,拿著就行了
根據可以取出陣列的每一個值,來讀取引數,這個是都有引號的版本,但是華為發過來,第一個資料沒有引號
# coding: utf-8
### 查詢所有資訊
import re
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcore.http.http_config import HttpConfig
from huaweicloudsdkiotda.v5 import *
def find_device_message():
ak = "4MSDTDVTPSTEDCYFDXOS"
sk = "kLluTIa57HabASGp4bxrfytKUwCSWbbYlCLHoYm1"
endpoint = "https://iotda.cn-north-4.myhuaweicloud.com"
project_id = "08d0cfa57b80f5d32f54c019654ee2eb"
config = HttpConfig.get_default_config()
config.timeout = 3
credentials = BasicCredentials(ak, sk, project_id)
client = IoTDAClient.new_builder(IoTDAClient) \
.with_http_config(config) \
.with_credentials(credentials) \
.with_endpoint(endpoint) \
.build()
try:
request = ShowDeviceShadowRequest()
request.device_id = "5f26687704feea02bac7dd35_11111111"
response = client.show_device_shadow(request)
print("ok\n")
print(response)
return(str(response))
except exceptions.ClientRequestException as e:
print(e.status_code)
print("************")
print(e.request_id)
print("************")
print(e.error_code)
print("************")
print(e.error_msg)
### 如果都有引號,就都能返回
def dis_str(content):
str = re.findall(r"(\n[\s\S]*\n)", content, re.DOTALL)
# str1=re.findall(r"\n([\s\S]*)\n",str[0])
str1 = str[0].replace('\n', '')
str2 = str1.replace(' ', '')
str3 = re.findall(r"'properties':{(.+?)}},", str2)
str4 = re.findall(r"'(.+?)'", str3[0])
str5 = re.findall(r"'(.+?)'", str3[1])
str6 = re.findall(r"[0-9][0-9]", str3[1])
str4.append(str5[0])
str4.append(str6[0])
print(str4[2])
return str4
if __name__ == '__main__':
contnet = find_device_message()
dis_str(contnet)
命令下發
我們不用搞得這麼複雜,只要有東西發過去,我們就成功了
我用的是createmessage用這個除錯
# coding: utf-8
#### 命令下發
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcore.http.http_config import HttpConfig
from huaweicloudsdkiotda.v5 import *
if __name__ == "__main__":
ak = "4MSDTDVTPSTEDCYFDXOS"
sk = "kLluTIa57HabASGp4bxrfytKUwCSWbbYlCLHoYm1"
endpoint = "https://iotda.cn-north-4.myhuaweicloud.com"
project_id = "08d0cfa57b80f5d32f54c019654ee2eb"
config = HttpConfig.get_default_config()
config.timeout = 3
credentials = BasicCredentials(ak, sk, project_id)
client = IoTDAClient.new_builder(IoTDAClient) \
.with_http_config(config) \
.with_credentials(credentials) \
.with_endpoint(endpoint) \
.build()
try:
request = CreateMessageRequest()
request.device_id = "5f26687704feea02bac7dd35_11111111"
request.body = DeviceMessageRequest(
message="hello",
name="wodename"
)
response = client.create_message(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
相關文章
- 工業裝置資料快速接入華為雲物聯網平臺
- 應用反射進行開發反射
- 基於雲資料庫MongoDB版進行應用開發資料庫MongoDB
- 5G應用離不開接入裝置:智慧多網聚合路由器路由器
- JS輕應用熱更新 - 無需連線輕鬆進行嵌入式裝置開發除錯JS除錯
- 基於PostgreSQL進行Java應用開發SQLJava
- 基於Cocos SDKHub接入華為HMS Game服務—接入華為應用升級服務GAM
- HarmonyOS NEXT應用開發—在Native側實現進度通知功能
- HC-25 MQTT 接入華為雲MQQT
- Web | 淺談用Python進行Web開發WebPython
- 裝置接入物聯網平臺必知必會--裝置接入類
- 【智慧裝置】智慧工廠如何運用視覺化進行裝置管理視覺化
- 窺見AI工業化開發黎明:華為雲如何將AI進行到底AI
- 怎樣使用AJAX進行應用程式開發(轉)
- 輕應用介紹 - 用JavaScript進行嵌入式開發JavaScript
- 【iOS開發】如何用 Swift 語言進行LBS應用的開發?iOSSwift
- 華為雲軟體開發雲VS開發痛點=?
- Nodejs裝置接入阿里雲IoT物聯網平臺NodeJS阿里
- 華為雲智慧雲接入ICA,助力企業輕鬆上雲
- 用Delphi進行word開發
- 華為雲鄭葉來:AI炒作和投機回落,行業應用春天開始AI行業
- dotnet core使用開源元件FastHttpApi進行web應用開發元件ASTHTTPAPIWeb
- 移動裝置的應用開發平臺――J2ME(原)
- 移動裝置的Web應用程式開發----(事件和輸入) (轉)Web事件
- 華為開發中文語音助手 擬預裝華為國行手機
- Android應用開發進階Android
- EHOME影片平臺EasyCVR螢石裝置影片接入平臺的匯聚與應用VR
- 行為驅動開發在 Python 開發測試中的應用Python
- 使用應用程式(Java/Python)訪問MaxCompute Lightning進行資料開發JavaPython
- 華為裝置堆疊原理
- 在anaconda python開發套件下進行opencv的安裝Python套件OpenCV
- HiAI Foundation開發平臺,加速端側AI應用的智慧革命AI
- 可穿戴裝置進軍醫療行業:很好很實用行業
- Ruff裝置接入阿里雲IoT平臺推送告警到釘釘群阿里
- 將 CoAP 協議裝置接入 EMQX Cloud協議MQCloud
- 開放應用模型操作指南(一)| 雲服務一鍵接入 OAM 體系模型
- 開始使用 Python 開發 Web 應用PythonWeb
- 使用 Java 進行移動應用開發的 8 個理由 - VikrantJava