
如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Microservice for openSenseMap that provides a direct integration with TheThingsNetwork to allow straightforward measurement upload from LoRa-WAN devices.
It decodes measurements from an uplink payload from the TTN HTTP Integrations API for a configured senseBox, and adds the decoded measurements to the database.
There are multiple decoding options provided via profiles, which may be
easily extended to support other sensor configurations or value transformations.
To associate a device on TTN with a box on the openSenseMap, there is some
configuration required on the openSenseMap. The box has to contain a field
box.integrations.ttn with the following structure:
jsttn: { // the app_id & dev_id you recieved when registering on TTN app_id: 'abcd', dev_id: '1234', // decode the messages according to this profile format, see below profile: 'lora-serialization', // optional. some profiles require additional configuration decodeOptions: [], // optional. if specified, only messages recieved on this LoRa-port are stored port: 3, }
sensebox/home
Decodes messages of all sensors of the senseBox:home. Takes registered sensors into account and decodes payload accordingly. Therefore, the senseBox:home lora sketch should not be changed except TTN IDs. The correct sensorIds are matched via their titles. Decoding fits the https://github.com/sensebox/node-sketch-templater/blob/master/templates/homev2_lora.tpl.
lora-serialization
Allows decoding of messages that were encoded with the https://github.com/thesolarnomad/lora-serialization.
The decoders temperature, humidity, uint8, uint16, unixtime and latLng are supported.
Each encoded value is matched to a sensor via it's _id, sensorType, unit, or title properties.
There may be one or more property defined for each value via sensor_id, sensor_title, sensor_type, sensor_unit.
If one property matches a sensor, the other properties are discarded.
The following example config allows decoding of measurements of 3 sensors:
js"ttn": { "profile": "lora-serialization", "decodeOptions": [ { "decoder": "temperature", "sensor_unit": "°C" }, { "decoder": "humidity", "sensor_id": "588876b67dd004f79259bd8b" }, { "decoder": "uint16", "sensor_type": "TSL45315", "sensor_title": "Beleuchtungsstärke" } ] }
special decoders unixtime & latLng
These decoders do not generate a measurement for a sensor of the box, but will
be used as timestamp or location for the measurements.
The unixtime and latLng decoders must be defined before the measurements,
and are applied to all following measurements, until the next latLng or
unixtime decoder is specified.
This means that it is possible to send measurements of several timestamps at once:
js"ttn": { "profile": "lora-serialization", "decodeOptions": [ // first measurement, will have time of transmission as timestamp { "decoder": "temperature", "sensor_unit": "°C" }, // 2nd measurement for same sensor, will have custom timestamp { "decoder": "unixtime" }, // no sensor properties required for special decoders { "decoder": "temperature", "sensor_unit": "°C" }, // 3rd measurement, another timestamp { "decoder": "unixtime" }, { "decoder": "temperature", "sensor_unit": "°C" } ] }
debug
Simple decoder, which decodes a given number of bytes to integer values.
Requires a config like the following, where the measurements are applied to the sensors in the order of box.sensors.
jsttn: { profile: 'lora-serialization', decodeOptions: [3, 1, 2] // specifies the number of bytes to consume for each measurement }
json
It's also possible to add measurements which already have been decoded by a TTN payload function.
The property payload_fields has to contain JSON in the format accepted by the openSenseMap-API.
This is the case, if the TTN application has a Payload Function defined.
cayenne-lpp
Allows decoding of messages that were encoded with the Cayene LPP format.
The decoders temperature, relative_humidity, barometric_pressure, luminosity, and analog_in are supported.
Each encoded value is matched to a sensor via it's _id, sensorType, unit, or title properties.
There may be one or more property defined for each value via sensor_id, sensor_title, sensor_type, sensor_unit.
If one property matches a sensor, the other properties are discarded.
If GPS measurements are provided, they will automatically be attached to the measurement in the API. No need to add GPS to the decodeOptions. Mobile boxes will then update their location on the openSenseMap accordingly.
The following example config allows decoding of measurements of 3 sensors:
js"ttn": { "profile": "cayenne-lpp", "decodeOptions": [ { "decoder": "temperature", "channel": 1, "sensor_unit": "°C" }, { "decoder": "relative_humidity", "channel": 1, "sensor_id": "588876b67dd004f79259bd8b" }, { "decoder": "illuminance", "channel": 1, "sensor_type": "TSL45315", "sensor_title": "Beleuchtungsstärke" } ] }
There is a Dockerfile, as well as an docker-compose.yml which includes a mongodb instance.
If you want to run the application directly, you need to have the dependencies listed below installed.
For configuration, see below. Once configured, run
bashyarn install npm start
node.js >= 6.xyarnmongodb >= 3.xConfiguration is handled by https://github.com/lorenwest/node-config. See config/default.json.
json{ "port": 3000, "loglevel": "trace", "openSenseMap-API-models": { "db": { // See example config json of @sensebox/opensensemap-api-models "mongo_uri" } } }
./docs/ or https://sensebox.github.io/ttn-osem-integration. To update it, run npm run docs.npm run test while the application is running, or ./run_tests.sh (requires bash & docker).npm run lint.MIT, see LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务