| 1 | {
|
| 2 | "$id": "iot.sensor.reading",
|
| 3 | "$title": "IoT Sensor Reading",
|
| 4 | "$description": "IoT sensor data stream message",
|
| 5 | "$oky": {
|
| 6 | "deviceId|# ~$DeviceId~|Device identifier": "SENS-GW-00482",
|
| 7 | "timestamp|@ ~$DateTime~": "2025-01-08T14:32:07.342Z",
|
| 8 | "gateway|@ ~$GatewayId~": "GW-PARIS-07",
|
| 9 | "firmware|@ ~$SemVer~": "2.4.1",
|
| 10 | "batteryLevel|@ (0..100)|Battery %": 87,
|
| 11 | "signalStrength|@ (-120..0)|RSSI dBm": -67,
|
| 12 | "location|@": {
|
| 13 | "lat|@ (-90..90)": 48.8566,
|
| 14 | "lon|@ (-180..180)": 2.3522,
|
| 15 | "altitude|(-500..9000)": 35.2
|
| 16 | },
|
| 17 | "readings|@ [1,20] -> !": [
|
| 18 | {
|
| 19 | "sensorId|# ~$SensorId~": "TEMP-01",
|
| 20 | "type|@ ($SENSOR_TYPE)": "TEMPERATURE",
|
| 21 | "$appliedIf type": {
|
| 22 | "('TEMPERATURE')": {
|
| 23 | "unit|@ ('CELSIUS','FAHRENHEIT')": "CELSIUS",
|
| 24 | "value|@ (-40..85)": 22.5
|
| 25 | },
|
| 26 | "('HUMIDITY')": {
|
| 27 | "unit|@ ('PERCENT')": "PERCENT",
|
| 28 | "value|@ (0..100)": 65
|
| 29 | },
|
| 30 | "('PRESSURE')": {
|
| 31 | "unit|@ ('HPA')": "HPA",
|
| 32 | "value|@ (300..1100)": 1013.25
|
| 33 | },
|
| 34 | "('CO2')": {
|
| 35 | "unit|@ ('PPM')": "PPM",
|
| 36 | "value|@ (0..10000)": 450
|
| 37 | },
|
| 38 | "('MOTION')": {
|
| 39 | "unit|@ ('BOOLEAN')": "BOOLEAN",
|
| 40 | "value|@": true
|
| 41 | },
|
| 42 | "('LIGHT')": {
|
| 43 | "unit|@ ('LUX')": "LUX",
|
| 44 | "value|@ (0..120000)": 500
|
| 45 | }
|
| 46 | }
|
| 47 | }
|
| 48 | ],
|
| 49 | "alerts|[0,10]": [
|
| 50 | {
|
| 51 | "code|@ ~^[A-Z]{3}-[0-9]{3}$~": "BAT-001",
|
| 52 | "severity|@ ($SEVERITY)": "WARNING",
|
| 53 | "message|{1,200}": "Battery below 20%"
|
| 54 | }
|
| 55 | ],
|
| 56 | "status|@ ($DEVICE_STATUS)": "ONLINE"
|
| 57 | },
|
| 58 | "$format": {
|
| 59 | "DeviceId": "^SENS-[A-Z]{2}-[0-9]{5}$",
|
| 60 | "GatewayId": "^GW-[A-Z]+-[0-9]{2}$",
|
| 61 | "SensorId": "^[A-Z]{3,4}-[0-9]{2}$",
|
| 62 | "SemVer": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
| 63 | },
|
| 64 | "$nomenclature": {
|
| 65 | "SENSOR_TYPE": "TEMPERATURE, HUMIDITY, PRESSURE, CO2, MOTION, LIGHT",
|
| 66 | "UNIT_TEMPERATURE": "CELSIUS, FAHRENHEIT",
|
| 67 | "UNIT": "CELSIUS, FAHRENHEIT, PERCENT, HPA, PPM, LUX, BOOLEAN",
|
| 68 | "QUALITY": "GOOD, DEGRADED, BAD, UNKNOWN",
|
| 69 | "SEVERITY": "INFO, WARNING, CRITICAL",
|
| 70 | "DEVICE_STATUS": "ONLINE, OFFLINE, MAINTENANCE, ERROR"
|
| 71 | }
|
| 72 | } |