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)
相關文章
- 工業裝置資料快速接入華為雲物聯網平臺
- 基於Cocos SDKHub接入華為HMS Game服務—接入華為應用升級服務GAM
- HC-25 MQTT 接入華為雲MQQT
- 基於雲資料庫MongoDB版進行應用開發資料庫MongoDB
- HarmonyOS NEXT應用開發—在Native側實現進度通知功能
- 5G應用離不開接入裝置:智慧多網聚合路由器路由器
- JS輕應用熱更新 - 無需連線輕鬆進行嵌入式裝置開發除錯JS除錯
- 窺見AI工業化開發黎明:華為雲如何將AI進行到底AI
- Web | 淺談用Python進行Web開發WebPython
- 華為裝置堆疊原理
- 基於PostgreSQL進行Java應用開發SQLJava
- 使用應用程式(Java/Python)訪問MaxCompute Lightning進行資料開發JavaPython
- 裝置接入物聯網平臺必知必會--裝置接入類
- 華為雲大咖說:開發者應用AI大模型的“道、法、術”AI大模型
- 【智慧裝置】智慧工廠如何運用視覺化進行裝置管理視覺化
- 華為雲鄭葉來:AI炒作和投機回落,行業應用春天開始AI行業
- Nodejs裝置接入阿里雲IoT物聯網平臺NodeJS阿里
- 華為雲智慧雲接入ICA,助力企業輕鬆上雲
- 華為開發者 雲託管
- 【HDC 2024】華為雲開發者聯盟驅動應用創新,賦能開發者成長
- 為什麼要選擇Python進行Web開發?PythonWeb
- 輕應用介紹 - 用JavaScript進行嵌入式開發JavaScript
- 華為裝置OSPF單區域配置
- dotnet core使用開源元件FastHttpApi進行web應用開發元件ASTHTTPAPIWeb
- 接入華為應用內購買,驗證購買Token介面,返回“rights invalid”
- Android應用開發進階Android
- 智汀家庭雲+Home Assistant接入HomeKit,連線米裝潢置
- 深度解讀華為雲智慧企業雲應用平臺
- EHOME影片平臺EasyCVR螢石裝置影片接入平臺的匯聚與應用VR
- 使用SemanticKernel 進行智慧應用開發(2023-10更新)
- 零程式碼零硬體玩轉華為雲IoT,基於裝置聯動實時監控裝置
- 華為通訊裝置密碼設定密碼
- 華為裝置ospf實現全網互通
- linux下 libusb使用--開啟usb裝置進行通訊Linux
- 華為雲智慧程式設計進高校,解讀行業發展新趨勢程式設計行業
- 華為雲和開源Istio運維管理對比樣例應用部署運維
- Ruff裝置接入阿里雲IoT平臺推送告警到釘釘群阿里
- 手把手教你在 SuperEdge 上用 EdgeX Foundry 接入 IoT 裝置