diff --git a/src/webui/rega/www/esp/controls/maintenance.fn b/src/webui/rega/www/esp/controls/maintenance.fn index 012c7208..b1bcc5a6 100644 --- a/src/webui/rega/www/esp/controls/maintenance.fn +++ b/src/webui/rega/www/esp/controls/maintenance.fn @@ -103,4 +103,372 @@ function ::CreateHeatingCooling() { Call("/esp/controls/maintenance.fn::CreateNoFunction()"); } -} \ No newline at end of file +} + +function ::OutputMaintenanceDataPoint() +{ + if (outLevel > 1) { WriteLine(""); outLevel = 0; } + WriteLine("
"); + Write("" # mnDPText # ""); + Write("" # mnDPValue); + if (mnDPUnit != "") { Write(" " # mnDPUnit); } + Write(""); + WriteLine("
"); + outLevel = outLevel + 1; +} + +function ::OutputMaintenanceFloatDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + mnDPValue = oDP.Value().ToString(1); + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPUnit = ""; +} + +function ::OutputMaintenanceTimeOfOperationDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + mnDPValue = (oDP.Value().ToInteger() / 86400); + if (mnDPValue >= 365) { + mnDPValue = (mnDPValue / 365) # " ${optionUnitY} " # (mnDPValue % 365); + } + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPUnit = ""; +} + +function ::OutputMaintenanceValueDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + mnDPValue = oDP.Value(); + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPUnit = ""; +} + +function ::OutputMaintenanceRSSIDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + integer rssiValue = oDP.Value().ToInteger(); + if (oDP.ValueType() == ivtByte) { + rssiValue = (rssiValue - 256); + } + + if (rssiValue < -200) { + mnDPValue = "n/a"; + } else { + mnDPValue = rssiValue.ToString(0); + } + mnDPUnit = "dBm"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPUnit = ""; +} + +function ::OutputMaintenanceEnumDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + if (oDP.Value().ToInteger() == 0) { + mnDPValue = mnDPValue0; + } elseif (oDP.Value().ToInteger() == 1) { + mnDPValue = mnDPValue1; + } elseif (oDP.Value().ToInteger() == 2) { + mnDPValue = mnDPValue2; + } elseif (oDP.Value().ToInteger() == 3) { + mnDPValue = mnDPValue3; + } + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPValue0 = ""; + mnDPValue1 = ""; + mnDPValue2 = ""; + mnDPValue3 = ""; + mnDPUnit = ""; +} + +function ::OutputMaintenanceBoolDP() +{ + object oDP = cObj.DPByHssDP(mnDP); + if (oDP) { + if ((oDP.Value() == "true") || (oDP.Value().ToInteger() == 1)) { + mnDPValue = mnDPTrue; + } else { + mnDPValue = mnDPFalse; + } + object oDPAlarm = cObj.DPByHssDP(mnDP # "_ALARM"); + if (oDPAlarm) { + if (oDPAlarm.Value().ToInteger() == 1) { + mnDPValue = mnDPValue # " [ALARM]"; + } elseif (oDPAlarm.Value().ToInteger() == 2) { + mnDPValue = mnDPValue # " [ACKNOWLEDGED]"; + } + } + Call("/esp/controls/maintenance.fn::OutputMaintenanceDataPoint()"); + } + mnDP = ""; + mnDPText = ""; + mnDPValue = ""; + mnDPTrue = ""; + mnDPFalse = ""; + mnDPUnit = ""; +} + +function ::CreateDeviceMaintenanceChannel() +{ + WriteLine(""); + WriteLine(""); + WriteLine(""); + + integer outLevel = 0; + string mnDP = ""; + string mnDPText = ""; + string mnDPTrue = ""; + string mnDPFalse = ""; + string mnDPValue = ""; + string mnDPValue0 = ""; + string mnDPValue1 = ""; + string mnDPValue2 = ""; + string mnDPValue3 = ""; + string mnDPUnit = ""; + + mnDP = "ACTUAL_TEMPERATURE"; + mnDPText = "${stringTableClimateControlRTTransceiverActualTemp}:"; + mnDPUnit = "°C"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceFloatDP()"); + + mnDP = "ACTUAL_TEMPERATURE_STATUS"; + mnDPText = "${stringTableClimateControlRTTransceiverActualTemp}:"; + mnDPValue0 = "${lblNormal}"; + mnDPValue1 = "${lblUnknown}"; + mnDPValue2 = "${lblOverflow}"; + mnDPValue3 = "${lblUnderflow}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceEnumDP()"); + + !mnDP = "AES_KEY"; + !mnDPText = "AES_KEY:"; + !Call("/esp/controls/maintenance.fn::OutputMaintenanceValueDP()"); + + mnDP = "CONFIG_PENDING"; + mnDPText = ""; + mnDPTrue = "${stringTableConfigPendingTrue}"; + mnDPFalse = "${stringTableConfigPendingFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "DATE_TIME_UNKNOWN"; + mnDPText = ""; + mnDPTrue = "${stringTableDateTimeUnknownTrue}"; + mnDPFalse = "${stringTableDateTimeUnknownFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "DEVICE_IN_BOOTLOADER"; + mnDPText = "${stringTableDeviceInBootloader}:"; + mnDPTrue = "${dialogYes}"; + mnDPFalse = "${dialogNo}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "DUTY_CYCLE"; + mnDPText = ""; + mnDPTrue = "${stringTableDutyCycleTrue}"; + mnDPFalse = "${stringTableDutyCycleFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "DUTYCYCLE"; + mnDPText = ""; + mnDPTrue = "${stringTableDutyCycleTrue}"; + mnDPFalse = "${stringTableDutyCycleFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + !mnDP = "ENTER_BOOTLOADER"; + !mnDPText = "ENTER_BOOTLOADER:"; + !Call("/esp/controls/maintenance.fn::OutputMaintenanceValueDP()"); + + mnDP = "ERROR_BAD_RECHARGEABLE_BATTERY_HEALTH"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorBadRechargeableBatteryHealthTrue}"; + mnDPFalse = "${stringTableErrorBadRechargeableBatteryHealthFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_CODE"; + mnDPText = "${stringTableErrorCode}:"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceValueDP()"); + + mnDP = "ERROR_COMMUNICATION_PARTICLE_MATTER_SENSOR"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorCommunicationParticulateMatterSensorTrue}"; + mnDPFalse = "${stringTableErrorCommunicationParticulateMatterSensorFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_COMMUNICATION_TEMP_AND_HUMIDITY_SENSOR"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorCommunicationTempAndHumiditySensorTrue}"; + mnDPFalse = "${stringTableErrorCommunicationTempAndHumiditySensorFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_PARTICULATE_MATTER_MEASUREMENT"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorParticulateMatterMeasurementTrue}"; + mnDPFalse = "${stringTableErrorParticulateMatterMeasurementFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_TEMP_OR_HUMIDITY_MEASUREMENT"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorTempOrHumidityMeasurementTrue}"; + mnDPFalse = "${stringTableErrorTempOrHumidityMeasurementFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_NON_FLAT_POSITIONING"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorNonFlatPositioningTrue}"; + mnDPFalse = "${stringTableErrorNonFlatPositioningFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_OVERHEAT"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorOverheatTrue}"; + mnDPFalse = "${stringTableErrorOverheatFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_SABOTAGE"; + mnDPText = ""; + ! the texts of stringTableErrorSabotageTrue/False are swapped + mnDPTrue = "${stringTableErrorSabotageFalse}"; + mnDPFalse = "${stringTableErrorSabotageTrue}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "ERROR_UNDERVOLTAGE"; + mnDPText = ""; + mnDPTrue = "${stringTableErrorUndervoltageTrue}"; + mnDPFalse = "${stringTableErrorUndervoltageFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "HEATING_COOLING"; + mnDPText = ""; + mnDPTrue = "${stringTableCooling}"; + mnDPFalse = "${stringTableHeating}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "HUMIDITY_ALARM"; + mnDPText = ""; + mnDPTrue = "${stringTableHumidityAlarmTrue}"; + mnDPFalse = "${stringTableHumidityAlarmFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "INHIBIT"; + mnDPText = ""; + mnDPTrue = "${stringTableInhibitTrue}"; + mnDPFalse = "${stringTableInhibitFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "LOW_BAT"; + mnDPText = ""; + mnDPTrue = "${stringTableBatteryEmpty}"; + mnDPFalse = "${stringTableBatteryOk}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "LOWBAT"; + mnDPText = ""; + mnDPTrue = "${stringTableBatteryEmpty}"; + mnDPFalse = "${stringTableBatteryOk}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "OPERATING_VOLTAGE"; + mnDPText = "${stringTableOperationVoltage}:"; + mnDPUnit = "V"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceFloatDP()"); + + mnDP = "OPERATING_VOLTAGE_STATUS"; + mnDPText = "${stringTableOperationVoltageState}:"; + mnDPValue0 = "${lblNormal}"; + mnDPValue1 = "${lblUnknown}"; + mnDPValue2 = "${lblOverflow}"; + mnDPValue3 = "${lblExternal}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceEnumDP()"); + + mnDP = "RSSI_DEVICE"; + mnDPText = "${stringTableRSSIDevice}:"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceRSSIDP()"); + + mnDP = "RSSI_PEER"; + mnDPText = "${stringTableRSSIPeer}:"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceRSSIDP()"); + + mnDP = "SABOTAGE"; + mnDPText = ""; + mnDPTrue = "${stringTableSabotageContactWasActive}"; + mnDPFalse = "${stringTableSabotageContactOk}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "SENSOR_ERROR"; + mnDPText = ""; + mnDPTrue = "${stringTableSensorErrorTrue}"; + mnDPFalse = "${stringTableSensorErrorFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "STICKY_SABOTAGE"; + mnDPText = ""; + mnDPTrue = "${stringTableSabotageStickyTrue}"; + mnDPFalse = "${stringTableSabotageStickyFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "STICKY_UNREACH"; + mnDPText = ""; + mnDPTrue = "${stringTableStickyUnreachTrue}"; + mnDPFalse = "${stringTableStickyUnreachFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "TEMPERATURE_LIMITER"; + mnDPText = ""; + mnDPTrue = "${stringTableTemperatureLimiterTrue}"; + mnDPFalse = "${stringTableTemperatureLimiterFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "TIME_OF_OPERATION"; + mnDPText = "${stringTableTimeOfOperation}:"; + mnDPUnit = "${optionUnitD}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceTimeOfOperationDP()"); + + mnDP = "TIME_OF_OPERATION_STATUS"; + mnDPText = "${stringTableTimeOfOperation}:"; + mnDPValue0 = "${lblNormal}"; + mnDPValue1 = "${lblUnknown}"; + mnDPValue2 = "${lblOverflow}"; + mnDPValue3 = ""; + Call("/esp/controls/maintenance.fn::OutputMaintenanceEnumDP()"); + + mnDP = "UPDATE_PENDING"; + mnDPText = ""; + mnDPTrue = "${stringTableUpdatePendingTrue}"; + mnDPFalse = "${stringTableUpdatePendingFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + mnDP = "UNREACH"; + mnDPText = ""; + mnDPTrue = "${stringTableUnreachTrue}"; + mnDPFalse = "${stringTableUnreachFalse}"; + Call("/esp/controls/maintenance.fn::OutputMaintenanceBoolDP()"); + + WriteLine(""); + WriteLine("
"); + WriteLine(""); + } diff --git a/src/webui/rega/www/esp/datapointconfigurator.fn b/src/webui/rega/www/esp/datapointconfigurator.fn index f5e2abc3..acaf94f1 100644 --- a/src/webui/rega/www/esp/datapointconfigurator.fn +++ b/src/webui/rega/www/esp/datapointconfigurator.fn @@ -1362,6 +1362,12 @@ function ::dcCreate() } } } + ! create device maintenance channel information + if (ictCH == ictMaintenance) { + WriteLine( '' ); + Call("/esp/controls/maintenance.fn::CreateDeviceMaintenanceChannel()"); + isKnownControl = true; + } if (!isKnownControl) { WriteLine( '
' ); diff --git a/src/webui/www/webui/js/lang/de/translate.lang.option.js b/src/webui/www/webui/js/lang/de/translate.lang.option.js index 0429bca4..5fe00088 100644 --- a/src/webui/www/webui/js/lang/de/translate.lang.option.js +++ b/src/webui/www/webui/js/lang/de/translate.lang.option.js @@ -198,6 +198,7 @@ jQuery.extend(true, langJSON, { "optionUnit8H" : "8 Stunden", "optionUnit8M": "8 Minuten", "optionUnit90S" : "90 Sekunden", + "optionUnitY" : "Jahre", "optionUnitD" : "Tage", "optionUnitH" : "Stunden", "optionUnitM" : "Minuten", diff --git a/src/webui/www/webui/js/lang/de/translate.lang.stringtable.js b/src/webui/www/webui/js/lang/de/translate.lang.stringtable.js index 02450cfc..ffa5220b 100644 --- a/src/webui/www/webui/js/lang/de/translate.lang.stringtable.js +++ b/src/webui/www/webui/js/lang/de/translate.lang.stringtable.js @@ -219,6 +219,8 @@ jQuery.extend(true,langJSON, { "stringTableConfButtonTimePermanent" : "dauerhaft", "stringTableConfigPendingFalse" : "Konfigurationsdaten zur %DCbertragung: Nein", "stringTableConfigPendingTrue" : "Konfigurationsdaten zur %DCbertragung: Ja", + "stringTableStickyUnreachFalse" : "Kommunikation war gest%F6rt: Nein", + "stringTableStickyUnreachTrue" : "Kommunikation war gest%F6rt: Ja", "stringTableControlMode" : "Modus Auto/Manu/Urlaub", "stringTableCoolingDisable" : "K%FChlen im K%FChlmode", "stringTableCurrentDetectionBehavior" : "Verhalten", diff --git a/src/webui/www/webui/js/lang/en/translate.lang.option.js b/src/webui/www/webui/js/lang/en/translate.lang.option.js index d83415a3..5e933189 100644 --- a/src/webui/www/webui/js/lang/en/translate.lang.option.js +++ b/src/webui/www/webui/js/lang/en/translate.lang.option.js @@ -198,6 +198,7 @@ jQuery.extend(true, langJSON, { "optionUnit8H" : "8 hours", "optionUnit8M": "8 minutes", "optionUnit90S" : "90 seconds", + "optionUnitY" : "Years", "optionUnitD" : "Days", "optionUnitH" : "Hours", "optionUnitM" : "Minutes", diff --git a/src/webui/www/webui/js/lang/en/translate.lang.stringtable.js b/src/webui/www/webui/js/lang/en/translate.lang.stringtable.js index 513f809f..2caf6d21 100644 --- a/src/webui/www/webui/js/lang/en/translate.lang.stringtable.js +++ b/src/webui/www/webui/js/lang/en/translate.lang.stringtable.js @@ -219,6 +219,8 @@ jQuery.extend(true,langJSON, { "stringTableConfButtonTimePermanent" : "permanent", "stringTableConfigPendingFalse" : "There is no configuration data to be transmitted", "stringTableConfigPendingTrue" : "Configuration data is ready for transmission", + "stringTableStickyUnreachFalse" : "Device communication was disturbed: No", + "stringTableStickyUnreachTrue" : "Device communication was disturbed: Yes", "stringTableControlMode" : "Auto/manu/party mode", "stringTableCoolingDisable" : "Cooling in cooling mode", "stringTableCurrentDetectionBehavior" : "Response",