diff --git a/docker/thingsboard/tuoheng.conf b/docker/thingsboard/tuoheng.conf new file mode 100644 index 0000000..7e35a5c --- /dev/null +++ b/docker/thingsboard/tuoheng.conf @@ -0,0 +1,382 @@ +{ + "broker": { + "host": "mqtt.t-aaron.com", + "port": 10883, + "version": 5, + "clientId": "ThingsBoard_gateway_tuoheng", + "security": { + "type": "basic", + "username": "admin", + "password": "admin" + }, + "maxNumberOfWorkers": 100, + "maxMessageNumberPerWorker": 10 + }, + "mapping": [ + { + "topicFilter": "/topic/v1/airportNest/+/realTime/basic", + "subscriptionQos": 1, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=airportNest/)[^/]+(?=/realTime)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "airportID", + "type": "string", + "value": "${data.airportID}" + }, + { + "key": "mac", + "type": "string", + "value": "${data.mac}" + }, + { + "key": "software_version", + "type": "string", + "value": "${data.version.software}" + }, + { + "key": "hardware_version", + "type": "string", + "value": "${data.version.hardware}" + }, + { + "key": "sender", + "type": "string", + "value": "${sender}" + } + ], + "timeseries": [ + { + "key": "status", + "type": "string", + "value": "${data.status}" + }, + { + "key": "send_timestamp", + "type": "long", + "value": "${send_timestamp}" + } + ] + } + }, + { + "topicFilter": "/topic/v1/airportNest/+/realTime/data", + "subscriptionQos": 0, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=airportNest/)[^/]+(?=/realTime)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "default" + }, + "attributes": [], + "timeseries": [ + { + "key": "weather_rainfall", + "type": "double", + "value": "${nestWeather.data.rainfall}" + }, + { + "key": "weather_windLevel", + "type": "double", + "value": "${nestWeather.data.windLevel}" + }, + { + "key": "weather_windDir", + "type": "double", + "value": "${nestWeather.data.windDir}" + }, + { + "key": "weather_windSpeed", + "type": "double", + "value": "${nestWeather.data.windSpeed}" + }, + { + "key": "weather_rainFlag", + "type": "integer", + "value": "${nestWeather.data.rainFlag}" + }, + { + "key": "weather_windAngle", + "type": "double", + "value": "${nestWeather.data.windAngle}" + }, + { + "key": "battery_level", + "type": "integer", + "value": "${droneBattery.data.Battery_level}" + }, + { + "key": "battery_health", + "type": "integer", + "value": "${droneBattery.data.Battery_health}" + }, + { + "key": "battery_totalVoltage", + "type": "double", + "value": "${droneBattery.data.totalVoltage}" + }, + { + "key": "battery_cellTemp", + "type": "double", + "value": "${droneBattery.data.cellTemp}" + }, + { + "key": "battery_mosTemp", + "type": "double", + "value": "${droneBattery.data.mosTemp}" + }, + { + "key": "battery_num_cycles", + "type": "integer", + "value": "${droneBattery.data.num_cycles}" + }, + { + "key": "battery_discharge_current", + "type": "double", + "value": "${droneBattery.data.Discharge_current}" + }, + { + "key": "battery_bCharging", + "type": "integer", + "value": "${droneBattery.data.bCharging}" + }, + { + "key": "nest_innerHum", + "type": "double", + "value": "${nestInnerSensor.data.innerHum}" + }, + { + "key": "nest_innerTemp", + "type": "double", + "value": "${nestInnerSensor.data.innerTemp}" + }, + { + "key": "charger_current", + "type": "double", + "value": "${nestCharger.data.current}" + }, + { + "key": "charger_voltage", + "type": "double", + "value": "${nestCharger.data.voltage}" + }, + { + "key": "charger_capacity", + "type": "double", + "value": "${nestCharger.data.capacity}" + }, + { + "key": "charger_bCharging", + "type": "integer", + "value": "${nestCharger.data.bCharging}" + } + ] + } + }, + { + "topicFilter": "/topic/v1/airportDrone/+/realTime/data", + "subscriptionQos": 1, + "converter": { + "type": "json", + "deviceInfo": { + "deviceNameExpression": "(?<=airportDrone/)[^/]+(?=/realTime)", + "deviceNameExpressionSource": "topic", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "default" + }, + "attributes": [ + { + "key": "deviceid", + "type": "string", + "value": "${data.deviceid}" + } + ], + "timeseries": [ + { + "key": "latitude", + "type": "double", + "value": "${data.lat}" + }, + { + "key": "longitude", + "type": "double", + "value": "${data.lon}" + }, + { + "key": "altitude", + "type": "double", + "value": "${data.alt}" + }, + { + "key": "altitude_asl", + "type": "double", + "value": "${data.altasl}" + }, + { + "key": "roll", + "type": "double", + "value": "${data.roll}" + }, + { + "key": "pitch", + "type": "double", + "value": "${data.pitch}" + }, + { + "key": "yaw", + "type": "double", + "value": "${data.yaw}" + }, + { + "key": "horizontal_speed", + "type": "double", + "value": "${data.hspeed}" + }, + { + "key": "vertical_speed", + "type": "double", + "value": "${data.vspeed}" + }, + { + "key": "battery_remain", + "type": "integer", + "value": "${data.battery_remain}" + }, + { + "key": "voltage", + "type": "double", + "value": "${data.voltage}" + }, + { + "key": "gps_signal", + "type": "integer", + "value": "${data.gpssingal}" + }, + { + "key": "sat_count", + "type": "integer", + "value": "${data.satcount}" + }, + { + "key": "mode", + "type": "string", + "value": "${data.mode}" + }, + { + "key": "armed", + "type": "string", + "value": "${data.armed}" + }, + { + "key": "flight_time", + "type": "integer", + "value": "${data.flytime}" + }, + { + "key": "mileage", + "type": "double", + "value": "${data.mileage}" + }, + { + "key": "distance_to_home", + "type": "double", + "value": "${data.distToHome}" + } + ] + } + } + ], + "requestsMapping": { + "connectRequests": [ + { + "topicFilter": "sensor/connect", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "Thermometer" + } + }, + { + "topicFilter": "sensor/+/connect", + "deviceInfo": { + "deviceNameExpressionSource": "topic", + "deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)", + "deviceProfileExpressionSource": "constant", + "deviceProfileExpression": "Thermometer" + } + } + ], + "disconnectRequests": [ + { + "topicFilter": "sensor/disconnect", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}" + } + }, + { + "topicFilter": "sensor/+/disconnect", + "deviceInfo": { + "deviceNameExpressionSource": "topic", + "deviceNameExpression": "(?<=sensor/)(.*?)(?=/connect)" + } + } + ], + "attributeRequests": [ + { + "retain": false, + "topicFilter": "v1/devices/me/attributes/request", + "deviceInfo": { + "deviceNameExpressionSource": "message", + "deviceNameExpression": "${serialNumber}" + }, + "attributeNameExpressionSource": "message", + "attributeNameExpression": "${versionAttribute}, ${pduAttribute}", + "topicExpression": "devices/${deviceName}/attrs", + "valueExpression": "${attributeKey}: ${attributeValue}" + } + ], + "attributeUpdates": [ + { + "retain": true, + "deviceNameFilter": ".*", + "attributeFilter": "firmwareVersion", + "topicExpression": "sensor/${deviceName}/${attributeKey}", + "valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}" + } + ], + "serverSideRpc": [ + { + "type": "twoWay", + "deviceNameFilter": ".*", + "methodFilter": "echo", + "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}", + "responseTopicExpression": "sensor/${deviceName}/response/${methodName}/${requestId}", + "responseTopicQoS": 1, + "responseTimeout": 10000, + "valueExpression": "${params}" + }, + { + "type": "oneWay", + "deviceNameFilter": ".*", + "methodFilter": "no-reply", + "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}", + "valueExpression": "${params}" + } + ] + }, + "name": "tuoheng", + "id": "tuoheng-gateway-001", + "logLevel": "INFO", + "enableRemoteLogging": false, + "configVersion": "3.7.8" +} \ No newline at end of file