Sonraí beo (WebSocket)
Leis an WebSocket, faigheann tú léamha agus athruithe na ngléasanna an nóiméad a tharlaíonn siad. Úsáideann aip HAM an ceangal céanna. Le haghaidh léimh amháin ag an am, tá an REST API níos simplí.
Seoladh
Rannán „Seoladh“wss://DEVICE_SERVER:9001- Is é
DEVICE_SERVERluach an réimsedevice_serverde gach gléas. Faigheann tú é leget_user_devices.php. - Is féidir le gléasanna cuntais amháin a bheith ar fhreastalaithe difriúla. Oscail ceangal amháin do gach freastalaí difriúil, ní ceangal amháin do gach gléas.
- Caithfidh port 9001 a bheith oscailte do cheangail amach. Féach na Riachtanais líonra (do TF).
Formáid na teachtaireachta
Rannán „Formáid na teachtaireachta“Is eagar JSON gach teachtaireacht a sheolann tú:
[command_id, payload]Is slánuimhir é an command_id. Tosaigh ag 1 agus méadaigh é le gach teachtaireacht. Tá an command_id céanna ag an bhfreagra.
Is é 20 KiB uasmhéid teachtaireachta. Dúnann an freastalaí an ceangal má sheolann tú teachtaireacht níos mó.
1. Fíordheimhniú
Rannán „1. Fíordheimhniú“Is í an chéad teachtaireacht tar éis an cheangail an fíordheimhniú:
[1, {"api_key": "YOUR_API_KEY"}]Is féidir leat {"access_token": "YOUR_ACCESS_TOKEN"} a sheoladh freisin. Féach fíordheimhniú.
| Freagra | Brí |
|---|---|
[] |
D’éirigh leis |
["Access Denied"] |
Eochair nó comhartha mícheart. Dúnann an freastalaí an ceangal. |
[1,[{},"Rate limit"]] |
An iomarca ceangal in am gearr |
Teorainn cheangail: 15 in aghaidh 60 soicind d’eochair API amháin. 25 in aghaidh 60 soicind do chomhartha rochtana amháin.
2. Liostáil le gléasanna (SUBSCRIBE)
Rannán „2. Liostáil le gléasanna (SUBSCRIBE)“[2, {"c": "SUBSCRIBE", "server": true, "serialnos": ["e11:123", "e9:456"], "unsubscribe-others": true}]| Réimse | Brí |
|---|---|
c |
SUBSCRIBE |
server |
true i gcónaí |
serialnos |
Sraithuimhreacha na ngléasanna ar an bhfreastalaí seo |
unsubscribe-others |
true: stopann an freastalaí liostálacha níos luaithe an cheangail seo |
Freagra: [2,[{},""]].
Ní thugann an freastalaí aird ar na gléasanna nach bhfuil rochtain agat orthu. Ní sheolann sé earráid dóibh.
Chun na liostálacha go léir a stopadh, seol [3, {"c": "UNSUBSCRIBE", "server": true}].
3. Nuashonruithe staide
Rannán „3. Nuashonruithe staide“Díreach tar éis na liostála, seolann an freastalaí staid reatha gach gléis. Ansin seolann sé nuashonrú gach uair a athraíonn rud éigin.
Is oibiachtaí JSON iad na nuashonruithe, ní eagair:
{ "serialno": "e11:123", "R": { "T": 2082, "GI": 1, "GIC": 0, "GI2": 1, "GI2C": 0 }, "O": [], "alarms": [], "is_local": false}| Réimse | Ábhar |
|---|---|
serialno |
An gléas |
R |
Na léamha, amh, de réir cóid léimh |
O |
Luachanna na n-aschur, in ord output_names |
T |
Sceidil an ghléis |
S |
Socruithe an ghléis |
previous |
Luachanna carnacha na tréimhse roimhe, do ghléasanna le háiritheoirí |
alarms |
Na haláraim ghníomhacha |
is_local |
true má tá do cheangal agus an gléas ar an líonra céanna |
- Is féidir nach mbeidh ach na réimsí a d’athraigh i nuashonrú. Cumaisc é leis an staid atá agat cheana.
- Grúpálann an freastalaí athruithe ar feadh thart ar 100 ms sula seolann sé nuashonrú.
- Ná tabhair aird ar theachtaireachtaí nach n-aithníonn tú.
Chun na luachanna amha a thiontú, úsáid sainmhínithe na dteaghlach. Féach an REST API.
Coinnigh an ceangal oscailte
Rannán „Coinnigh an ceangal oscailte“- Seolann an freastalaí pinganna WebSocket. Caithfidh do leabharlann freagra a thabhairt le pong. Déanann an chuid is mó de leabharlanna é seo go huathoibríoch.
- Má dhúntar an ceangal, ceangail arís. Fanann an aip 100 ms an chéad uair agus 10 soicind ina dhiaidh sin.
- Tar éis ceangail nua, seol an fíordheimhniú agus an liostáil arís.
Sampla Node.js
Rannán „Sampla Node.js“Tá WebSocket ionsuite ag Node.js 22.
const ws = new WebSocket('wss://DEVICE_SERVER:9001');let id = 1;
ws.onopen = () => { ws.send(JSON.stringify([id++, { api_key: 'YOUR_API_KEY' }]));};
ws.onmessage = (event) => { const msg = JSON.parse(event.data); if (Array.isArray(msg) && msg.length === 0) { ws.send(JSON.stringify([id++, { c: 'SUBSCRIBE', server: true, serialnos: ['e11:123'], 'unsubscribe-others': true }])); } else if (!Array.isArray(msg) && msg.serialno) { console.log(msg.serialno, msg.R); }};Tá sampla iomlán Node.js in nodejs_hamapi_example.zip. Tá an leabharlann hamapi.js agus an comhad example.js ann.
- In
example.js, socraighserver,api_keyagus na sraithuimhreacha. - Rith
npm install, ansinnode example.js.
Ní cheanglaíonn an leabharlann arís nuair a dhúntar an ceangal. Cuir é seo le do chód.

