rule "Reset DC Load Ah Wh Timer" when Item DC_Load_Set_Reset changed to ON then DC_Load_Amperehours.sendCommand("0"); DC_Load_Watthours.sendCommand("0"); DC_Load_Timer.sendCommand("0"); DC_Load_Set_Reset.sendCommand("OFF"); end rule "Calculate DC Load Timer" when Time cron "* * * ? * * *" then if (DC_Load_OnOff.state == ON) { val temp = (DC_Load_Timer.state as Number) + 1; DC_Load_Timer.sendCommand(temp); } if (DC_Load_Timer.state == NULL || DC_Load_Timer.state == "") { DC_Load_Timer.sendCommand("0"); } end rule "Calculate DC Load Power" when Item DC_Load_Voltage changed or Item DC_Load_Current changed then val temp = (DC_Load_Voltage.state as Number) * (DC_Load_Current.state as Number); DC_Load_Power.sendCommand(temp); end rule "Calculate DC Load Amperehours" when Time cron "* * * ? * * *" then if (DC_Load_OnOff.state == ON) { val temp = (DC_Load_Current.state as Number) / 3600; DC_Load_Amperehours.sendCommand(temp + (DC_Load_Amperehours.state as Number)); } if (DC_Load_Amperehours.state == NULL || DC_Load_Amperehours.state == "") { DC_Load_Amperehours.sendCommand("0"); } end rule "Calculate DC Load Watthours" when Time cron "* * * ? * * *" then if (DC_Load_OnOff.state == ON) { val temp = (DC_Load_Power.state as Number) / 3600; DC_Load_Watthours.sendCommand(temp + (DC_Load_Watthours.state as Number)); } if (DC_Load_Watthours.state == NULL || DC_Load_Watthours.state == "") { DC_Load_Watthours.sendCommand("0"); } end rule "Stop Battery Discharge" when Item DC_Load_Voltage changed then if (DC_Load_Set_BattMode.state == ON) { if (DC_Load_Voltage.state < DC_Load_Set_Batt_MinVoltage.state) { DC_Load_Set_OnOff.sendCommand("OFF"); } } end