IoT ಮೀಟರ್ಗಳು: ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸುವುದು ಮತ್ತು ಅದು ಅದರ ಓದುವಿಕೆಗಳಿಗೆ ಹೇಗೆ ಸಹಿ ಮಾಡುತ್ತದೆ
IoT ಸಾಧನಗಳು: AMI ಅಥವಾ IoT ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ನೋಂದಾಯಿಸಿ, ಅದರ ರಹಸ್ಯವನ್ನು ನಕಲಿಸಿ (ಒಮ್ಮೆ ತೋರಿಸಲಾಗಿದೆ), ಅದನ್ನು ಹೊಸ ರಹಸ್ಯದೊಂದಿಗೆ ತಿರುಗಿಸಿ, ಮತ್ತು ಸಾಧನವು /api/public/utilities/iot/reads ಗೆ ಪ್ರತಿ ವಿನಂತಿಯನ್ನು ಹೇಗೆ ಸಹಿ ಮಾಡುತ್ತದೆ - ಉದಾಹರಣೆ ವಿನಂತಿ, ಮಿತಿಗಳು ಮತ್ತು ಅದು ಪಡೆಯಬಹುದಾದ ಪ್ರತಿಯೊಂದು ಉತ್ತರದೊಂದಿಗೆ.
ಒಂದು AMI ಅಥವಾ IoT ಮೀಟರ್ ತನ್ನದೇ ಆದ ಓದುವಿಕೆಗಳನ್ನು HTTPS ಮೂಲಕ TRANXACT ಗೆ ಪೋಸ್ಟ್ ಮಾಡುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಸಾಧನವು ಸರ್ವರ್ನಿಂದ ಮಾಡಲ್ಪಟ್ಟ ಒಂದು ಕೀಲಿಯನ್ನು (utd_ ನಂತರ 24 ಅಕ್ಷರಗಳು ಮತ್ತು ಅಂಕೆಗಳು) ಮತ್ತು ಒಂದು ರಹಸ್ಯವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯಲ್ಲೂ ಅದು ಯಾರೆಂದು ಸಾಧನವು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಆ ಮೀಟರ್ಗಾಗಿ ಬೇರೆ ಯಾರೂ ಓದುವಿಕೆಗಳನ್ನು ಪೋಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಲಾಗುತ್ತಿದೆ
- CRM › ಉಪಯುಕ್ತತೆಗಳು › ಯುಟಿಲಿಟಿ ಮೀಟರ್ಗಳು ಮತ್ತು ಓದುವಿಕೆಗಳು › IoT ಸಾಧನಗಳನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಹೊಸದನ್ನು ಒತ್ತಿರಿ.
- ಲೇಬಲ್ ಅನ್ನು ನಮೂದಿಸಿ, ಅದು ಓದುವ ಮೀಟರ್ ಅನ್ನು ಆರಿಸಿ ಮತ್ತು hmac (ಪ್ರತಿ ವಿನಂತಿಯ HMAC-SHA256 ಸಹಿ - ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ), ಧಾರಕ (ಟೋಕನ್ ಆಗಿ ಕಳುಹಿಸಲಾದ ಕೀ ಮತ್ತು ರಹಸ್ಯ) ಅಥವಾ ಎರಡನ್ನೂ ಹೊಂದಿರುವ ಚಿಹ್ನೆಗಳನ್ನು ಆರಿಸಿ.
- ಈ ಸಾಧನಕ್ಕೆ ನಿಮಿಷಕ್ಕೆ ಗರಿಷ್ಠ ಓದುವಿಕೆಗಳನ್ನು ಹೊಂದಿಸಿ ಮತ್ತು ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ ಫರ್ಮ್ವೇರ್ ಅನ್ನು ಹೊಂದಿಸಿ.
- ಉಳಿಸಿ. ಉತ್ತರವು ಕೀ ಮತ್ತು ರಹಸ್ಯವನ್ನು ತೋರಿಸುತ್ತದೆ: “ಈಗ ರಹಸ್ಯವನ್ನು ನಕಲಿಸಿ - ಅದನ್ನು ಮತ್ತೆ ತೋರಿಸಲಾಗುವುದಿಲ್ಲ.” ಎರಡನ್ನೂ ಸಾಧನದ ಸಂರಚನೆಯಲ್ಲಿ ಇರಿಸಿ.
ರಹಸ್ಯವನ್ನು ಒಮ್ಮೆ ತೋರಿಸಲಾಗುತ್ತದೆ. ನಂತರ ಅದನ್ನು ಎಂದಿಗೂ ಪಟ್ಟಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ, ನಿರ್ವಾಹಕರಿಗೂ ಸಹ; ಪಟ್ಟಿಯು ಅದರ ಕೊನೆಯ ನಾಲ್ಕು ಅಕ್ಷರಗಳನ್ನು ಮಾತ್ರ ತೋರಿಸುತ್ತದೆ (ರಹಸ್ಯ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ). ಅದು ಕಳೆದುಹೋದರೆ, ಹೊಸದನ್ನು ನೀಡಿ.
ರಹಸ್ಯವನ್ನು ತಿರುಗಿಸುವುದು.
ಸಾಧನದ ಸಾಲಿನಲ್ಲಿ ಹೊಸ ರಹಸ್ಯವನ್ನು ಒತ್ತಿ ದೃಢೀಕರಿಸಿ. ಹೊಸ ರಹಸ್ಯವನ್ನು ಒಮ್ಮೆ ತೋರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹಳೆಯದು ಆ ಕ್ಷಣದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಸಾಧನಕ್ಕೆ ಹೊಸದನ್ನು ತಕ್ಷಣವೇ ನೀಡಿ. ಸಾಧನವನ್ನು ತಿರುಗಿಸದೆ ನಿಲ್ಲಿಸಲು ಅಥವಾ ಅದನ್ನು ಸೇವೆಯಿಂದ ತೆಗೆದುಹಾಕಿದಾಗ ನಿವೃತ್ತಿಗೊಳಿಸಲು ಸ್ಥಿತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಹೊಂದಿಸಿ.
ಸಾಧನವು ಓದುವಿಕೆಯನ್ನು ಹೇಗೆ ಸಹಿ ಮಾಡುತ್ತದೆ
- JSON ಬಾಡಿಯನ್ನು ನಿರ್ಮಿಸಿ: ಓದುವಿಕೆಗಳ ಪಟ್ಟಿ, ಪ್ರತಿಯೊಂದೂ read_at (ISO 8601 ಸಮಯ) ಮತ್ತು ಓದುವಿಕೆಯೊಂದಿಗೆ. ಬ್ಯಾಟರಿ, ಸಿಗ್ನಲ್, ಫರ್ಮ್ವೇರ್ ಮತ್ತು ಅಲಾರಾಂಗಳು ಐಚ್ಛಿಕವಾಗಿರುತ್ತವೆ.
- ಪ್ರಸ್ತುತ ಯುನಿಕ್ಸ್ ಸಮಯವನ್ನು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಆಗಿ ತೆಗೆದುಕೊಳ್ಳಿ.
- HMAC-SHA256 ಅನ್ನು, ಸಾಧನದ ರಹಸ್ಯ, ಸಮಯಸ್ಟ್ಯಾಂಪ್, ಪೂರ್ಣವಿರಾಮ ಮತ್ತು ಬಾಡಿಯ ನಿಖರವಾದ ಬೈಟ್ಗಳ ಅಡಿಯಲ್ಲಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ: “<ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್>.<body>”. ಇದನ್ನು 64 ಸಣ್ಣ-ಕೇಸ್ ಹೆಕ್ಸ್ ಅಕ್ಷರಗಳಾಗಿ ಬರೆಯಿರಿ.
- X-Utility-Device (ಕೀಲಿ), X-Utility-Timestamp ಮತ್ತು X-Utility-Signature (ಹೆಕ್ಸ್, ಐಚ್ಛಿಕವಾಗಿ ಪೂರ್ವಪ್ರತ್ಯಯ sha256=) ಎಂಬ ಹೆಡರ್ಗಳೊಂದಿಗೆ ಬಾಡಿಯನ್ನು /api/public/utilities/iot/reads ಗೆ ಪೋಸ್ಟ್ ಮಾಡಿ.
POST https://<your-tranxact-host>/api/public/utilities/iot/reads
Content-Type: application/json
X-Utility-Device: <utd_DEVICE_KEY>
X-Utility-Timestamp: <1792252800>
X-Utility-Signature: sha256=<64 hex characters>
{"reads":[{"read_at":"<2026-10-17T09:30:00Z>","reading":<48213.4>}],
"battery_pct":<87>,"signal_dbm":<-71>,"firmware":"<2.4.1>",
"alarms":[{"type":"<leak>","detail":"<continuous flow 6 h>"}]}
ಸಾಧನವನ್ನು ಸ್ಥಾಪಿಸುವ ಮೊದಲು ಪರೀಕ್ಷಿಸಲು ಶೆಲ್ನಲ್ಲಿ ಅದೇ ಸಹಿಯನ್ನು ರಚಿಸಲಾಗಿದೆ:
BODY='{"reads":[{"read_at":"<2026-10-17T09:30:00Z>","reading":<48213.4>}]}'
TS=$(date +%s)
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "<DEVICE_SECRET>" | sed 's/^.* //')
curl -X POST "https://<your-tranxact-host>/api/public/utilities/iot/reads" \
-H "Content-Type: application/json" \
-H "X-Utility-Device: <utd_DEVICE_KEY>" \
-H "X-Utility-Timestamp: $TS" \
-H "X-Utility-Signature: sha256=$SIG" \
--data-binary "$BODY"
ನೀವು ಕಳುಹಿಸುವ ನಿಖರವಾದ ಬೈಟ್ಗಳಿಗೆ ಸಹಿ ಮಾಡಿ. ಸಹಿ ಮಾಡಿದ ನಂತರ ಅಥವಾ ಬೇರೆ ಸಾಲಿನ ಅಂತ್ಯದೊಂದಿಗೆ ಕಳುಹಿಸಿದ ನಂತರ JSON ಅನ್ನು ಮರು-ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವುದರಿಂದ, ಬೈಟ್ಗಳು ಬದಲಾಗುತ್ತವೆ ಮತ್ತು ಸಹಿ ಇನ್ನು ಮುಂದೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ.
ಬೇರರ್ (ಅಥವಾ ಎರಡೂ) ಗೆ ಹೊಂದಿಸಲಾದ ಸಾಧನವು ಬದಲಿಗೆ ಅಧಿಕಾರವನ್ನು ಕಳುಹಿಸಬಹುದು: ಬೇರರ್ <utd_DEVICE_KEY>.<DEVICE_SECRET> ಮತ್ತು ಯಾವುದೇ ಸಹಿ ಹೆಡರ್ಗಳಿಲ್ಲ. HMAC ಸುರಕ್ಷಿತ ಆಯ್ಕೆಯಾಗಿದೆ: ರಹಸ್ಯವು ಎಂದಿಗೂ ಪ್ರಯಾಣಿಸುವುದಿಲ್ಲ ಮತ್ತು ಸೆರೆಹಿಡಿಯಲಾದ ವಿನಂತಿಯನ್ನು ಮರುಪ್ಲೇ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
ಮಿತಿಗಳು
- ಸಮಯಸ್ಟ್ಯಾಂಪ್ ಸರ್ವರ್ನ ಗಡಿಯಾರದಿಂದ 5 ನಿಮಿಷಗಳ ಒಳಗೆ ಇರಬೇಕು: ಸಾಧನದ ಗಡಿಯಾರವನ್ನು NTP ಹೊಂದಿಸಿ ಇರಿಸಿ.
- ಒಂದೇ ಸಹಿ ಮಾಡಿದ ವಿನಂತಿಯನ್ನು ಎರಡು ಬಾರಿ ಮರುಪ್ರಸಾರವಾಗಿ ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ. ಫೈಲ್ನಲ್ಲಿ ಈಗಾಗಲೇ ಓದಲಾದದ್ದನ್ನು ನಕಲು ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಒಮ್ಮೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
- ಗರಿಷ್ಠ 64 KB ಮತ್ತು 500 ವಿನಂತಿಯನ್ನು ಓದುತ್ತದೆ, ಗರಿಷ್ಠ ಪ್ರತಿ ನಿಮಿಷಕ್ಕೆ ಸಾಧನದ ಸ್ವಂತ ಓದುವಿಕೆಗಳು ಮತ್ತು ಒಂದು ವಿಳಾಸದಿಂದ ನಿಮಿಷಕ್ಕೆ 600 ವಿನಂತಿಗಳು.
- ಸಾಧನವು ಸಕ್ರಿಯವಾಗಿರಬೇಕು ಮತ್ತು ಮೀಟರ್ಗೆ ಜೋಡಿಸಲ್ಪಟ್ಟಿರಬೇಕು.
ಸಾಧನವು ಏನನ್ನು ಮರಳಿ ಪಡೆಯುತ್ತದೆ
| ಉತ್ತರ | ಅರ್ಥ |
|---|---|
| 201 ಅಥವಾ 200 ಸ್ವೀಕರಿಸಿದ, ನಕಲುಗಳು, ವಿನಾಯಿತಿಗಳು, ತಿರಸ್ಕರಿಸಿದ, ಅಲಾರಾಂಗಳು ಮತ್ತು ಸಮಸ್ಯೆಗಳೊಂದಿಗೆ | ವಿನಂತಿಯನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ. ಪ್ರತಿಯೊಂದು ಓದುವಿಕೆಯನ್ನು ಎಣಿಸಲಾಗುತ್ತದೆ; ಸಮಸ್ಯೆಯು ಅದರ ಸೂಚ್ಯಂಕದಿಂದ ಮಾನ್ಯವಾಗಿಲ್ಲದ ಯಾವುದೇ ಓದನ್ನು ಹೆಸರಿಸುತ್ತದೆ. |
| 401 ಸಾಧನ_ದೃಢೀಕರಣ | ಅಜ್ಞಾತ ಅಥವಾ ನಿಷ್ಕ್ರಿಯ ಕೀ, ತಪ್ಪಾದ ಮೋಡ್, ಅಥವಾ ಹೊಂದಿಕೆಯಾಗದ ಸಹಿ. ಸಾಧನದ ನಿರಾಕರಿಸಿದ ಸಂಖ್ಯೆ ಹೆಚ್ಚಾಗುತ್ತದೆ. |
| 401 stale_timestamp | ಸಮಯಸ್ಟ್ಯಾಂಪ್ 5 ನಿಮಿಷಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸಮಯದ ಅಂತರದಲ್ಲಿದೆ. |
| 409 ಮರುಪಂದ್ಯ | ಈ ಸಹಿ ಮಾಡಿದ ವಿನಂತಿಯನ್ನು ಈಗಾಗಲೇ ಸ್ವೀಕರಿಸಲಾಗಿದೆ. |
| 413 ತುಂಬಾ_ಹಲವು_ಓದಲಾಗಿದೆ | ಒಂದು ವಿನಂತಿಯಲ್ಲಿ 500 ಕ್ಕೂ ಹೆಚ್ಚು ಓದಲಾಗಿದೆ. |
| 422 ಮೀಟರ್ ಸಂಖ್ಯೆ | ಸಾಧನವನ್ನು ಮೀಟರ್ಗೆ ಜೋಡಿಸಲಾಗಿಲ್ಲ. |
| 429 ದರ_ಸೀಮಿತ | ಮಿತಿಗಿಂತ ವೇಗವಾಗಿ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ. ಕಾಯಿರಿ ಮತ್ತು ಮತ್ತೆ ಕಳುಹಿಸಿ. |
| 400 ಬ್ಯಾಡ್_ಜೆಸನ್ | ದೇಹವು JSON ಅಲ್ಲ. |
| 403 ಉಪಯುಕ್ತತೆಗಳು_ಆಫ್ | ಕಂಪನಿಗೆ ಉಪಯುಕ್ತತೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ. |
ಆರೋಗ್ಯ ಮತ್ತು ಎಚ್ಚರಿಕೆಗಳು
- ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯು ಸಾಧನದ ಕೊನೆಯದಾಗಿ ನೋಡಿದ ಬ್ಯಾಟರಿ % ಮತ್ತು ಸಿಗ್ನಲ್ dBm ಅನ್ನು ನವೀಕರಿಸುತ್ತದೆ. 15% ಕ್ಕಿಂತ ಕಡಿಮೆ ಬ್ಯಾಟರಿಯು ಬ್ಯಾಟರಿ_ಲೋ ಅಲಾರಾಂ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
- ಒಂದು ಸಾಧನವು ಕಳುಹಿಸಬಹುದಾದ ಅಲಾರಾಂ ಪ್ರಕಾರಗಳು: ಬ್ಯಾಟರಿ_ಲೋ, ಟ್ಯಾಂಪರ್, ಲೀಕ್, ರಿವರ್ಸ್_ಫ್ಲೋ, ನೋ_ಫ್ಲೋ, ಆಫ್ಲೈನ್ ಮತ್ತು ಇತರೆ. ಪ್ರತಿ ಸಾಧನಕ್ಕೆ ಪ್ರತಿಯೊಂದು ರೀತಿಯ ಒಂದು ತೆರೆದ ಅಲಾರಾಂ.
- ಸಾಧನ ಅಲಾರಾಂಗಳು ಅವುಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತವೆ; ಕ್ಲಿಯರ್ ಒಂದು ಟಿಪ್ಪಣಿಯೊಂದಿಗೆ ಒಂದನ್ನು ಮುಚ್ಚುತ್ತದೆ. ಒಂದು ಸೋರಿಕೆಯು ಸ್ವತಃ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯ ಸೋರಿಕೆ ತನಿಖಾ ಸೇವಾ ಆದೇಶವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ; ಟ್ಯಾಂಪರ್ ಅಥವಾ ರಿವರ್ಸ್_ಫ್ಲೋ ಅಲಾರಾಂ ಕೂಡ ಸೇವಾ ಆದೇಶವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
- ಡ್ಯಾಶ್ಬೋರ್ಡ್ನ IoT ಮೀಟರ್ ವರದಿ ಮಾಡುವ (24ಗಂ) ಅಂಕಿ ಅಂಶವು ಕಳೆದ ದಿನದಲ್ಲಿ ಕೇಳಿದ ಸಕ್ರಿಯ ಸಾಧನಗಳನ್ನು ಎಣಿಸುತ್ತದೆ.