{{ t('sensors.orgTitle') }} — {{ organizationName }}
{{ t('sensors.noneOrg') }}
{{ t('sensors.noResults', { q: sensorSearch }) }}
| {{ t('field.sensor') }} | {{ t('field.location') }} | {{ t('field.level') }} | {{ t('field.date') }} | {{ t('field.humidity') }} | {{ t('field.temperature') }} | {{ t('field.battery') }} | RSSI | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.sensor }} | {{ s.address }} {{ Number(s.lat).toFixed(5) }}, {{ Number(s.lng).toFixed(5) }} — | {{ corpoReadingDisplay(s) }} | {{ fmtReadTime(s.read_time) }} {{ fmtReadTimeShort(s.read_time) }} | {{ hasEnvSensors(s) && s.humidity != null ? fmtNum(s.humidity) + '%' : '—' }} | {{ hasEnvSensors(s) && s.temp != null ? fmtNum(s.temp) + '°C' : '—' }} | {{ batteryPct(s.battery_mv, s.version) }}% — | {{ s.rssi != null ? s.rssi + ' dBm' : '—' }} | ||||||||||||
|
{{ t('field.location') }}
{{ s.address }}
{{ Number(s.lat).toFixed(5) }}, {{ Number(s.lng).toFixed(5) }}
—
{{ t('field.battery') }}
{{ batteryPct(s.battery_mv, s.version) }}%
—
{{ t('field.humidity') }}
{{ hasEnvSensors(s) && s.humidity != null ? fmtNum(s.humidity) + '%' : '—' }}
{{ t('field.temperature') }}
{{ hasEnvSensors(s) && s.temp != null ? fmtNum(s.temp) + '°C' : '—' }}
RSSI
{{ s.rssi != null ? s.rssi + ' dBm' : '—' }}
|
|||||||||||||||||||
{{ t('sensors.waiting') }}
{{ t('details.pickSensor') }}
- ID
- {{ selectedCorpoSensorObj.sensor }}
- {{ t('field.name') }}
- {{ selectedCorpoSensorObj.settings_name || '—' }}
- {{ t('field.use') }}
- {{ tankUseLabel(selectedCorpoSensorObj.tank_use) }}
- {{ t('field.tankShape') }}
- {{ tankShapeValLabel(selectedCorpoSensorObj.tank_shape) }}
- {{ t('tank.fullAtDist') }}
- {{ selectedCorpoSensorObj.max_level ?? '—' }}
- {{ t('field.depthToBottom') }}
- {{ tankDepthLabel(selectedCorpoSensorObj) }}
- {{ t('field.address') }}
- {{ selectedCorpoSensorObj.address || '—' }}
- GPS
- {{ Number(selectedCorpoSensorObj.lat).toFixed(6) }}, {{ Number(selectedCorpoSensorObj.lng).toFixed(6) }} —
- {{ t('fw.current') }}
- {{ corpoFirmware.current || corpoFirmware.reportedVersion || '—' }}
- {{ t('fw.family') }}
- {{ corpoFirmware.cohort ? t('fw.family.' + corpoFirmware.cohort) : t('fw.family.none') }}
- {{ t('fw.receivers') }}
- {{ corpoFirmware.receivers.join(', ') }}
{{ t('fw.unsupported') }}
{{ t('fw.upToDate') }}
{{ t('fw.adminOnly') }}
{{ t('fw.hint.' + corpoFirmware.cohort) }}
- {{ t('field.time') }}
- {{ fmtReadTime(selectedCorpoSensorObj.read_time) }}
- {{ t('field.reading') }}
- {{ corpoLatestReadingDisplay }}
- {{ t('tank.predictFull') }}
- {{ predictionLabel(selectedCorpoSensorObj) }}
- {{ t('field.temperature') }}
- {{ selectedCorpoSensorObj.temp != null ? fmtNum(selectedCorpoSensorObj.temp) + ' °C' : '—' }}
- {{ t('field.humidity') }}
- {{ selectedCorpoSensorObj.humidity != null ? fmtNum(selectedCorpoSensorObj.humidity) + ' %' : '—' }}
- {{ t('field.battery') }}
- {{ batteryPct(selectedCorpoSensorObj.battery_mv, selectedCorpoSensorObj.version) }} % ({{ selectedCorpoSensorObj.battery_mv }} mV) —
- RSSI
- {{ selectedCorpoSensorObj.rssi != null ? selectedCorpoSensorObj.rssi + ' dBm' : '—' }}
- {{ t('field.amplitude') }}
- {{ fmtNum(selectedCorpoSensorObj.amp, 0) }}
- {{ t('field.readNo') }}
- {{ selectedCorpoSensorObj.read_num != null ? selectedCorpoSensorObj.read_num : '—' }}
- {{ t('field.operator') }}
- {{ selectedCorpoSensorObj.net_provider || '—' }}
- {{ t('field.connType') }}
- {{ selectedCorpoSensorObj.net_conn_type || '—' }}
- MCC
- {{ selectedCorpoSensorObj.net_mcc || '—' }}
- MNC
- {{ selectedCorpoSensorObj.net_mnc || '—' }}
- {{ t('field.cellId') }}
- {{ selectedCorpoSensorObj.net_cell_id || '—' }}
- IMEI
- {{ selectedCorpoSensorObj.net_imei || '—' }}
- {{ t('param.readEvery') }}
- {{ Math.round(corpoSensorParams.readInterval.valueSec / 60) }} {{ corpoSensorParams.readInterval.status === 'consumed' ? t('param.active') : corpoSensorParams.readInterval.status }} 15 {{ t('param.default') }}
- {{ t('param.sendEvery') }}
- {{ Math.round(corpoSensorParams.sendInterval.valueSec / 60) }} {{ corpoSensorParams.sendInterval.status === 'consumed' ? t('param.active') : corpoSensorParams.sendInterval.status }} 480 {{ t('param.default') }}
- {{ t('param.mode') }}
- {{ corpoSensorParams.sendMidReads.valueSec === 1 ? t('param.modeLogger') : t('param.modeDetect') }} {{ corpoSensorParams.sendMidReads.status === 'consumed' ? t('param.active') : corpoSensorParams.sendMidReads.status }} {{ t('param.modeDetect') }} {{ t('param.default') }}
- {{ t('param.rangeMin') }}
- {{ fmtNum(corpoSensorParams.radar_rangeMin.valueSec / 10, 1) }} {{ corpoSensorParams.radar_rangeMin.status === 'consumed' ? t('param.active') : corpoSensorParams.radar_rangeMin.status }} —
- {{ t('param.rangeMax') }}
- {{ fmtNum(corpoSensorParams.radar_rangeMax.valueSec / 10, 1) }} {{ corpoSensorParams.radar_rangeMax.status === 'consumed' ? t('param.active') : corpoSensorParams.radar_rangeMax.status }} —
- {{ t('param.readsTh') }}
- {{ fmtNum(corpoSensorParams.readsTh.valueSec * 100, 1) }} {{ corpoSensorParams.readsTh.status === 'consumed' ? t('param.active') : corpoSensorParams.readsTh.status }} {{ paramDefaults.readsTh }} {{ t('param.default') }}
- {{ t('param.temperatureTh') }}
- {{ fmtNum(corpoSensorParams.temperatureTh.valueSec, 1) }} {{ corpoSensorParams.temperatureTh.status === 'consumed' ? t('param.active') : corpoSensorParams.temperatureTh.status }} {{ paramDefaults.temperatureTh }} {{ t('param.default') }}
- {{ t('param.humidityTh') }}
- {{ fmtNum(corpoSensorParams.humidityTh.valueSec, 1) }} {{ corpoSensorParams.humidityTh.status === 'consumed' ? t('param.active') : corpoSensorParams.humidityTh.status }} {{ paramDefaults.humidityTh }} {{ t('param.default') }}
- {{ t('threshold.' + m) }}
- {{ thresholdLabel(m) }} —
{{ t('threshold.hint') }}
{{ thresholdRowError(m) }}
{{ t('threshold.editHint') }}
{{ t('sensors.none') }}
{{ t('range.clamped', { date: premiumDate(new Date(retailHistoryMeta.from)), months: retailHistoryMeta.maxMonths }) }} {{ t('range.clampedUpsell') }}
- ID
- {{ retailDetailSensorObj.id }}
- {{ t('field.name') }}
- {{ retailDetailSensorObj.settings?.msg?.name || '—' }}
- {{ t('tank.fullAtDist') }}
- {{ retailDetailSensorObj.settings?.msg?.maxLevel ?? '—' }}
- {{ t('tank.notifyAbove') }}
- {{ retailDetailSensorObj.settings?.msg?.notifications?.maxTankLevelToNotify ?? '—' }}
- {{ t('tank.notifyDaysBefore') }}
- {{ retailDetailSensorObj.settings?.msg?.notifications?.maxDaysBeforeFullToNotify ?? '—' }}
- {{ t('tank.notifyNoContact') }}
- {{ senderFailureDays(retailDetailSensorObj.id) ? senderFailureLabel(senderFailureDays(retailDetailSensorObj.id)) : t('tank.notifyNoContactOff') }}
- {{ t('field.depthToBottom') }}
- {{ retailDetailSensorObj.settings.msg.tankDepth.manualValue }} cm {{ t('tank.manualParen') }} {{ retailChartTankDepth }} cm {{ t('tank.autoParen') }} {{ t('tank.auto') }}
- {{ t('field.emailNotify') }}
- {{ emailAddr(retailDetailSensorObj.id) || '—' }} {{ t('email.hintInactive') }}
- {{ t('field.tankShape') }}
- {{ tankShapeLabel(retailDetailSensorObj.id) }}
- {{ t('field.use') }}
- {{ tankUse(retailDetailSensorObj.id) }}
- Status
- {{ connLabel(retailDetailSensorObj.id) }}
- {{ t('field.level') }}
- {{ pct(retailDetailSensorObj.output) }} %
- {{ t('field.freeSpace') }}
- {{ freeLevel(retailDetailSensorObj.output) }} cm
- {{ t('field.daysToFull') }}
- {{ t('tank.overdueOn', { date: fullDate(retailDetailSensorObj.output) }) }} {{ daysToFull(retailDetailSensorObj.output) }} {{ t('unit.days') }} ({{ fullDate(retailDetailSensorObj.output) }}) —
- {{ t('field.battery') }}
- {{ retailDetailSensorObj.output.batteryLevel != null ? retailDetailSensorObj.output.batteryLevel + ' %' : '—' }}
- {{ t('field.signal') }}
- {{ retailDetailSensorObj.output.rssi != null ? retailDetailSensorObj.output.rssi + ' dBm' : '—' }}
- {{ t('field.readTime') }}
- {{ lastRead(retailDetailSensorObj.output) }}
{{ t('card.orgUsers') }} — {{ organizationName }}
{{ t('users.none') }}
| {{ t('field.fullName') }} | Login | {{ t('users.notifyEmailShort') }} | {{ t('field.roles') }} | ||
|---|---|---|---|---|---|
| {{ u.name || '—' }} | {{ u.login }} | {{ u.email || '—' }} | {{ role }} {{ t('common.none') }} |
{{ t('nav.messages') }} {{ t('messages.last200') }}
{{ t('messages.none') }}
| Czas ↓ | {{ t('field.sensor') }} | {{ t('field.type') }} | {{ t('field.title') }} | {{ t('field.content') }} | {{ t('field.sent') }} |
|---|---|---|---|---|---|
| {{ fmtReadTime(m.time) }} | {{ m.sensor || '—' }} | {{ msgTypeLabel(m.msg_type) }} | {{ m.title || '—' }} | {{ m.content || '—' }} |